[CLUSTERPRO]ミラーリソースのオブジェクトストレージを試してみた。

2016.09.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、そろそろ半袖に飽きてきた城内です。

今回もクラプロネタですが、徐々にCLUSTERPRO Dとも仲良くなれてきたと思います。
今回は、CLUSTERPRO Dの機能で、Amazon S3を利用するオブジェクトストレージというミラーリソースのミラー方式を設定してみたいと思います。

はじめに

まずは、いままでの記事の紹介です。

また、インストーラやドキュメントは以下のサイトから取得できます。

オブジェクトストレージの設定

では、さっそく設定していきたいと思います。

S3バケットの作成

まず、オブジェクトストレージではS3バケットが必要になりますので、事前に作成しておきます。
今回は東京リージョンを利用します。

s3-01

s3-02

リソースグループの設定

次に、リソースグループでミラーリソースの設定を行っていきます。
クラスタ構築までの作業は、前回の記事を参考にしてみてください。
※AWS CLIの設定は必須になりますので、ご注意ください。

Top画面の「リソースグループを作成する」をクリックします。

clp-01

「リソースを追加」から、「ミラーリソース」を選択します。

clp-02

「リソース固有設定」タブを選択し、ミラー方式で「オブジェクトストレージ」を選択します。

clp-03

S3のバケット名を入力する項目が表示されるので、先ほど作成したS3バケット名を入力し、その他必要事項も入力します。

clp-04

最後に、リソースグループ名を入力します。

clp-05

これで設定は完了です。

clp-06

動作確認

起動

設定が終わったので、クラスタサービスとリソースグループを立ち上げてみたいと思います。

clp-07

クラスタサービスとリソースグループが起動して、2ノードの片系がオブジェクトストレージとして同期しているのが分かります。
(アイコンにも雲のマークがついています)

clp-08

それぞれの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バケットにもさっそくデータがコピーされています。

s3-03

フェイルオーバー

では、次にフェイルオーバーを実行してみたいと思います。

オブジェクトストレージのミラー方式では、スタンバイノードを停止させておくことができるので、今回は、スタンバイノードを停止させ、その間にミラーボリュームにデータを格納し、フェイルオーバー時にうまくデータが同期されるのかを確認してみたいと思います。

スタンバイノードを停止します。

clp-09

ec2-01

アクティブノードの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バケット上に、ファイルの作成日時以降のデータができるまで気長に待ちました)

s3-04

アクティブノードでクラスタサービスを停止します。
(今回は、アクティブノードのAdvanced WebConsoleを使用していたため、インスタンス自体の停止は行いませんでした)

clp-10

スタンバイノードを起動します。
クラスタサービスも自動起動で立ち上がってきますので、スタンバイノード側のAdvanced WebConsoleを開き、状態を確認します。
(アクティブノードのクラスタサービスを止めてしまったためか、アクティブノードのAdvanced WebConsoleでは、スタンバイノードが起動したことを確認できませんでした...)

clp-11

最後に、リソースグループをスタンバイノードで起動します。

clp-11-2

clp-12

これで、正しく動作していれば、スタンバイノード(現アクティブノード)側のミラーボリュームに、(旧)アクティブノード側で作成したテキストファイルが同期されているはずです。

# 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対策などではもってこいの機能だと思いました。

次回は、いままで試してきた機能を使って、冗長化した簡単なシステムを組んでみたいと思います。

ではまたー。