heart beat drbd設定の履歴

vi /etc/drbd.conf

下記の通り記述する
#
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#
global { usage-count yes; }
common { syncer { rate 100M;al-extents 254; } }
resource r0 {
protocol C;
startup {
wfc-timeout 0;
degr-wfc-timeout 0;
}
disk {
on-io-error detach;
}
net {
cram-hmac-alg sha1;
shared-secret "FooFunFactory";
}
on アクティブ側ホスト名 {
device /dev/drbd0;
disk /dev/VolGroup00/lvol0;
address 192.168.1.153:7789;
meta-disk internal;
}
on スタンバイ側ホスト名 {
device /dev/drbd0;
disk /dev/VolGroup00/lvol0;
address 192.168.1.155:7789;
meta-disk internal;
}
}
##ここまで


drbdメタデータ作成
drbdadm create-md r0
[need to type 'yes' to confirm] yes (全てyes応答)

  • 下記メッセージが表示された場合は空き論理ボリューム上に

ファイルシステムを作成している可能性があるので論理ボリュームの削除を行う
Command 'drbdmeta /dev/drbd0 v08 /dev/sda6 internal create-md' terminated with exit code 40

  • 論理ボリュームの削除

lvremove /dev/VolGroup00/lvol0


擬似的にdrbdを同期済にする

drbdadm -- 6::::1 set-gi r0
[need to type 'yes' to confirm] yes

drbdadm dump-md r0 > /tmp/md
sed -i -r -e 's/0xF{16}/0x0000000000000000/g' /tmp/md
drbdmeta /dev/drbd0 v08 /dev/VolGroup00/lvol0 internal restore-md /tmp/md ; rm -f /tmp/md


/etc/init.d/drbd start
アクティブ側のみyes応答させる
To abort waiting enter 'yes' [ 1]:yes

chkconfig drbd on

アクティブ側でdrbdのファイルシステムを作成する
mkfs -t ext3 /dev/drbd0
mount /dev/drbd0 /mnt

マウントしたdrbd diskに書き込みが出来るか確認する

アクティブ・スタンバイ両機でdrbd状態を確認する
/etc/init.d/drbd status

  • csがStandAlone、roがUnknown、dsがDUnknown等になっている場合、

ファイアーウォールで通信が遮断されている可能性があるので通信の許可を行っておく
# /etc/rc.d/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:02:24
m:res cs ro ds p mounted fstype
0:r0 StandAlone Primary/Unknown UpToDate/DUnknown r----



アクティブ・スタンバイを切替スタンバイ側にdrbd diskをマウントし書き込みが出来るか確認する

アクティブ側
umount /mnt
drbdadm secondary all

スタンバイ側
drbdadm primary all
mount /dev/drbd0 /mnt

  • drbdadm primary all の実行時に次のエラーが出力される場合は強制的に上書きをする

State change failed: (-2) Refusing to be Primary without at least one UpToDate disk
Command 'drbdsetup /dev/drbd0 primary' terminated with exit code 11
drbdsetup exited with code 11

  • 強制上書きコマンド

drbdadm -- --overwrite-data-of-peer primary all


## drbd status check
/etc/init.d/drbd status

unknown plugin(ex)

) drbd ERROR status
cs = StandAlone
ro = Primary/Unknown
ds = UpToDate/DUnknown

unknown plugin(ex)

) drbd OK status
cs = SyncSource
ro = Primary/Secondary
ds = UpToDate/Inconsistent