先卸载两边节点原来磁盘设备所对应的挂载目录,并在fstab里注释掉相关行,防止系统启动时自动挂载

以下顺序不能颠倒

安装elrepo源

rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

yum install kernel-devel kernel kernel-headers -y

yum install drbd83-utils.x86_64 kmod-drbd83.x86_64 -y

重启系统

Test01

eth0     192.168.56.11

eth1     192.168.66.11

Test02

eth0     192.168.56.12

eth1     192.168.66.12

安装包

drbd83-8.3.13-2.el5.centos.x86_64.rpm

kmod-drbd83-8.3.13-1.el5.centos.x86_64.rpm

然后需要加载drbd模块

modprobe drbd

eth0是基本网卡

eth1直连专门用来做DRDB的通信

在Test01和Test02上分别添加路由,表示drbd通信走各自的eth1网卡流量,放入rc.loacl以便开机自动启动

Test01:route add -host drbd02 dev eth1

Test02:route add -host drbd01 dev eth1


配置文件里的部分说明

startup {
wfc-timeout 120;             #等待连接的timeout.如果没有连接会一直阻塞.0表示unlimited.
degr-wfc-timeout 120;     #单节点集群中等待连接的timeout.
}


先执行drbdadm create-md r0

做好配置文件后启动节点两边的drbd服务前执行drbdadm create-md r0

如果出现报错,一般是因为你对这个分区进行了文件系统的创建,使用以下命令抹除文件系统的信息.

dd if=/dev/zero of=/dev/sdb1 bs=1M count=1

#如果drbd-overview命令查看到如下状态

ro:Secondary/Secondary ds:Inconsistent/Inconsistent

以下命令可以不用执行

#节点两边都执行drbdadm up all

只在Test01上执行,设置Test01上的drbd为主节点

drbdadm -- --overwrite-data-of-peer primary r0

如果主节点变成Primary连,就可对其格式化了.

如果在主节点上遇到如下问题

0:web Connected Secondary/Secondary Inconsistent/Diskless C r----

则在主节点上执行

drbdsetup /dev/drbd0 primary -o

然后就可以对其格式化了


drbdadm up all 报错

1.0: Failure: (124) Device is attached to a disk (use detach first)

解决:drbdadm detach r0 

2.0: Failure: (124) Device is attached to a disk (use disconnect first)

解决:drbdadm disconnect r0 

在备节点上查看数据是否同步过来了

先停掉drbd资源,然后挂载原始分区查看

drbdadm down r0

mount /dev/sdb1 /drbd

drbdadm up all 相当于如下命令的组合:

drbdadm attach all

drbdadm syncer all

drbdadm connect all

--------------------------------------------------------------------------------

手动切换主备

正常状态切换

主切从

umount /drbd

drbdadm secondary r0

从切主

drbdadm primary r0

mount /dev/drbd0 /drbd

主节点关机或停止主节点drbd服务的切换
关闭主节点服务,此时挂载的drbd分区就自动在主节点卸载了,然后在备用节点执行切换命令:
[root@test02 ~]#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
因此,必须在备用节点执行如下命令:
[root@test02 ~]#drbdadm -- --overwrite-data-of-peer primary all
此时就可以正常切换了.
当在备用节点执行切换到主节点命令后,原来的主用节点自动变为备用节点.无需在主用节点再次执行切换到备用节

--------------------------------------------------------------------------------


处理DRBD脑裂的情况

脑裂的状态

ro:Secondary/Unknown

选择一个机器作为secondary,在该机上执行

drbdadm secondary all

drbdadm disconnect all

drbdadm -- --discard-my-data connect all

在另外一台机器上执行

drbdadm connect all

查看drbd资源状态

[root@test01 ~]# drbdadm cstate r0
Connected

[root@test01 ~]# drbd-overview 

 0:r0  Connected Primary/Secondary UpToDate/UpToDate C r----- /drbd ext3 1004M 188M 806M 19%


留意syncer rate参数设置.这个凭借网络速率和磁盘的写入速率.官方给一个值:
千兆网络同步速率约莫在125MB/S,百兆网络同步速率约莫在11MB/S,但我测试同步速率最大能到218MB/S.这个同步速率和磁盘写入速率(hdparm -Tt /dev/drbd0测试结果)中的最小值乘以30%后的值就是应当设置的值.譬喻:同步速率125MB/S,磁盘写入速率110MB/S,那么这个应当设置不能高出33MB/S,缘故起因是,DRBD同步有个差别的进程用来做数据的传输,一个replication进程用来同步一些block的批改,这个值不凭借这个值的设置,是在Synchronization进程应用的带宽之外的带宽来传输.一个Synchronization进程用来同步处理赏罚,受限于这个值的设置,以是这值应当多思量好,假如把设置的太大,把全部的带宽占满了,会导致replication进程没有可用带宽应用,导致IO收场出现同步不正常.