我的 Debian 8.9 DRBD 8.4.3 设置不知何故进入了两个节点无法再通过网络连接的状态。他们应该复制一个资源r1
,但drbdadm down r1; drbadm up r1
在两个节点上,他们立即/proc/drbd
将情况描述如下:
在第一个节点上(连接状态为WFConnection
或StandAlone
):
1: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
ns:0 nr:0 dw:0 dr:912 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:20
在第二个节点上:
1: 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:f oos:48
两个节点可以通过 中引用的 IP 地址相互 ping 通/etc/drbd.d/r1.res
,并netstat
表明两者都在侦听引用的端口。
我怎样才能(进一步诊断和)摆脱这种情况,以便两个节点可以连接并再次通过 DRBD 复制?
顺便说一句,在更高的抽象层次上,这个问题目前表现为systemctl start drbd
从不退出,显然是因为它被卡在了drbdadm wait-connect all
(如建议的那样/lib/systemd/system/drbd.service
)。
这种情况显然是由脑裂病例引起的。
我没有注意到这一点,因为我只检查了
drbd.service
(sudo journalctl -u drbd
) 的最近日记条目,但该问题显然已在其他内核日志中报告并且稍早 (sudo journalctl | grep Split-Brain
)。这样,手动解决脑裂(如此处或此处所述)也解决了如下麻烦的情况。
在裂脑受害者上(假设 DRBD 资源是
r1
):关于裂脑幸存者: