Sun Cluster 产品附带的每种数据服务都包含一个内置故障监视器。故障监视器可执行以下功能:
检测数据服务服务器进程的意外终止
检查数据服务的运行状况
故障监视器包含在相应的资源中,该资源表示编写数据服务时所针对的应用程序。您在注册并配置数据服务时便创建了此资源。有关更多信息,请参见数据服务的文档。
此资源的系统特性和扩展特性控制故障监视器的行为。这些特性的缺省值确定了故障监视器的预设行为。预设行为应该适用于大多数 Sun Cluster 安装。因此,仅当需要修改此预设行为时才应调节故障监视器。
调节故障监视器涉及到以下任务:
设置两次故障监视器探测之间的间隔
设置故障监视器探测超时时间
定义持久性故障的标准
指定资源的故障转移行为
在注册和配置数据服务时执行这些任务。有关更多信息,请参见数据服务的文档。
使包含某个资源的资源组联机时将启动该资源的故障监视器。您无需显式启动该故障监视器。
为确定资源是否运行正常,故障监视器将定期探测此资源。两次故障监视器探测之间的间隔将影响资源的可用性以及系统的性能,如下所述:
两次故障监视器探测之间的间隔将影响检测到故障并对其做出响应所需的时间长度。因此,如果缩短两次故障监视器探测之间的间隔,则检测到故障并对其做出响应所需的时间也将缩短。这样可以增强资源的可用性。
两次故障监视器探测之间的最佳间隔还与对资源中的故障做出响应所需的时间有关。该时间依赖于资源的复杂性影响执行操作(如重新启动该资源)所需的时间的程度。
要设置两次故障监视器探测之间的间隔,请将资源的 Thorough_probe_interval 系统特性设置为所需的间隔(以秒为单位)。
故障监视器探测超时时间指定故障监视器等待所探测的资源做出响应的时间长度。如果故障监视器在这段超时时间内没有接收到响应,则故障监视器将认为资源出现故障。 资源对故障监视器探测做出响应所需的时间依赖于故障监视器探测该资源时所执行的操作。有关数据服务的故障监视器执行的用于探测资源的操作的信息,请参见数据服务的文档。
资源做出响应所需的时间还依赖于与故障监视器或应用程序无关的因素,例如:
系统配置
群集配置
系统负载
网络通信量
要为故障监视器探测设置超时,请将资源的 Probe_timeout 扩展特性设置为所需的超时值(以秒为单位)。
为了尽可能地降低由于资源中的瞬态故障引起的中断所带来的影响,故障监视器将重新启动资源以响应这类故障。对于持久性故障,需要比重新启动资源更具破坏性的操作:
对于故障转移资源,故障监视器将把资源故障转移到其他节点。
对于可伸缩资源,故障监视器将使该资源脱机。
如果在指定的重试间隔内资源的完全故障次数超出了指定阈值,故障监视器将该故障视为持久性故障。为持久性故障定义标准使您能够根据群集的性能特点和可用性要求来设置阈值和重试间隔。
故障监视器将资源的某些故障视为完全故障。通常,完全故障会导致服务完全丢失。以下故障为完全故障的示例:
数据服务服务器的进程的意外终止
故障监视器不能连接到数据服务服务器
每发生一次完全故障,故障监视器会将重试间隔中的完全故障计数增加 1。
故障监视器将资源的其他故障视为部分故障。部分故障没有完全故障严重,它通常会导致服务降级,但不会导致服务完全丢失。例如,在故障监视器探测超时之前来自数据服务服务器的不完整响应,便是一个部分故障的例子。
每发生一次部分故障,故障监视器会将重试间隔内的完全故障计数增加一个分数值。部分故障在重试间隔内将继续累积。
部分故障的以下特性取决于数据服务:
故障监视器视为部分故障的故障类型
每个部分故障添加到完全故障计数中的分数值
有关数据服务的故障监视器检测到的故障的信息,请参见数据服务的文档。
重新启动一次出现故障的资源所需的最长时间是以下特性的值的总和:
Thorough_probe_interval 系统特性
Probe_timeout 扩展特性
为了确保在重试间隔内达到阈值之前您具有足够的时间,请使用以下表达式来计算重试间隔和阈值:
retry-interval ≥ threshold × (thorough-probe-interval + probe-timeout)
要设置阈值和重试间隔,请设置资源的以下系统特性:
资源的故障转移行为决定了 RGM 如何响应以下故障:
无法启动资源
无法停止资源
无法停止资源的故障监视器
要指定资源的故障转移行为,请设置该资源的 Failover_mode 系统特性。有关此特性的可能值的信息,请参见资源特性中对 Failover_mode 系统特性的说明。