我正在使用 Pacemaker 和 Stonith 实现 2 节点集群(此处称为节点 A 和 B)的高可用性。两个节点都有一个 IPMI 作为隔离设备。
交易内容是:
- A 当前正在运行资源
- B处于被动模式
然后我切断了 A 节点的电源。这样 A 上的每个 eth 接口和 IPMI 都不可用。技巧来了:B 尝试关闭 A,但没有成功,因为 A 的 IPMI 无法访问。尝试 N 次后,B 放弃并将自身置于“阻塞”状态(日志文件中称为 IDLE)。
我的问题是:即使 Stonith A 出现故障,我该如何强制 B 恢复资源?
我了解其后果(并发写入等...),但与完全不可用的服务相比,我更喜欢这些。
答案1
您已经遇到了描述的问题:
B 尝试关闭 A,但没有成功,因为 A 的 IPMI 无法访问。
除非 B 能够成功完成隔离操作,否则它将挂起以避免出现裂脑情况。您可以通过配置辅助隔离机制来缓解这种情况。