第 33 章 解释资源代理 OCF 返回代码

Pacemaker 资源代理符合 Open Cluster Framework(OCF)资源代理 API。下表描述了 OCF 返回代码,以及 Pacemaker 如何解释它们。

当代理返回代码时,集群要做的第一件事是针对预期结果检查返回码。如果结果与预期值不匹配,则操作被视为失败,并启动恢复操作。

对于任何调用,资源代理必须以定义的返回码退出,该返回码告知调用者调用操作的结果。

故障恢复有三种类型,如下表所述。

表 33.1. 集群执行的恢复类型

Type描述集群采取的操作

soft

发生了短暂错误。

重新启动资源或将其移到新位置。

hard

发生了一个可能特定于当前节点的非短暂错误。

将资源移到其他地方,并阻止其在当前节点上被重试。

fatal

发生了一个对所有集群节点都常见的非短暂错误(例如,指定了一个错误的配置)。

停止资源,并阻止其在任何集群节点上启动。

下表提供了 OCF 返回码,以及收到失败代码时集群将启动的恢复类型。请注意,如果 0 不是预期的返回值,即使返回 0 (OCF 别名 OCF_SUCCESS)的操作也可被视为失败。

表 33.2. OCF 返回码

返回码OCF 标签描述

0

OCF_SUCCESS

* 操作成功完成。这是任何成功的 start、stop、promote 和 demote 命令的预期返回码。

* Type if unexpected: soft

1

OCF_ERR_GENERIC

* 操作返回一个通用错误。

* 类型: soft

* 资源管理器将尝试恢复资源或将其移到新位置。

2

OCF_ERR_ARGS

* 资源的配置在此机器中无效。例如,它指向了一个节点上未找到的位置。

* Type: hard

* 资源管理器会将资源移到其他位置,并阻止其在当前节点上重试

3

OCF_ERR_UNIMPLEMENTED

* 请求的操作没有实施。

* Type: hard

4

OCF_ERR_PERM

* 资源代理没有足够的权限来完成该任务。例如,这可能是因为代理无法打开特定文件、监听特定套接字或写入目录。

* Type: hard

* 除非另有特殊配置,否则资源管理器将通过在其他节点(权限问题可能不存在)上重启资源来尝试恢复出错的资源。

5

OCF_ERR_INSTALLED

* 执行操作的节点中缺少所需的组件。这可能是因为所需的二进制文件不可执行,或者重要的配置文件不可读。

* Type: hard

* 除非另有特殊配置,否则资源管理器将通过在其他节点(可能存在所需的文件或二进制文件)上重启资源来尝试恢复出错的资源。

6

OCF_ERR_CONFIGURED

* 本地节点上的资源配置无效。

* type: fatal

* 当返回此码时,Pacemaker 将阻止资源在集群中的任何节点上运行,即使服务配置在某些其他节点上是有效的。

7

OCF_NOT_RUNNING

* 资源被安全地停止。这意味着资源已正常关闭,或者从未启动。

* Type if unexpected: soft

* 集群不会尝试停止在任何操作中返回此功能的资源。

8

OCF_RUNNING_PROMOTED

* 资源在提升的角色中运行。

* Type if unexpected: soft

9

OCF_FAILED_PROMOTED

* 资源是(或可能)在提升角色中,但失败。

* 类型: soft

* 资源将被降级、停止,然后再次启动(并可能升级)。

190

 

* 发现该服务正确活跃,但在这种情况下,未来故障的可能性更大。

191

 

* 资源代理支持角色和服务,发现在提升的角色中正确活跃,但在这样的情况下,未来故障的可能性更大。

其他

不适用

自定义错误码.