这个实验我是在centos6-6进行的,首先给两台主机添加一块5G的硬盘,DRBD硬件规定两块硬盘的容量大少相同。
创建逻辑卷
[[email protected] conf]# fdisk /dev/sdb
n
p
1
w
q
配置环境,修改主机名:
[[email protected] ~]# hostname drbd-1 # vim /etc/sysconfig/network 需要重启
[[email protected] ~]# hostname drbd-2 #uname -n查看是否有修改
[[email protected] ~]# vim /etc/hosts#在hosts文件添加解析
192.168.150.151 drbd1
192.168.150.152 drbd2
DRBD:
[[email protected] ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
[[email protected] ~]# yum -y install drbd83-utils kmod-drbd83
配置DRBD,两台主机配置文件一样
[[email protected] ~]# cat /etc/drbd.conf
global {
usage-count yes;#drbd使用者统计
}
common {
syncer { rate 400M; }#同步速率
}
resource r0 {#创建r0资源
protocol C;#收到对方写入确认后,确认同步
Net{
Cram-hamc-alg “sha1”;#同时时的验证方式
Shared-secret “dragon”; #验证密码
}
on drbd1 {#这里on 后面的名称“drbd1”需要与”uname -r”一样
device /dev/drbd0;
disk /dev/sdb1;#drbd)使用的磁盘
address 192.168.150.151:7789;#对方ip和端口,需留意防火墙是否阻止
meta-disk internal;#drbd数据存储方式
}
on drbd2 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.150.152:7789;
meta-disk internal;
}
}
[[email protected]2 ~]# modprobe drbd #加载DRBD模块
[[email protected]2 ~]# lsmod |grep drbd #查看模块是否添加
drbd 332493 0
[[email protected]2 ~]# drbdadm create-md r0 #创建drbd记录信息的数据块
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
[[email protected]2 ~]# mkdir /NFS
[[email protected]2 ~]# drbdsetup /dev/drbd0 primary -o #设置主节点
NFS
yum install nfs-utils rpcbind
[[email protected]2 ~]# vim /etc/exports
/NFS 192.168.150.0/24(rw,no_root_squash.async)
[[email protected]2 ~]# service rpcbind start
[[email protected]2 ~]# service nfs start
heartbeat
[[email protected]2 ~]# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[[email protected]2 ~]# yum install heartbeat
配置ha.cf
[[email protected]2 ~]# cat /etc/ha.d/ha.cf
logfile /var/log/ha-log#生成日志文件
logfacility local0
keepalive 2 #心跳检测
deadtime 10 #死亡时间
udpport 694 #交换数据端口,注意iptables有没有开放此端口
bcast eth7 #在本地网卡eth7广播心跳信息,也可以用“ucat eth7 对方ip”的方式
auto_failback on #故障恢复以后是否自动回到主节点
warntime 5 #警告时间
node drbd1 #声明节点
node drbd2
配置authkeys
[[email protected]2 ~]# cat /etc/ha.d/authkeys #互联验证文件
auth 1
1 crc
[[email protected]2 ~]# chmod 600 /etc/ha.d/authkeys
配置haresources
[[email protected]2 ~]# cat /etc/ha.d/haresources
drbd1 IPaddr::192.168.150.155/24/eth5:1 drbddisk::r0 Filesystem::/dev/drbd0::/NFS::ext3 killnfsd
#另一主机为drbd2,指定虚拟IP挂在本机eth5:1
创建NFS控制脚本
[[email protected] ~]# cat /etc/ha.d/resource.d/killnfsd
killall -9 nfsd; /etc/init.d/nfs restart;exit 0
[[email protected] ~]# service heartbeat start
查看节点drbd2:
切换到drbd1:
[[email protected] ~]# drbdsetup /dev/drbd0 primary -o
[[email protected] ~]# drbdsetup /dev/drbd0 secondry all
客户机挂载NFS:
[[email protected] ~]# yum install rpcbind
最后测试的时候,可能是我切换太频繁,出现了“脑裂”,没有自动挂载/dev/drbd0到NFS,而且,两个节点都自动变为secondry。