浅谈 HACMP 心跳
2008-11-13 10:57:34 来源:WEB开发网2 个节点的 HACMP 集群
我们从上文可以发现,准确判断网络故障点的位置需要“第三个节点”做仲裁。只有 2 个节点的 HA 集群如何实现正确判断?从一般的逻辑判断上来说,2 个节点之间出问题一定是公说公有理,婆说婆有理,必须要有第三方来做仲裁。
在只有 2 个节点的 HA 集群中,为了解决这个问题,HACMP 需要配置一个文件来设置一些第三方的一个仲裁 IP 地址。当心跳故障发生时,2 个节点都会去试图从本机去 ping 这些仲裁 IP 地址。能正确的 ping 通则表明本节点的网络正常,从而判断出故障点需要注意的是,仅仅是在网络心跳发生问题时,RSCT 才会调用网络诊断的进程去使用这些仲裁 IP,在正常状态下,这些仲裁 IP 不会参与到心跳过程。
这些仲裁 IP 的选择可以是子网的网关,也可以是子网中其他的某一节点 IP 地址。如果有多个子网,需要为每个子网挑选一个仲裁 IP 地址,把他们写成一个 list 保存到一个配置文件(netmon.cf)中。该配置文件的存放位置在 /usr/es/sbin/cluster/netmon.cf。在两个节点的 HA 群里同步配置的过程中,如果没有配置 netmon.cf 可能会弹出一个 warning 的信息提示该文件需要配置。
在配置 netmon.cf 后,RSCT 的进程启动后,会逐条把其中的 IP 读取进来,作为仲裁 IP 使用。我们可以在 nmDiag.nim.topsvcs.xxx 这个日志文件中看到这样的信息。
06/18 19:01:55.387: read_ping_configuration:Entered for adapter en0
06/18 19:01:55.387: read_ping_configuration:File /usr/es/sbin/cluster/netmon.cf opened
06/18 19:01:55.387: read_ping_configuration:Read [192.168.21.130 ] from file.
06/18 19:01:55.387: read_ping_configuration:gethostbyname (192.168.21.130) was successful.
06/18 19:01:55.387: read_ping_configuration:Read [172.32.16.3] from file.
06/18 19:01:55.387: read_ping_configuration:gethostbyname (172.32.16.3) was successful.
06/18 19:01:55.387: read_ping_configuration:Read 2 ping addresses.
更多精彩
赞助商链接