DRBD主备切换


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

有关DRBD的相关知识,可以参考:
DRBD原理及特性概述
快速安装及部署DRBD 

Linux 高可用(HA)集群之DRBD详解

DRBD中文应用指南 PDF

CentOS 6.3下DRBD安装配置笔记

基于DRBD+Corosync实现高可用MySQL

CentOS 6.4下DRBD 安装配置

DRBD 的详细介绍:请点这里
DRBD 的下载地址:请点这里

本文永久更新链接地址

相关内容