10.5. 配置 poison-pill SBD 隔离
Poison-pill 隔离使用共享块设备来通信隔离指令。当需要隔离节点时,集群会将消息写入共享设备。目标节点读取此消息并重启其自身。
先决条件
- 正在运行的高可用性集群。
-
在
/dev/watchdog的所有节点上提供功能 watchdog 计时器(WDT)设备。 - 所有节点都可以访问三个共享块设备(通常为 1-4mb )。
- 共享设备不得包含文件系统或者由 LVM 管理。
流程
在集群的所有节点上安装 SBD 和隔离代理软件包:
# dnf install sbd fence-agents-sbd在每个节点上,通过触发测试来验证 watchdog 设备是否正常工作:
警告此命令会重启系统,以确认 watchdog 可以成功触发硬件重置。仅在启用 SBD 守护进程前执行此测试,该命令在守护进程控制 watchdog 设备后无法正常工作。
# pcs stonith sbd watchdog test初始化共享 SBD 块设备。使用共享设备的路径替换
/dev/sdb:注意如果您使用多个共享块设备来实现冗余,请对每个设备重复
device=参数(例如:device=/dev/sdb device=/dev/sdc)。# pcs stonith sbd device setup device=/dev/sdb使用共享设备启用 SBD:
# pcs stonith sbd enable device=/dev/sdb sbd_watchdog_timeout=5在集群中创建隔离设备。这个示例使用
fence_sbd_storage作为资源名称:# pcs stonith create fence_sbd_storage fence_sbd devices=/dev/sdb调整
pcmk_reboot_timeout,以确保集群等待的时间足够长,以便处理磁盘消息。这个值应至少 5 秒高于磁盘上的msgwait值:# pcs stonith update sbd_fence pcmk_reboot_timeout=15
验证
验证服务是否已启用并运行,节点是否在 SBD 设备上正确注册,并检查它们的插槽状态:
# pcs sbd status --full检查
stonith-watchdog-timeout集群属性:# pcs property show stonith-watchdog-timeout对于标准 poison-pill 部署,这个值应为
0 (禁用),以防止集群在确认 poison-pill 消息前预防节点自助保护。在此属性为非零的高级设置中,请确保用于 poison-pill 隔离的所有目标都从仅 watchdog 的隔离中明确排除,以避免脑裂风险。手动触发隔离测试以确保配置正常工作:
警告此命令立即重启目标节点。
# pcs stonith fence node_name