先卸载两边节点原来磁盘设备所对应的挂载目录,并在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分区就自动在主节点卸载了,然后在备用节点执行切换命令:
[[email protected] ~]#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
因此,必须在备用节点执行如下命令:
[[email protected] ~]#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资源状态
[[email protected] ~]# drbdadm cstate r0
Connected
[[email protected] ~]# 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收场出现同步不正常.