2010年2月7日日曜日

そろそろDRBDに挑戦(設定&稼働編)

スズキです。

こちらのインストール編の続きです。
http://blog.suz-lab.com/2010/02/drbd.html

まずは二つのマシン(suz-lab-ha1/suz-lab-ha2)で、"/etc/drbd.conf"を
下記のように設定します。利用するDRBDのデバイスは"/dev/drbd0"、
ディスクのデバイスは"/dev/sdb"としています。

--------【drbd.conf】--------
global {
  usage-count yes;
}
common {
  protocol C;
}
resource r0 {
  on suz-lab-ha1 {
    device /dev/drbd0;
    disk /dev/sdb;
    address 192.168.11.11:7789;
    meta-disk internal;
  }
  on suz-lab-ha2 {
    device /dev/drbd0;
    disk /dev/sdb;
    address 192.168.11.12:7789;
    meta-disk internal;
  }
}
--------

そして二つのマシンに対し下記のコマンドでメタデータを作成し、
DRBDのサービスを起動します。
# drbdadm create-md r0
# /etc/init.d/drbd start

これで、DRBDが稼働している状態になります。

次に、DRBDのデバイス(/dev/drbd0)にファイルシステム(ext3)を作成し、マウントします。

まずは"suz-lab-ha1"のデバイスを下記コマンドでプライマリにします。
# drbdsetup /dev/drbd0 primary -o
※ 当然、"suz-lab-ha1"上での実行です。

そして、次のように、ファイルシステムを作成し、マウントします。
# mkfs.ext3 /dev/drbd0
# mkdir /mnt/drbd
# mount /dev/drbd0 /mnt/drbd

これで、DRBDのデバイスをファイルシステムとして利用できるようになります。

最後に、実際にミラーリングされているかの確認です。

以下のコマンドで、適当にファイルを作成し、アンマウントして、
DRBDデバイスをセカンダリにします。
# touch /mnt/drbd/test1.txt
# umount /mnt/drbd
# drbdsetup /dev/drbd0 secondary

そして同様に、"suz-lab-ha2"をプライマリにしてDRBDデバイスをマウントします。
# drbdsetup /dev/drbd0 primary
# mkdir /mnt/drbd
# mount /dev/drbd0 /mnt/drbd

この状態でマウントしたディレクトリの中身をみると、下記のように、
"suz-lab-ha1"で作成したファイルが存在しているのを確認できます。
# ls /mnt/drbd/
lost+found test1.txt

また同様に、適当なファイルを作成し、アンマウント&セカンダリー化をします。
# touch /mnt/drbd/test2.txt
# umount /mnt/drbd
# drbdsetup /dev/drbd0 secondary

"suz-lab-ha1"に戻り、上記と同様の処理でマウントしたディレクトリの中身をみると、
"suz-lab-ha2"で作成したファイルが存在しているのを確認できます。
# drbdsetup /dev/drbd0 primary
# mount /dev/drbd0 /mnt/drbd
# ls /mnt/drbd/
lost+found test1.txt test2.txt

ということで、こんなことは手動ではやってられないので、次は「Heartbeat連動編」です。

--------
http://www.suz-lab.com

0 コメント: