DRBD测试成功,但是在工作中,我们不可以在主节点坏掉之后,再手动的切换到从节点,这样达不到真正的高可用性,我们可以让drbd与heardbeat和nfs相结合来实现自动化的切换。
节点一和节点二的配置方法完全一样,我现在只贴再来在rdbd1.a.com配置heardbeat的方法。
12. 配置yum源,安装heardbeat软件
[root@drbd1 ~]# mkdir /mnt/cdrom
[root@drbd1 ~]# mount /dev/cdrom /mnt/cdrom
[root@drbd1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
Heartbeat软件需要自己下载,下载好之后,使用本地安装方式来安装
[root@drbd1 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-ldirectord-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck
13.拷贝配置文件到/etc/ha.d/目录中
[root@drbd1 ~]# cd /usr/share/doc/heartbeat-2.1.4/
[root@drbd1 heartbeat-2.1.4]# cp ha.cf haresources authkeys /etc/ha.d/
14.配置结点
[root@drbd1 heartbeat-2.1.4]# cd /etc/ha.d
[root@drbd1 ha.d]# vim ha.cf 修改如下几项
bcast eth1 //广播网卡
node drbd1.a.com //指明两个结点
node drbd2.a.com
15. 配置认证文件authkeys
随机生成一个md5密钥
[root@drbd1 ha.d]# vim authkeys 写入如下内容
auth 3
3 md5 fb713288c2d675b9f4db893dde6c7baa
修改权限,一定要修改的
[root@drbd1 ha.d]# chmod 600 authkeys
16.手工创建文件killnfsd
[root@drbd1 ha.d]# vim resource.d/killnfsd
加入如下内容
[root@drbd1 ha.d]# chmod 755 resource.d/killnfsd
配置加载虚拟IP文件
[root@drbd1 ha.d]# vim haresources 加入如下一行
drbd1.a.com IPaddr::192.168.2.11/24/eth0 drbddisk::web Filesystem::/dev/drbd0::/mnt/drbd::ext3 killnfsd
17.配置NFS服务共享
编写共享
[root@drbd1 ha.d]# vim /etc/exports //写入如下共享清单
/mnt/drbd 192.168.2.0/24(ro)
导出共享清单
[root@drbd1 ha.d]# exportfs -rv
exporting 192.168.2.10/24:/mnt/drbd
修改nfs启动脚本
[root@drbd1 ha.d]# vim /etc/init.d/nfs //修改如下
122 killproc nfsd -9
18.启动nfs与heartbeat服务器
[root@drbd1 ha.d]# service nfs start
[root@drbd1 ha.d]# service heartbeat start
19.测试
查看heartbeat是否正常
因为我们是把drbd1.a.com做为主,所以查看是否有eth0:0
也可以ping通
查看drbd的状态
可以看到drbd1.a.com自动变成了主节点
使用测试机挂载,查看内容
可以看到挂载成功,并且能够得到文件
现在我们把主节点破坏掉,再检查情况
可以在drbd1.a.com上看到主节点已经变成了对端
也可以在drbd2.a.com上查看
也可以看到自动切换成功
查看测试机有没有掉线
测试机无影响,可继续使用。
20.将服务加入开机启动行列
[root@drbd1 ha.d]# chkconfig nfs on
[root@drbd1 ha.d]# chkconfig drbd on
[root@drbd1 ha.d]# chkconfig heartbeat on
[root@drbd2 drbd.d]# chkconfig nfs on
[root@drbd2 drbd.d]# chkconfig drbd on
[root@drbd2 drbd.d]# chkconfig heartbeat on