10.6. poison-pill 隔离中的时间配置注意事项


当使用基于存储的死机(SBD)的 poison-pill 隔离部署红帽高可用性集群时,您必须仔细配置时间。正确的超时可确保在故障场景中安全隔离节点,防止出现脑裂的情况,同时允许有足够的时间使集群服务进行通信和稳定。

以下是 poison-pill 隔离场景中时间配置的主要注意事项:

SBD_WATCHDOG_TIMEOUT

请保留默认值 5 秒。数值越高,集群可以有足够的时间来解决临时连接功能,而不用响应,但会增加从合法故障中恢复所需的时间。在默认的 5 秒下设置它会被小心,因为它可能会导致集群超过主动,并导致高负载或短暂的无响应。

如果您的集群使用 QDevice,请将 SBD_WATCHDOG_TIMEOUT 参数高于 qdevice-sync_timeout (默认为 30s)。将 3 秒不同,以防止延迟仲裁更新导致脑裂的情况。

msgwait 超时

fence_sbd 在编写 poison-pill 消息后等待的持续时间,然后再被视为完成。如果 watchdog 超时为 5 秒,则将其设置为 SBD_WATCHDOG_TIMEOUT 的值两次,例如 10 秒。如果设置 msgwait 小于 watchdog 超时,则集群可以在目标节点仍然处理该操作或等待其硬件 watchdog 过期时,预先声明隔离操作。

必须适当调整 msgwait 持续时间的大小才能安全地覆盖三个不同的场景:

  1. 目标成功读取消息和自我保护 : 目标节点仍然响应的预期场景,成功从共享块设备读取 poison-pill 消息,并启动自助隔离。
  2. 目标丢失对磁盘的访问: 目标节点仍在运行,但发现它无法从定数量的共享磁盘读取,从而导致它识别访问和自我保护的丢失。
  3. 目标完全无响应: 目标节点已冻结,能够执行任何操作。由于它无法执行操作,因此将无法重置(硬件)-watchdog,这也会导致重新引导。

    如果 msgwait 设置低于从前一个注意事项派生的超时,则当目标节点仍然处理该操作或等待其硬件 watchdog 过期时,集群可以预先声明隔离操作。

pcmk_reboot_timeout (STONITH-level timeout)

这是集群在超时期间等待的,用来指定 STONITH 设备本身(fence_sbd)在"reboot"操作期间等待的时长。

此值应该会引发,使其至少比 msgwait 属性高 5 秒。如果没有相应地引发,集群可能会放弃隔离操作,并在 msgwait 周期已完全耗尽前报告失败。

SBD_START_DELAY 和启动延迟

在启动时设置延迟可让集群额外的时间稳定,并允许存储设备在监控开始前完全上线。另外,隔离后快速恢复后,集群节点有一个通用问题,它们仍然可以捕获广播其自身成功隔离。这给他们混淆,并将它们置于隔离子层中出现错误的情况。

  • 使用 SBD : 可以增加 SBD_START_DELAY 来缓解此行为,从而降低节点的重新输入速度,以便旧的广播清除。
  • 如果没有 SBD: 对于不使用 SBD 的环境,有提示可以在 unit-file 中直接延迟 corosync 启动以达到相同的结果。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部