2012年1月18日水曜日

暗号化ファイルシステム(cryptsetup)を更にDRBDで冗長化(2)

スズキです。

こちらでDRBD上にcryptsetupで暗号化ファイルシステムを作成したので、
暗号化ファイルシステム(cryptsetup)を更にDRBDで冗長化(1)
今回は、スタンバイ状態のマシンにフェイルオーバーしても、
問題なくファイルシステムが利用できるか確認してみます。

まずは、アクティブマシンでの作業です。

ファイルシステムの中身を確認し、

# ls /mnt/encrypted/
lost+found  test.txt

アンマウントし、

# umount /mnt/encrypted/

DRBDもセカンダリにし、

# drbdsetup /dev/drbd0 secondary

DRBDの状態がセカンダリになっていることを確認しておきます。

# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.12 (api:88/proto:86-96)
GIT-hash: e2a8ef4656be026bbae540305fcb998a5991090f build by dag@Build32R6, 2011-11-20 10:55:07
m:res    cs         ro                   ds                 p  mounted  fstype
0:mysql  Connected  Secondary/Secondary  UpToDate/UpToDate  C

次に、スタンバイマシンでの作業です。

まずは、DRBDをプライマリにします。

# drbdsetup /dev/drbd0 primary

次に、ちゃんとプライマリになっていることを確認します。

# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.12 (api:88/proto:86-96)
GIT-hash: e2a8ef4656be026bbae540305fcb998a5991090f build by dag@Build32R6, 2011-11-20 10:55:07
m:res    cs         ro                 ds                 p  mounted  fstype
0:mysql  Connected  Primary/Secondary  UpToDate/UpToDate  C

そして、DRBDのデバイスをオープンします。オープン時に聞かれるパスフレーズは、
アクティブサーバで入力したものと同じ物を利用します。

# cryptsetup luksOpen /dev/drbd0 encrypted
Enter passphrase for /dev/drbd0: 

最後に、マウントして、ファイルシステムとして利用できるようにします。

# mount -t ext4 /dev/mapper/encrypted /mnt/encrypted

ファイルシステムの中身を確認すると、
アクティブサーバと同様の状態であることがわかります。

# ls /mnt/encrypted/
lost+found  test.txt

Next Stepとしては、
(1)パスフレーズなしで利用できるよにする。
(2)Heartbeatと連動してフェイルオーバーするようにする。
(3)フェイルオーバー時に接続先も自動的に変更するよにする(EIP/VPCルーティング)
といった感じでしょうか?(上記もブログ化できるように頑張ります)

とりあえず、skipfishに戻るか...
--------
http://www.suz-lab.com

0 コメント: