DRBD接続障害
- 現象パターン1
突然次のような状態になってしまい、どうしても相手を認識しない
# cat /proc/drbd version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16 0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown r---- ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:12
そんなとき、DRBD+Keepalived+iscsi 障害 復旧 - メモに従い
[root@z151 ~]# drbdadm down all [root@z151 ~]# drbdadm attach all [root@z151 ~]# drbdadm invalidate all [root@z151 ~]# drbdadm connect all [root@z152 ~]# drbdadm connect all
を実行すると見事につながった
[root@z151 ~]# cat /proc/drbd version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16 0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r---- ns:0 nr:58304 dw:58240 dr:0 al:0 bm:3 lo:3 pe:2 ua:2 ap:0 ep:1 wo:b oos:5178720 [>....................] sync'ed: 1.2% (5056/5112)M queue_delay: 0.0 ms finish: 0:07:23 speed: 11,648 (11,648) want: 10,240 K/sec
(追記)
StandAloneになるのは、単にスプリットブレインからデータを保護するための措置らしい。
トラブルシューティングFAQ
Q. コネクト状態が「StandAlone」と表示されてしまいます
スプリットブレインが検知され、DRBDがどちらのHDDが最新のデータが保存されているかを判断できなくなったため、同期しない状態で動作しています。これは障害ではなくDRBDがデータを保護するための「安全装置」ですので、古い(捨てても良い)データの入っているHDDが搭載されているノードで「# drbdadm invalidate <リソース名> 」を実行して接続しなおします。
- 現象パターン2
どういうわけか両ノードで次のような状態になり、相手を認識しない。
[root@z151 ~]# service drbd status drbd driver loaded OK; device status: version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16 m:res cs ro ds p mounted fstype 0:r0 WFConnection Secondary/Unknown Outdated/DUnknown C [root@z152 ~]# service drbd status drbd driver loaded OK; device status: version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16 m:res cs ro ds p mounted fstype 0:r0 WFConnection Secondary/Unknown UpToDate/DUnknown C
そこで下記に従ったら見事につながった。
[root@z152 ~]# drbdadm -- --discard-my-data connect r0 [root@z151 ~]# drbdadm disconnect r0 [root@z151 ~]# drbdadm connect r0 [root@z151 ~]# service drbd status drbd driver loaded OK; device status: version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16 m:res cs ro ds p mounted fstype 0:r0 Connected Secondary/Secondary UpToDate/UpToDate C
・データを破棄するノードで
drbdadm -- --discard-my-data connect <リソース>・他ノードで
drbdadm disconnect <リソース> drbdadm connect <リソース>・DRBD間の接続が回復し、データ同期が始まる