|
系统环境: rhel6 x86_64 iptables and selinux disabled
主机: 192.168.122.119 server19.example.com
192.168.122.25 server25.example.com
所需的包:heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-libs-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm
以下步骤在server19和server25上实施:
[iyunv@server19kernel]# yum localinstall heartbeat-3.0.4-1.el6.x86_64.rpmheartbeat-devel-3.0.4-1.el6.x86_64.rpmheartbeat-libs-3.0.4-1.el6.x86_64.rpm ldirectord-3.9.2-1.2.x86_64.rpm-y
[iyunv@server19ha.d]# modprobe softdog
[iyunv@server19ha.d]# echo modprobe softdog >> /etc/rc.d/rc.local
[iyunv@server19ha.d]# echo `hostname` > /var/www/index.html
[iyunv@server19ha.d]# /etc/init.d/httpd stop
以下步骤在server19或server25上实施:
[iyunv@server19kernel]# cd /usr/share/doc/heartbeat-3.0.4/
[iyunv@server19heartbeat-3.0.4]# cp authkeys haresources ha.cf /etc/ha.d/
[iyunv@server19heartbeat-3.0.4]# cd /etc/ha.d/
#配置/etc/ha.d/authkeys
[iyunv@server19ha.d]# vim authkeys
auth3
#1crc
#2sha1 HI!
3md5 Hello! (去掉注释)
[iyunv@server19ha.d]# chmod 600 authkeys
认证文件(/etc/ha.d/authkeys),文件的权限必须是600
#配置/etc/ha.d/ha.cf
[iyunv@server19ha.d]# vim ha.cf
debugfile/var/log/ha-debug (去掉注释)
调试日志文件文件,取默认值
logfile/var/log/ha-log (去掉注释)
系统运行日志文件,取默认值
logfacilitylocal0
日志等级,取默认值
keepalive2(去掉注释)
心跳频率,自己设定。1:表示1 秒;200ms:表示200 毫秒
deadtime30(去掉注释)
节点死亡时间阀值,就是从节点在过了30后还没有收到心跳就认为主节点死亡,自己设定
warntime10 (去掉注释)
发出警告时间,自己设定
initdead120 (去掉注释)
守护进程首次启动后应该等待120秒后再启动主服务器上的资源
udpport694 (去掉注释)
心跳信息传递的udp端口,使用端口694进行bcast和ucast通信,取默认值
bcasteth0 (去掉注释)
采用udp广播播来通知心跳
auto_failbackon
当主节点恢复后,是否自动切回
watchdog/dev/watchdog (去掉注释)
watchdog能让系统在出现故障1分钟后重启该机器,这个功能可以帮助服务器在确实停止心跳后能够重新恢复心跳
nodeserver19.example.com
主节点名称,与uname--n 保持一致.排在第一的默认为主节点,所以不要搞措顺序
nodeserver25.example.com
副节点名称,与uname--n 保持一致
ping192.168.122.1
respawnhacluster /usr/lib64/heartbeat/ipfail
apiauthipfail gid=haclient uid=hacluster
默认heartbeat并不检测除本身之外的其他任何服务,也不检测网络状况。所以当网络中断时,并不会进行LoadBalancer 和Backup之间的切换。可以通过 ipfail插件,设置'pingnodes'来解决这一问题,但不能使用一个集群节点作为ping的节点.
#配置/etc/ha.d/haresources
[iyunv@server19ha.d]# vim haresources
server19.example.comIpaddr::192.168.122.178/24/eth0 httpd
注:192.168.122.178为虚拟IP.
这个文件中定义了实现集群所需的各个软件的启动脚本,这些脚本必须放在/etc/init.d或者/etc/ha.d/resource.d目录里IPaddr的作用是启动VirutalIP,它是HeartBeart自带的一个脚本.
[iyunv@server19ha.d]# scp authkeys ha.cf haresources root@192.168.122.25:/etc/ha.d/
以下步骤在server19和server25上实施:
[iyunv@server19ha.d]# /etc/init.d/heartbeat start
可执行tail-f /var/log/ha-log分别查看日志,看是否有报错,服务正常的话server19上多了个eth0:0接口,若没有出现,请等待一会,再使用ifconfig查看,若还是没有eth0:0接口出现,检查配置文件是否正确!若停止server19上的heartbeat服务,则server25会接管,并产生一个eth0:0接口!
测试:
1.访问虚拟IP:192.168.122.178可以看到发布的页面,且在服务运行的机子上执行ifconfig可以查看到eth0:0.(起初应该在server19上运行,因为server19为主服务器,server25为备用服务器)
2.将server19上的heartbeat关闭或者执行echoc >/proc/sysrq-trigger模拟内核崩溃,在server25上查看日志可看到服务由server25接管则表示配置成功.
注:若关闭apache服务,将无法访问,因为heartbeat没有对服务进行健康检查的功能. |
|