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