Red Hat Training

A Red Hat training course is available for RHEL 8

16.4. 在集群中移动资源

Pacemaker 提供了各种机制来将资源配置为从一个节点迁移到另一个节点,并在需要时手动移动资源。

您可以使用 pcs resource move pcs resource relocate 命令手动移动 集群中的资源,如 手动移动群集资源 中所述。

除了这些命令外,您还可以通过启用、禁用和禁止资源来控制集群资源的行为,如禁用、启用和禁止集群资源中所述。

您可以配置资源以便在定义多个故障后移到新节点,您可以在外部连接丢失时配置集群来移动资源。

16.4.1. 因为失败而移动资源

当您创建资源时,您可以通过为该资源设置 migration-threshold 选项来配置资源,使其在定义多个故障后移至新节点。达到阈值后,这个节点将不再被允许运行失败的资源,直到:

  • 管理员使用 pcs resource cleanup 命令手动重置资源的 故障计数
  • 达到资源的 failure-timeout 值。

migration-threshold 的值默认设置为 INFINITYINFINITY 在内部被定义为一个非常大但有限的数字。值 0 会禁用 migration-threshold 功能。

注意

为资源设置 migration-threshold 与为迁移配置资源不同,其中资源移动到另一个位置而不丢失状态。

以下示例在名为 dummy_resource 的资源中添加了一个迁移阈值 10,这表示资源将在 10 个故障后移到新节点。

# pcs resource meta dummy_resource migration-threshold=10

您可以使用以下命令为整个集群的默认值添加迁移阈值。

# pcs resource defaults migration-threshold=10

要确定资源当前的故障状态和限值,请使用 pcs resource failcount show 命令。

迁移阈值概念有两个例外,当资源无法启动或无法停止时会出现这种情况。如果集群属性 start-failure-is-fatal 设为 true (默认值),启动失败会导致故障 计数 设置为 INFINITY,因此始终会导致资源立即移动。

停止失败会稍有不同,且非常关键。如果资源无法停止,并且启用了 STONITH,那么集群将隔离该节点以便可以在其他位置启动该资源。如果没有启用 STONITH,那么集群就无法继续,也不会尝试在其他位置启动资源,而是会在失败超时后尝试再次停止它。