8.2. 因为失败而移动资源
当您创建资源时,您可以通过为该资源设置
migration-threshold
选项来配置资源,使其在定义多个故障后移至新节点。达到阈值后,这个节点将不再被允许运行失败的资源,直到:
- 管理员使用 pcs resource
failcount
命令手动重置资源的故障计数。 - 达到资源的
failure-timeout
值。
migration-threshold
的值默认设置为 INFINITY
。INFINITY
在内部被定义为一个非常大但有限的数字。值 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 命令。
迁移阈值概念有两个例外,当资源无法启动或无法停止时会出现这种情况。如果集群属性
start-failure-is-fatal
设为 true
(默认值),启动失败会导致故障 计数
设置为 INFINITY
,因此始终会导致资源立即移动。有关 start-failure-is-fatal
选项的详情请参考 表 12.1 “集群属性”。
停止失败会稍有不同,且非常关键。如果资源无法停止,并且启用了 STONITH,那么集群将隔离该节点以便可以在其他位置启动该资源。如果没有启用 STONITH,那么集群就无法继续,也不会尝试在其他位置启动资源,而是会在失败超时后尝试再次停止它。