这个实验我是在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 eth5     #在本地网卡eth5广播心跳信息,也可以用“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,IPAddr指定虚拟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

 

wKiom1ShZ2Cz0NhqAANYMQ2nb8M994.jpg 

 

切换到drbd1

 

[[email protected] ~]# drbdsetup /dev/drbd0 primary -o

[[email protected] ~]# drbdsetup /dev/drbd0 secondry all

wKiom1ShZ2_i-GnrAANvNnTDeL4962.jpg 

 

客户机挂载NFS

 

[[email protected] ~]# yum install rpcbind

 wKioL1ShaDPQXYakAADMJ01Kyo0855.jpg

 

最后测试的时候,可能是我切换太频繁,出现了“脑裂”,没有自动挂载/dev/drbd0NFS,而且,两个节点都自动变为secondry


参考文章:http://myheart.blog.51cto.com/5635718/1031010/