五、Heartbeat的配置过程
真实的服务器之间的连接用交叉线连接,本着简单高效的原则,直接购买即可。
1. 安装, 在两台主机都同样的安装.
- yum -y install heartbeat
- #奇怪的事,此命令要执行二次,不然heartbeat还真安装不上去,奇怪的问题。
- 其中Heartbeat配置共涉及3个文件.
- /etc/ha.d/ha.cf
- /etc/ha.d/haresources
- /etc/ha.d/authkeys
- /etc/ha.d/resource.d/killnfsd
2. 二个节的配置的配置文件都是一样, 文件内容如下
- logfile /var/log/ha-log
- #定义HA的日志名字及存放位置
- logfacility local0
- keepalive 2
- #设定心跳(监测)时间为2秒
- deadtime 5
- #死亡时间定义为5秒
- ucast eth1 10.0.0.2
- #采用单播方式,IP地址指定为对方IP
- auto_failback off
- #服务器正常后由主服务器接管资源,另一台服务器放弃该资源
- node centos1.7788.com centos2.7788.com
- #定义节点
2. 编辑双机互联验证文件: authkeys
- [root@centos1 ha.d]# vim /etc/ha.d/authkeys
- auth 1
- 1 crc
- //需要将 /etc/ha.d/authkeys设为600的权限.
- [root@centos1 ha.d]# chmod 600 /etc/ha.d/authkeys
- [root@centos2 ha.d]# chmod 600 /etc/ha.d/authkeys
3. 编辑集群资源文件: haresources
- [root@centos1 ha.d]# vim /etc/ha.d/haresources
- centos1.7788.com IPaddr::192.168.4.194/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/d::ext3 killnfsd
- #此文件二台机器上配置一样,千万不要自做聪明在另一台机器上配置成centos2.7788.com
4.编辑脚本文件killnfsd,目的其实就是为了重启nfs服务。这是因为NFS服务切换后,必须重新mount一下nfs共享出来的目录,否则会出现stale NFS file handle的错误。
- #[root@centos1 ha.d]# vim /etc/ha.d/resource.d/killnfsd
- #killall -9 nfsd; /etc/init.d/nfs restart; exit 0
- #[root@centos1 ha.d]# chmod 755 /etc/ha.d/resource.d/killnfsd
5. 在二个节点启动Heartbeat即可,先在主节点启动
- [root@centos1 /]# service heartbeat start
- [root@centos2 /]# service heartbeat start
- #这时就可以在另外的机器上面,正常挂载192.168.4.194:/d到自己的/mnt/data下进行正常的读写了,client会认为这个就是一个提供NFS的机器。
六、测试
由于我的线上环境已经很稳定了,这个测试结果是让大家进行的,让大家熟悉DRBD+Heartbeat;我建议做完此步后再做测试,看Heartbeat是否能做到真正的热切换。
测试一、在另一台FreeBSD8下挂载192.168.4.194:/d,向里面写数据时,忽然重新启动主DRBD,看此时写数据有影响不,发现DRBD+Heartbeat正常切换还是需要些时间的;
测试二、正常状态下关机Primary机,然后看数据有无问题,观察DRBD的status;然后等主机启动后,再观察变化,然后再关机secondary,然后再启动,观察DRBD变化及Heartbeat起作用了没。
测试三、假设此时把primary的eth0 给ifdown了, 然后直接在secondary上进行主的提升,并也给mount了, 发现在primary上测试拷入的文件确实同步过来了。之后把primary的 eth0 恢复后, 发现没有自动恢复主从关系, 经过支持查询,发现出现了drbd检测出现了Split-Brain 的状况, 两个节点各自都standalone了,故障描术如下:Split-Brain detected, dropping connection!这个即时传说中的脑裂了,DRBD官方推荐手动恢复(生产环境下出现这个机率的机会很低的,谁会去故障触动生产中的服务器)
以下手动恢复Split-Brain状况:
i. 在secondary上:
- drbdadm secondary r0
- drbdadm disconnect all
- drbdadmin -- --discard-my-data connect r0
ii.在primary上:
- drbdadm disconnect all
- drbdadm connect r0
测试四、假设Primary因硬件损坏了,需要将Secondary提生成Primay主机,如何处理,方法如下:
在primaty主机上,先要卸载掉DRBD设备.
[root@centos1 /]# umount /d
将主机降级为”备机”
- [root@centos1 /]# drbdadm secondary r0
- [root@centos1 /]# cat /proc/drbd
- 1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r—
现在,两台主机都是”备机”.
在备机centos2上, 将它升级为”主机”.
- [root@centos2 /]# drbdadm primary r0
- [root@centos2 /]# cat /proc/drbd
- 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r—
现在centos2成为主机了.
至此,整个实验结束了;建议大家多做测试和总结,几十遍后就会完全掌握其用法,祝大家Happy先了。