9.5 测试你的Heartbeat配置
在将你的Heartbeat高可用服务器对放入生产之前,还有一些事情要做:
拔出主服务器的电源线
备用服务器应该检测到来自主服务器的心跳消失了,并启动故障转移,使用Stonith时,备用服务器应该关闭或复位主服务器的电源,备用服务器上的Heartbeat应该运行适当的资源脚本(在Stonith事件被完全清除后)取得资源的所有权,同时它还应该发送ARP欺骗广播通知客户端和/或网络设备资源ip地址对应的MAC地址已经改变了。
客户端计算机和网络设备(如路由器和交换机)应该更新它们的ARP缓存映射备用服务器的MAC地址,在你的Cisco网络设备上检查ARP缓存,例如,使用命令:
show ip arp |
或使用命令:
show ip arp 209.100.100.3 |
这里的209.100.100.3是故障转移到备用服务器的ip别名,在备用服务器发送ARP欺骗广播后MAC地址应该自动改变。[9]
用下面的命令检查所有共享同一个网络广播地址的客户端计算机,它们可能工作在Windows PC和Linux主机上:
arp -a |
测试hb_standby命令的行为
在主服务器上使用hb_standby命令强制资源故障转移到备用服务器,然后在备用服务器上使用这个命令强制资源转回到主服务器,如果hb_standby命令没有准确地工作ipfail也不能准确地工作。
拔出主服务器上的生产网线
使用ipfail(或Mon[10],或类似的监视工具)时,网络连接故障应该被检测到,资源和ip别名应该故障转移到备用服务器上。
移除一根主/备服务器之间的心跳线
在主/备服务器之间使用多条心跳线可以避免出现假象(备用服务器错误地判断主服务器死掉),当你移除一根心跳线时(如一根交叉网线或一根串口线),不应该发生任何事情。
移除主/备服务器之间所有的心跳线
当你全部移除主/备服务器之间的心跳线时会发生什么?如果你使用了Stonith,备用服务器应该会认为主服务器已经死掉了,并启动一根Stontih事件,然后取得资源的所有权,接下来发生什么取决于你配置的auto_failback选项。
如果使用了两个Stonith设备(主/备服务器能相互控制对方的电力供应),并将auto_failback选项设置为on,主/备服务器可能会相互循环重复启动对方的电源,要避免出现这种情况,你可以禁用掉auto_failback选项或使用本章前面描述的方法将电源关闭而不是循环开启主服务器的电源。
杀掉主服务器上的Heartbeat守护进程(killall -9 heartbeat)
当你使用ip别名向客户端计算机提供资源时,Stonith特别重要,在判断资源所有权避免出现头脑分裂状态之前,备用服务器必须Stonith或关闭/复位主服务器的电源。
杀掉主服务器上的资源守护进程
这个情况在本章介绍Heartbeat配置时没有进行说明,取决于你的需求,你可以运行包括在Heartbeat中的cl_status或cl_respawn监视或在服务失效时自动重启,你也可以使用Mon应用程序(第17章会介绍它的详细信息)监视守护进程,在服务失效时采取特定的动作(如向你的耳机或传呼器发送警告)。
复位主/备服务器的电源
服务器启动正常,驻留在主服务器上的资源启动正常吗?如果备用服务器在主服务器未完成启动前尝试从主服务器抓取资源,你可能需要调整/etc/ha.d/ha.cf文件中的initdead时间。
[9]你可能需要使用Csico IOS命令ip gratuitous-arps确定Csico设备接收ARP欺骗广播。
[10]参考第17章。
| 回书目 上一节 下一节 |