■環境は以下。
DRBDとapache2、pacemaker+heartbeatを連携する。
http://labunix.hateblo.jp/entry/20130724/1374594232
■既存のDRBD+heartbeat+pacemaker連携の設定をバックアップ
$ cat check.txt
configure
verify
show
$ sudo crm < check.txt > backup_`date '+%Y%m%d'`.txt 2>> err.log
$ sudo cibadmin -Q > backup_`date '+%Y%m%d'`.xml
$ sudo grep -v "^#\|^\$" /etc/ha.d/ha.cf > backup_`date '+%Y%m%d'`_ha.cf.bak
$ ls /etc/drbd.d/
drbd0.res global_common.conf
$ cp /etc/drbd.d/drbd0.res backup_`date '+%Y%m%d'`.drbd0.res.bak
■DRBDの再起動
$ cat restart_drbd.txt
resource
restart ms_drbd0
■間違ってinitスクリプトから再起動するとcrmでの認識がおかしくなる。。。
$ sudo /etc/init.d/drbd restart
...
[ ok ] Starting DRBD resources:[ d(drbd0) s(drbd0) n(drbd0) ].
$ sudo crm_mon -A -1 | tail -2
Failed actions:
res_fs_start_0 (node=xen-debian1, call=19, rc=1, status=complete): unknown error
■以下のようにクリアする。
$ sudo crm
crm(live)# resource
crm(live)resource# cleanup res_fs xen-debian1
Cleaning up res_fs on xen-debian1
Waiting for 2 replies from the CRMd.. OK
crm(live)resource# quit
bye
$ sudo crm < restart_drbd.txt
■以下はセカンダリの結果
$ grep "^ *[0-9]\:" /proc/drbd
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
■状態確認
$ sudo drbdadm dstate drbd0
UpToDate/UpToDate
$ sudo drbdadm cstate drbd0
Connected
$ sudo drbdadm role drbd0
Secondary/Primary
$ man drbdadm | grep -A 1 "[cd]state\$\|role\$"
role
Shows the current roles of the devices (local/peer). E.g. Primary/Secondary
--
cstate
Shows the current connection state of the devices.
--
dstate
Show the current state of the backing storage devices. (local/peer)
■DRBDのリソースを削除したくなったら。
同期してセカンダリにして状態を確認。
peerから接続を切り離して、localとの接続を切断、ダウンでpeer/localを再切断を試みてワイプ。
作成時はdrbdsetupでcreate、attach、syncer、connect、dstae
以下の「-d」は「--dry-run」なので実際には何もしない。
$ sudo drbdadm -d syncer drbd0
$ sudo drbdadm -d dstate drbd0
$ sudo drbdadm -d secondary debd0
$ sudo drbdadm -d dstate drbd0
$ sudo drbdadm -d disconnect drbd0
$ sudo drbdadm -d detach drbd0
$ sudo drbdadm -d down drbd0
$ sudo drbdadm -d wipe-md drbd0
■wipe-mdのマニュアルが無いがメタファイルを削除する。
$ sudo drbdadm -d wipe-md drbd0
drbdmeta 0 v08 /dev/sdb1 internal wipe-md
$ man drbdadm | grep -A 1 "disconnect\$\|detach\$\|down\$\|wipe-md\$"
detach
Removes the backing storage device from a DRBD resource's device.
--
disconnect
Removes the network configuration from the resource. The device will then go into StandAlone state.
--
down
Is a shortcut for disconnect and detach.