根据 OCF 规范,有一些关于操作必须返回的退出代码的严格定义。群集会始终检查返回代码与预期结果是否相符。如果结果与预期值不匹配,则将操作视为失败,并将启动恢复操作。有三种类型的故障恢复:
表 17-1 故障恢复类型
恢复类型 |
描述 |
群集执行的操作 |
---|---|---|
软 |
发生临时错误。 |
重启动资源或将它移到新位置。 |
硬 |
发生非临时错误。该错误可能特定于当前节点。 |
将资源移到别处,避免在当前节点上重试该资源。 |
致命 |
发生所有群集节点共有的非临时错误。这意味着指定了错误的配置。 |
停止资源,避免在任何群集节点上启动该资源。 |
假定将某个操作视为已失败,下表概括了不同的 OCF 返回代码以及收到相应的错误代码时群集将启动的恢复类型。
表 17-2 OCF 返回代码
OCF 返回代码 |
OCF 别名 |
描述 |
恢复类型 |
---|---|---|---|
0 |
OCF_SUCCESS |
成功。命令成功完成。这是所有启动、停止、升级和降级命令的所需结果。 |
软 |
1 |
OCF_ERR_GENERIC |
通用 |
软 |
2 |
OCF_ERR_ARGS |
此计算机上的资源配置无效(例如,它引用了节点上找不到的某个位置/工具)。 |
硬 |
3 |
OCF_ERR_UNIMPLEMENTED |
请求的操作未实现。 |
硬 |
4 |
OCF_ERR_PERM |
资源代理不具备完成该任务的足够特权。 |
硬 |
5 |
OCF_ERR_INSTALLED |
资源所需的工具未安装在此计算机上。 |
硬 |
6 |
OCF_ERR_CONFIGURED |
资源的配置无效(例如,缺少必需的参数)。 |
致命 |
7 |
OCF_NOT_RUNNING |
资源未运行。群集将不会尝试停止为任何操作返回此代码的资源。 此 OCF 返回代码可能需要或不需要资源恢复,这取决于所需的资源状态。如果出现意外,则执行软恢复。 |
不适用 |
8 |
OCF_RUNNING_MASTER |
资源正在主节点中运行。 |
软 |
9 |
OCF_FAILED_MASTER |
资源在主节点中,但已失败。资源将再次被降级、停止再重启动(然后也可能升级)。 |
软 |
其他 |
不适用 |
自定义错误代码。 |
软 |