环境:
Primary 节点:node1
Secondary 节点:node2
DRBD产生脑裂的原因:
(1. 采用HA环境的时候自动切换导致脑裂;
(2. 人为操作或配置失误,导致产生的脑裂;
(3. 经验有限,惭愧的很,只碰到以上2中产生脑裂的原因。
如何判断脑裂行为?
(1. 其中一个节点的连接状态始终为 StandAlone
(2. 其中一个节点的连接状态始终为 WFConnection
1.通过cat /proc/drbd 命令查看,Secondary节点显示Unknown [脑裂]
[root@node1 ~]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@node1, 2015-08-07 11:47:47
0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/Outdated r----s
ns:0 nr:0 dw:48214 dr:1725 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:104392
——DRBD产生脑裂的解决办法
——Primary节点
2. 如果Primary节点查看连接状态为 StandAlone ,需要手动连接 执行命令:drbdadm connect r0
[root@node1 ~]# drbdadm connect r0
[root@node1 ~]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@node1, 2015-08-07 11:47:47
0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/Outdated C r----s
ns:0 nr:0 dw:48214 dr:1725 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:104392
——Secondary节点操作
1. 断开连接
[root@node2 ~]# drbdadm disconnect r0
2.设置为secondary状态
[root@node2 ~]# drbdadm secondary r0
3. 告诉slave,secondary 上的数据不正确,以primary 上的数据为准
[root@node2 ~]# drbdadm --discard-my-data connect r0
——Primary节点
1.通过cat /proc/drbd 命令查看
[root@node1 ~]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@node1, 2015-08-07 11:47:47
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:15016 nr:0 dw:48214 dr:66237 al:0 bm:3 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:39880
[============>.......] sync'ed: 65.4% (39880/104392)K
finish: 0:00:02 speed: 16,128 (16,128) K/sec
[root@node1 ~]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@node1, 2015-08-07 11:47:47
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:16040 nr:0 dw:48214 dr:106117 al:0 bm:7 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
至此,脑裂问题成功解决。