DRBD主备切换
在系统维护的时候,或者在高可用群集中,当主用节点出现故障的时候,就需要将主备节点的角色互换,主备节点切换有两种形式,分别是停止DRBD服务切换和正常切换
(1) 停止DRBD服务切换
关闭主用节点服务,此时挂载的DRBD分区就自动在主用节点卸载了,操作如下,
/etc/init.d/drbd stop
cat /proc/drbd (细节请看http://liumingyuan.blog.51cto.com/9065923/1712824)
从输出结果可以看到,现在主用节点的状态变为“Unknown” 接着在备用节点上执行切换命令
drbdadm primary all
或出现如下报错信息
2:State change failed:(-7) Refusing to be Primary while peer is not outdated Command ‘drbdsetup 2 primary’ terminated with exit code 11
因此,必须在备用节点下执行如下命令
drbdsetup /dev/drbd0 primary –o
或者
drbdadm -- --overwrite-data-of-peer primary all
现在就可以正常的切换了,
cat /proc/drbd
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
0: cs:Connected ro:Primary/Unknown ds:UpToDate/Outdated C r-----
ns:10482024 nr:0 dw:0 dr:10482696 al:0 bm:640 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
可以看出,原来的备用节点已经处于”Primary” 状态了,而原来的主用节点由于DRBD服务未启动,还处于”Unknown” 状态,在原来的主用节点启动服务后,就会自动变成”Secondary” 状态,无需在原来的主要节点上再次执行切换到备用节点的命令
最后,在新的主用节点上挂载DRBD设备即可完成主备切换: mount /dev/drbd0 /mnt (自定义目录)
(2) 正常切换
首先在主用节点上卸载磁盘分区
umount /mnt (你的挂载点)
然后执行:
drbdadm secondary all
此时查看DRBD的状态如下:
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
0: cs:Connected ro:Primary/Unknown ds:UpToDate/ UpToDate C r-----
ns:10482024 nr:0 dw:0 dr:10482696 al:0 bm:640 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
可以看到,两个节点都处于“Secondary”的状态了,那么接下来就要指定一个主要节点,在需要变成主用节点的服务器上执行如下命令
drbdadm primary all
最后在新的主用节点挂载DRBD磁盘分去即可
mount /dev/drbd0 /mnt
原文地址:http://liumingyuan.blog.51cto.com/9065923/1713827