DSDL 通过提供预确定的模型极大地降低了实现故障监视器的复杂程度。在节点上启动资源时,Monitor_start 方法用于启动在 PMF 控制下的故障监视器。只要资源还在节点上运行,故障监视器就会一直循环运行。DSDL 故障监视器的高级逻辑为:
scds_fm_sleep() 函数使用 Thorough_probe_interval 属性来确定探测之间的时间间隔。在此时间间隔内被 PMF 检测到的任何应用程序进程失败都将导致重新启动资源。
探测本身将返回一个表示失败严重程度的值,该值的范围从 0(无失败)到 100(完全失败)。
探测返回值被发送给 scds_action() 函数,该函数保留在 Retry_interval 属性的时间间隔内累积的失败历史记录。
scds_action() 函数用于确定失败时执行哪些操作,如下所示:
如果累积失败值小于 100,不执行任何操作。
如果累积失败值达到 100(完全失败),则重新启动数据服务。如果超出了 Retry_interval,则重置历史记录。
如果在 Retry_interval 指定的时间内重新启动的次数超出 Retry_count 属性的值,则将数据服务故障转移。