Thursday, October 05, 2006

heartbeat 学习笔记(一)

测试环境:
OS: CentOS 4.3
heartbeat: 1.2.3.cvs.20050927-1.c
两个节点,捆绑资源为 ipfail

/etc/ha.d/ha.cf 和 /etc/ha.d/haresources 基本上是照猫画虎,两个节点完全相同。认证模式为 crc,使用以太网接口、UDP单播方式通信。条件限制,没用使用串口。可用性测试为第三台主机不间断 ping virtual ip。auto_failback 设为 on。

下面我将主节点称为 A 节点,从节点称为 B 节点。
首先启动 A 节点的 heartbeat 服务,若不启动 B 节点的 heartbeat 服务,那么只有经过 initdead 时间后,A 节点才会启用本地资源;否则,在节点间发生通信后,根据设置文件及各节点的状态,A 节点会立即启用本地资源,这里指的是 virtual ip。

在 heartbeat 的文档中提到,ipfail 需要指定普通节点以外的 Ping 节点,以帮助各节点判断网络状况。Ping 节点一般可以是可用性比较高的网关路由器等。在实际测试中,从效果来看,有没有 Ping 节点并不影响效果。没有做更进一步的分析,跳过。

在启动各节点的 heartbeat 后,virtual ip 在 A 节点上正常启用了。然后关闭 A 节点的 heartbeat 来模拟 A 节点不可用的情况,B 节点顺利接过了 virtual ip。再启动 A 节点的 heartbeat,因为 auto_failback 为 on,所以 A 节点又重新接管 virtual ip。两次切换都没有影响第三台主机 ping 的结果,一直处于可用状态。

参考资料:
Linux HA
Linux 上的高可用中间件

No comments: