转载于: https://www.jianshu.com/p/90e8c61b4204
drbd脑裂问题的解决

DRBD产生脑裂的原因:

(1. 采用HA环境的时候自动切换导致脑裂;

(2. 人为操作或配置失误,导致产生的脑裂;

(3. 经验有限,惭愧的很,只碰到以上2中产生脑裂的原因。

如何判断脑裂行为?

(1. 其中一个节点的连接状态始终为 StandAlone

(2. 其中一个节点的连接状态始终为 WFConnection

[root@master1 ~]# service drbd status; #主节点状态

drbd driver loaded OK; device status:

version: 8.3.15 (api:88/proto:86-97)

GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by [email protected], 2

m:res cs ro ds p mounted fstype

1:data StandAlone Primary/Unknown UpToDate/DUnknown r----- ext3 #存在StandAlone

[root@master2 ~]# /etc/init.d/drbd status #从节点状态

drbd driver loaded OK; device status:

version: 8.3.15 (api:88/proto:86-97)

GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by [email protected], 2013-03-27 16:01:26

m:res cs ro ds p mounted fstype

1:data StandAlone Secondary/Unknown UpToDate/DUnknown r----- #存在StandAlone

从上边两个看出drbd已经发生脑裂,修复步聚如下:

——Primary节点

如果Primary节点查看连接状态为 StandAlone ,需要手动连接 执行命令:drbdadm connect r0

[root@master1 ~]# drbdadm connect data #手动执行此命令

注意:上边的data是在/etc/drbd.conf中定义的resource的名称

[root@master2 ~]# cat /etc/drbd.conf | grep resource

resource data { #这就是资源名

[root@master1 ~]# cat /proc/drbd #查看执行后的drbd状态

version: 8.3.15 (api:88/proto:86-97)

GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by [email protected], 2013-03-27 16:01:26

1: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----

ns:0 nr:0 dw:703 dr:15894 al:23 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:592

——Secondary节点操作

  1. 断开连接

[root@master2 ~]# drbdadm disconnect data

2.设置为secondary状态

[root@master2 ~]# drbdadm secondary data

  1. 告诉slave,secondary 上的数据不正确,以primary 上的数据为准

[root@master2 ~]# drbdadm -- --discard-my-data connect data #注意中间的四个中间线

——查看结果

master结果

[root@master1 ~]# cat /proc/drbd

version: 8.3.15 (api:88/proto:86-97)

GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by [email protected], 2013-03-27 16:01:26

1: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----

ns:0 nr:0 dw:703 dr:15894 al:23 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:592

从节点结果

[root@master2 ~]# cat /proc/drbd

version: 8.3.15 (api:88/proto:86-97)

GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by [email protected], 2013-03-27 16:01:26

1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----

ns:0 nr:616 dw:210519 dr:8443 al:22 bm:32 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

通过上述发现,drbd的脑裂问题已经解决。