31.3. 禁用、启用和禁止集群资源

除了 pcs resource movepcs resource relocate 命令外,您还可以使用各种其他命令来控制集群资源的行为。

禁用集群资源

您可以手动停止正在运行的资源,并使用以下命令防止集群再次启动它。根据其他配置(约束、选项、失败等)配置,资源可能会继续启动。如果您指定了 --wait 选项,pcs 将最多等待资源停止 'n' 秒,然后返回 0 (如果资源停止)或 1(如果资源尚未停止)。如果没有指定 'n',则默认为 60 分钟。

pcs resource disable resource_id [--wait[=n]]

在禁用资源不会影响其他资源的情况下,您可以指定一个资源被禁用。在具有复杂的资源关系时,这可能无法通过手动设置来完成。

  • pcs resource disable --simulate 命令显示在更改集群配置的同时禁用资源的效果。
  • pcs resource disable --safe 命令仅在没有任何方式影响任何其他资源时禁用资源,比如从一个节点迁移到另一个节点。pcs resource secure-disable 命令是 pcs resource disable --safe 命令的别名。
  • pcs resource disable --safe --no-strict 命令仅在没有其他资源无法停止或降级时才禁用资源

您可以为 pcs resource disable --safe 命令指定 --brief 选项,以仅打印错误。如果安全禁用操作失败包含受影响的资源 ID,则 pcs resource disable --safe 命令会生成错误报告。如果您只需要知道受禁用资源影响的资源 ID,请使用 --brief 选项,这不提供完整的模拟结果。

启用集群资源

使用以下命令来允许集群启动资源。根据其余配置,资源可能会继续停止。如果您指定了 --wait 选项,pcs 将最多等待资源启动 'n' 秒,然后返回 0 (如果资源启动)或 1(如果资源尚未启动)。如果没有指定 'n',则默认为 60 分钟。

pcs resource enable resource_id [--wait[=n]]

防止资源在特定节点上运行

使用以下命令来防止资源在指定节点上运行,如果没有指定节点则在当前节点上运行。

pcs resource ban resource_id [node] [--promoted] [lifetime=lifetime] [--wait[=n]]

请注意,当执行 pcs resource ban 命令时,这会向资源添加 -INFINITY 位置约束,以防止其在指定的节点上运行。您可以执行 pcs resource clearpcs constraint delete 命令来删除约束。这不一定将资源回指定节点 ; 此时可以在哪里运行这些资源取决于您最初配置的资源。

如果您指定 pcs resource ban 命令的 --promoted 参数,则约束的范围仅限于提升的角色,您必须指定 promotable_id 而不是 resource_id

您可选择为 pcs resource ban 命令配置 lifetime 参数,以指示约束应保留的时间。

您可以选择为 pcs resource ban 命令配置 --wait[=n] 参数,以指示在返回 0(如果资源已启动)或 1 (如果资源尚未启动)之前,在目标节点上等待资源启动的秒数。如果没有指定 n,将使用默认的资源超时时间。

强制资源在当前节点上启动

使用 pcs resource 命令的 debug-start 参数强制指定资源在当前节点上启动,忽略集群建议并打印启动资源的输出。这主要用于调试资源;在集群上启动资源总是(几乎)由 Pacemaker 来完成,而不是直接使用 pcs 命令。如果您的资源没有启动,这通常是由于资源配置错误(您在系统日志中调试)、阻止资源启动的限制,或者禁用资源。您可以使用这个命令来测试资源配置,但通常不应该用来启动集群中的资源。

debug-start 命令的格式如下:

pcs resource debug-start resource_id