Sun Cluster 数据服务开发者指南(适用于 Solaris OS)

评估重启和故障转移

如果 probefail 变量是 0 (成功)之外的值,这意味着 nslookup 命令超时或表明应答是某个服务器发出的,而不是服务样例的 DNS 发出的。在每种情况下,DNS 服务器都不能发挥预期作用,故障监视器将调用 decide_restart_or_failover() 函数以确定是在本地重新启动数据服务,还是请求 RGM 将数据服务重新定位到其他节点。如果 probefail 变量是 0,则会生成一条表明探测程序成功的消息。


   if [ $probefail -ne 0 ]; then
         decide_restart_or_failover
   else
         logger -p ${SYSLOG_FACILITY}.err\
         -t [$SYSLOG_TAG]\
         "${ARGV0} Probe for resource HA-DNS successful"
   fi

decide_restart_or_failover() 函数使用时间窗口 (Retry_interval) 和故障计数 (Retry_count) 来确定是在本地重新启动 DNS,还是请求 RGM 将数据服务重新定位到其他节点。它实现了以下有条件的代码(请参见PROBE 程序中的 decide_restart_or_failover() 的代码列表)。

如果在指定时间间隔内达到了重新启动的最大次数,函数将请求 RGM 将数据服务重新定位到其他节点。如果重启的次数在所限制范围之内,或者已超出了时间间隔,以致重新开始计数时,该函数将尝试在同一节点上重启 DNS。请注意以下关于此函数的信息: