随 Oracle Solaris Cluster 产品提供的每项数据服务都有内置的故障监视器。故障监视器执行以下功能:
检测数据服务服务器的进程是否意外终止
检查数据服务的运行状况
故障监视器包含在代表应用程序的资源中,为此应用程序编写了数据服务。在注册和配置数据服务时,要创建此资源。有关更多信息,请参见数据服务的文档。
此资源的标准属性和扩展属性控制故障监视器的行为。这些属性的默认值确定了故障监视器的预设行为。预设行为应适合大多数 Oracle Solaris Cluster 安装。因此,仅当需要修改此预设行为时,才应调整故障监视器。
调整故障监视器涉及以下任务:
请在注册和配置数据服务时执行这些任务。有关更多信息,请参见数据服务的文档。
为了确定某个资源是否正常运行,故障监视器会定期探测该资源。故障监视器的探测间隔会在以下方面影响资源的可用性和系统的性能:
故障监视器的探测间隔会影响检测和响应故障所需的时间。因此,如果缩短故障监视器的探测间隔,也会缩短检测和响应故障所需的时间。这种缩短可以提高资源的可用性。
故障监视器的最佳探测间隔还取决于响应资源故障所需的时间。此时间取决于资源复杂性对执行一些操作(如重新启动资源)所需时间的影响。
要设置故障监视器的探测间隔,请将资源的 Thorough_probe_interval 标准属性设置为所需的间隔(秒)。
故障监视器探测超时指定故障监视器等待资源响应探测的时间。如果故障监视器在此超时时间内没有收到响应,则故障监视器将资源视为有故障。资源响应故障监视器探测所需时间取决于故障监视器为探测资源所执行的操作。有关数据服务的故障监视器在探测资源时所执行操作的信息,请参见该数据服务的文档。
资源响应所需的时间还取决于一些与故障监视器或应用程序无关的因素有关;例如:
系统配置
群集配置
系统负载
网络通信量
要设置故障监视器探测超时,请将资源的 Probe_timeout 扩展属性设置为所需的超时值(秒)。
对于大多数资源类型的故障监视器探测,还可以配置 Timeout_threshold 属性在探测执行时间接近超时限制时发送通知。此类通知可以帮助识别设置得太低的探测超时值,探测超时值太低可能会导致错误的故障转移。有关 Timeout_threshold 属性的更多信息,请参见 r_properties(5) 手册页。
为了最大程度地减少资源的瞬态故障导致的中断,故障监视器在响应此类故障时会重新启动资源。对于永久性故障,需要采取比重新启动资源更具破坏性的操作:
对于故障转移资源,故障监视器会将资源故障转移到其他节点。
对于可伸缩资源,故障监视器会将资源脱机。
如果资源的完全故障次数超过了 Retry_count 标准属性指定的重试计数,则故障监视器将该故障视为永久性故障。通过定义永久性故障的条件,可以设置重试计数和重试间隔以适应群集的性能特征和可用性要求。
本节介绍以下主题:
故障监视器将有些故障视为资源的完全故障。完全故障通常会导致服务完全中断。例如,以下故障就是完全故障:
数据服务服务器的进程意外终止
故障监视器无法连接到数据服务服务器
完全故障会导致故障监视器在重试间隔内将完全故障的计数加 1。
故障监视器将其他故障视为资源的部分故障。部分故障的严重性比完全故障低,并且通常会导致服务降级,但不会导致服务完全中断。例如,在故障监视器探测超时之前,数据服务服务器的响应不完整,这就是部分故障。
部分故障会导致故障监视器在重试间隔内按一定比例增加完全故障计数。部分故障仍会在重试间隔中累计。
部分故障的以下特征与数据服务有关:
故障监视器视为部分故障的故障类型
每种部分故障计入完全故障数的比例
有关数据服务的故障监视器检测的故障的信息,请参见该数据服务的文档。
重新启动有故障的资源一次所需的最大时间长度是以下属性值求和的结果:
Thorough_probe_interval 系统属性
Probe_timeout 扩展属性
为了确保留出足够的时间在重试间隔内达到重试计数,请使用以下表达式来计算重试间隔和重试计数的值:
系数 2 针对不会立即导致资源故障转移或脱机的部分探测故障。
要设置重试计数和重试间隔,请设置资源的以下标准属性:
资源的故障转移行为决定了 RGM 如何响应以下故障:
资源启动故障
资源停止故障
资源的故障监视器停止故障
要指定资源的故障转移行为,请设置资源的 Failover_mode 标准属性。有关此属性可能值的信息,请参见 r_properties(5) 手册页中关于 Failover_mode 标准属性的说明。