在 VPS 这种虚拟化环境下,很难接触到真实的物理硬件看门狗(Hardware Watchdog)。但别担心,Linux 内核提供了一个完美的“分身”:softdog(软件看门狗)。

虽然它的可靠性略逊于物理硬件(如果内核彻底挂死,软件看门狗也可能失效),但在 99% 的 PVE 集群场景下,它足以满足 HA 隔离(Fencing)的需求。

以下是在 VPS 上启用 softdog 替代方案的步骤:

1. 加载 softdog 内核模块

你需要告诉系统启动这个软件模拟器。在 VPS 的 Shell 中执行:

Bash

modprobe softdog

执行完后,检查一下是否成功生成了设备文件:

Bash

ls -l /dev/watchdog

如果看到类似 crw------- 1 root root 10, 130 ... /dev/watchdog 的输出,说明“替身”已经上岗了。

2. 设置开机自动加载

为了保证 VPS 重启后看门狗依然有效,需要将其写入系统配置:

Bash

echo "softdog" >> /etc/modules

3. 在 PVE 中验证 HA 状态

PVE 的 HA 管理器(pve-ha-lrm)非常聪明,它启动时会自动探测 /dev/watchdog。只要这个文件存在,它就会自动关联。

你可以通过以下命令查看 HA 状态,确认隔离机制是否就绪:

Bash

ha-manager status

在输出中,如果你看到节点状态是 active,且没有关于 watchdog 缺失的警告,那就说明配置成功了。


⚠️ 针对“高延迟节点”的一个重要提醒

如果异构节点延迟较高,且你只打算统一管理而不做 HA 迁移。这种情况下,softdog 的主要作用不再是“为了迁移业务”,而是 “自残保护”:

  • 隔离逻辑: 如果这台远程 VPS 因为网络剧烈抖动丢掉了集群票数(Quorum),为了防止它在“失联”期间产生脏数据,softdog 会触发一个硬重启(Hard Reboot)。
  • 避坑指南: 如果你觉得 VPS 频繁因为网络波动而自动重启太烦人,记得一定要把我们之前提到的 token 超时时间(在 corosync.conf 中)放宽到 5000ms 甚至更高。这能给高延迟节点更多的“喘息机会”,防止它因为一点网络风暴就动不动给自己一板砖(重启)。

💡 现在的架构总结

  1. 3 节点集群: 物理选票稳定。
  2. 高延迟隔离: 通过 HA Groups 限制业务只在本地跑。
  3. 异地备份: NFS 持续保护数据。
  4. 软看门狗: 补齐了 VPS 的底层监控短板。