第 34 章 解释资源代理 OCF 返回代码
Pacemaker 资源代理符合 Open Cluster Framework(OCF)资源代理 API。下表描述了 OCF 返回代码,以及 Pacemaker 如何解释它们。
当代理返回代码时,集群要做的第一件事是针对预期结果检查返回码。如果结果与预期值不匹配,则操作被视为失败,并启动恢复操作。
对于任何调用,资源代理必须以定义的返回码退出,该返回码告知调用者调用操作的结果。
故障恢复有三种类型,如下表所述。
Type | 描述 | 集群采取的操作 |
---|---|---|
soft | 发生了短暂错误。 | 重新启动资源或将其移到新位置。 |
hard | 发生了一个可能特定于当前节点的非短暂错误。 | 将资源移到其他地方,并阻止其在当前节点上被重试。 |
fatal | 发生了一个对所有集群节点都常见的非短暂错误(例如,指定了一个错误的配置)。 | 停止资源,并阻止其在任何集群节点上启动。 |
下表提供了 OCF 返回码,以及收到失败代码时集群将启动的恢复类型。请注意,如果 0 不是预期的返回值,即使返回 0 (OCF 别名 OCF_SUCCESS
)的操作也可被视为失败。
返回码 | OCF 标签 | 描述 |
---|---|---|
0 |
| * 操作成功完成。这是任何成功的 start、stop、promote 和 demote 命令的预期返回码。 * Type if unexpected: soft |
1 |
| * 操作返回一个通用错误。 * 类型: soft * 资源管理器将尝试恢复资源或将其移到新位置。 |
2 |
| * 资源的配置在此机器中无效。例如,它指向了一个节点上未找到的位置。 * Type: hard * 资源管理器会将资源移到其他位置,并阻止其在当前节点上重试 |
3 |
| * 请求的操作没有实施。 * Type: hard |
4 |
| * 资源代理没有足够的权限来完成该任务。例如,这可能是因为代理无法打开特定文件、监听特定套接字或写入目录。 * Type: hard * 除非另有特殊配置,否则资源管理器将通过在其他节点(权限问题可能不存在)上重启资源来尝试恢复出错的资源。 |
5 |
| * 执行操作的节点中缺少所需的组件。这可能是因为所需的二进制文件不可执行,或者重要的配置文件不可读。 * Type: hard * 除非另有特殊配置,否则资源管理器将通过在其他节点(可能存在所需的文件或二进制文件)上重启资源来尝试恢复出错的资源。 |
6 |
| * 本地节点上的资源配置无效。 * type: fatal * 当返回此码时,Pacemaker 将阻止资源在集群中的任何节点上运行,即使服务配置在某些其他节点上是有效的。 |
7 |
| * 资源被安全地停止。这意味着资源已正常关闭,或者从未启动。 * Type if unexpected: soft * 集群不会尝试停止在任何操作中返回此功能的资源。 |
8 |
| * 资源在提升的角色中运行。 * Type if unexpected: soft |
9 |
| * 资源是(或可能)在提升角色中,但失败。 * 类型: soft * 资源将被降级、停止,然后再次启动(并可能升级)。 |
190 | * 发现该服务正确活跃,但在这种情况下,未来故障的可能性更大。 | |
191 | * 资源代理支持角色和服务,发现在提升的角色中正确活跃,但在这样的情况下,未来故障的可能性更大。 | |
其他 | 不适用 | 自定义错误码. |