31.3. 禁用、启用和禁止集群资源
除了 pcs resource move
和 pcs 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 clear
或 pcs 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