[CLUSTERPRO]ミラーリソースのオブジェクトストレージを試してみた。
こんにちは、そろそろ半袖に飽きてきた城内です。
今回もクラプロネタですが、徐々にCLUSTERPRO Dとも仲良くなれてきたと思います。
今回は、CLUSTERPRO Dの機能で、Amazon S3を利用するオブジェクトストレージというミラーリソースのミラー方式を設定してみたいと思います。
はじめに
まずは、いままでの記事の紹介です。
また、インストーラやドキュメントは以下のサイトから取得できます。
オブジェクトストレージの設定
では、さっそく設定していきたいと思います。
S3バケットの作成
まず、オブジェクトストレージではS3バケットが必要になりますので、事前に作成しておきます。
今回は東京リージョンを利用します。
リソースグループの設定
次に、リソースグループでミラーリソースの設定を行っていきます。
クラスタ構築までの作業は、前回の記事を参考にしてみてください。
※AWS CLIの設定は必須になりますので、ご注意ください。
Top画面の「リソースグループを作成する」をクリックします。
「リソースを追加」から、「ミラーリソース」を選択します。
「リソース固有設定」タブを選択し、ミラー方式で「オブジェクトストレージ」を選択します。
S3のバケット名を入力する項目が表示されるので、先ほど作成したS3バケット名を入力し、その他必要事項も入力します。
最後に、リソースグループ名を入力します。
これで設定は完了です。
動作確認
起動
設定が終わったので、クラスタサービスとリソースグループを立ち上げてみたいと思います。
クラスタサービスとリソースグループが起動して、2ノードの片系がオブジェクトストレージとして同期しているのが分かります。
(アイコンにも雲のマークがついています)
それぞれのEC2インスタンスにSSHでログインしてみると、アクティブノードでミラーボリュームがマウントされています。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 50G 2.2G 48G 5% / devtmpfs 900M 0 900M 0% /dev tmpfs 920M 20K 920M 1% /dev/shm tmpfs 920M 17M 904M 2% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/cldrpl0 9.8G 4.5M 9.4G 1% /mnt/rrpl/current/rrpl1 tmpfs 184M 0 184M 0% /run/user/1000
また、S3バケットにもさっそくデータがコピーされています。
フェイルオーバー
では、次にフェイルオーバーを実行してみたいと思います。
オブジェクトストレージのミラー方式では、スタンバイノードを停止させておくことができるので、今回は、スタンバイノードを停止させ、その間にミラーボリュームにデータを格納し、フェイルオーバー時にうまくデータが同期されるのかを確認してみたいと思います。
スタンバイノードを停止します。
アクティブノードのEC2インスタンスにSSHでログインし、ミラーボリュームにテキストファイルを作成します。
# cd /mnt/rrpl/current/rrpl1 # ll total 16 drwx------ 2 root root 16384 Jul 23 2015 lost+found # touch test.txt # ll total 16 drwx------ 2 root root 16384 Jul 23 2015 lost+found -rw-r--r-- 1 root root 0 Sep 9 18:28 test.txt
S3に同期されるまで少し時間をおきます。
(念のため、S3バケット上に、ファイルの作成日時以降のデータができるまで気長に待ちました)
アクティブノードでクラスタサービスを停止します。
(今回は、アクティブノードのAdvanced WebConsoleを使用していたため、インスタンス自体の停止は行いませんでした)
スタンバイノードを起動します。
クラスタサービスも自動起動で立ち上がってきますので、スタンバイノード側のAdvanced WebConsoleを開き、状態を確認します。
(アクティブノードのクラスタサービスを止めてしまったためか、アクティブノードのAdvanced WebConsoleでは、スタンバイノードが起動したことを確認できませんでした...)
最後に、リソースグループをスタンバイノードで起動します。
これで、正しく動作していれば、スタンバイノード(現アクティブノード)側のミラーボリュームに、(旧)アクティブノード側で作成したテキストファイルが同期されているはずです。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 50G 2.2G 48G 5% / devtmpfs 900M 0 900M 0% /dev tmpfs 920M 20K 920M 1% /dev/shm tmpfs 920M 17M 904M 2% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/cldrpl0 9.8G 4.5M 9.4G 1% /mnt/rrpl/current/rrpl1 tmpfs 184M 0 184M 0% /run/user/1000 # cd /mnt/rrpl/current/rrpl1 # ll total 16 drwx------ 2 root root 16384 Jul 23 2015 lost+found -rw-r--r-- 1 root root 0 Sep 9 18:28 test.txt
と、少し分かりづらいですが、ちゃんと同期されていました!
さいごに
今回はオブジェクトストレージというS3を使ったミラー方式を試してみましたが、CLUSTERPROのミラー機能はとても優秀ですね!
S3にデータをコピーしておけるなんて、DR対策などではもってこいの機能だと思いました。
次回は、いままで試してきた機能を使って、冗長化した簡単なシステムを組んでみたいと思います。
ではまたー。