4.5 指定资源故障转移节点

资源在出现故障时会自动重启动。如果在当前节点上无法实现重启动,或如果在当前节点上发生 N 次故障,则资源会试图故障转移到其他节点。您可以多次定义资源的故障次数(migration-threshold),在该值之后资源会迁移到新节点。如果群集中存在两个以上的节点,特定资源故障转移的节点由 High Availability 软件选择。

如果您希望自己选择资源故障转移的节点,必须执行以下操作:

  1. 添加或修改位置约束中所述,为该资源配置位置约束。

  2. 添加或修改元属性和实例属性中所述,为该资源添加 migration-threshold 元属性,并输入迁移阈值的。值应该是小于 INFINITY 的正值。

  3. 如果希望资源的故障计数自动失效,请按添加或修改元属性和实例属性中所述为该资源添加 failure-timeout 元属性,并输入故障超时的

  4. 如果希望为资源指定更多的首选故障转移节点,请创建更多的位置约束。

例如,假设您已经为 r1 资源配制了一个首选在 node1 节点上运行的位置约束。如果那里失败了,系统会检查 migration-threshold 并与故障计数进行比较。如果故障计数 >= migration-threshold,会将资源迁移到下一个自选节点。

默认情况下,一旦达到阈值,就只有在管理员手动重置资源的故障计数后(在修复故障原因后),才允许在该节点上运行有故障的资源。

但是,可以通过设置资源的 failure-timeout 选项使故障计数失效。因此,migration-threshold=2failure-timeout=60s 的设置会导致资源在两次故障后迁移到新的节点,并且可能允许在一分钟后移回(取决于黏性和约束分数)。

迁移阈值概念有两个例外,在资源启动失败或停止失败时出现:启动故障会使故障计数设置为 INFINITY,因此总是导致立即迁移。停止故障会导致屏障(stonith-enabled 设置为 true 时,这是默认设置)。如果不定义 STONITH 资源(或 stonith-enabled 设置为 false),则该资源根本不会迁移。

要使用 Linux HA Management Client 清理资源计数,请选择左窗格中的 Management(管理),再选择右窗格中各自的资源,然后单击工具栏上的 Cleanup Resource(清理资源)。此操作对指定节点上的指定资源执行 crm_resource -Ccrm_failcount -D 命令。有关详细信息,另请参见crm_resource (8)crm_failcount (8)