31.3. 禁用、启用和禁止集群资源
除了 pcs resource move
和 pcs resource relocate
命令外,您还可以使用各种其他命令来控制群集资源的行为。
禁用集群资源
您可以手动停止正在运行的资源,并使用以下命令防止集群再次启动它。根据其他配置(约束、选项、失败等)配置,资源可能会继续启动。如果您指定了 --wait
选项,pcs 将 等待 'n' 秒以便资源停止,然后如果资源停止,则返回 0 或 1(如果资源尚未停止)。如果没有指定 'n',则默认为 60 分钟。
pcs resource disable resource_id [--wait[=n]]
从 RHEL 8.2 开始,您可以指定仅在禁用资源对其他资源没有影响时禁用资源。在具有复杂的资源关系时,这可能无法通过手动设置来完成。
-
pcs resource disable --simulate
命令显示在不更改群集配置时禁用资源的效果。 -
pcs resource disable --safe
命令仅在没有任何方式影响任何其他资源时禁用资源,比如从一个节点迁移到另一个节点。pcs resource secure-disable
命令是pcs resource disable --safe 命令的
别名。 -
pcs resource disable --safe --no-strict
命令仅在没有其他资源无法停止或降级时禁用资源
从 RHEL 8.5 开始,您可以为 pcs resource disable --safe
命令指定 --brief
选项来只打印错误。同样从 RHEL 8.5 开始,如果安全禁用操作失败,则 pcs resource disable --safe
命令生成的错误报告会包含受影响的资源 ID。如果您只需要知道受禁用资源影响的资源的 ID,请使用 --brief
选项,这不提供完整的模拟结果。
启用集群资源
使用以下命令来允许集群启动资源。根据其余配置,资源可能会继续停止。如果您指定了 --wait
选项,pcs 将 等待 'n' 秒以便资源启动,然后如果资源启动,则返回 0 或 1(如果资源尚未启动)。如果没有指定 'n',则默认为 60 分钟。
pcs resource enable resource_id [--wait[=n]]
防止资源在特定节点上运行
使用以下命令来防止资源在指定节点上运行,如果没有指定节点则在当前节点上运行。
pcs resource ban resource_id [node] [--master] [lifetime=lifetime] [--wait[=n]]
请注意,当执行 pcs resource ban
命令时,这会向资源添加 -INFINITY 位置约束,以防止其在指定节点上运行。您可以执行 pcs resource clear
或 pcs constraint delete
命令删除约束。这不一定将资源回指定节点 ; 此时可以在哪里运行这些资源取决于您最初配置的资源。
如果您指定 pcs resource ban
命令的 --master
参数,则约束的范围仅限于 master 角色,您必须指定 master_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