两节点 Pacemaker 存活检测与接管流程
Corosync 判失联 → 算票 → 先围栏(STONITH) → 再接管资源
两节点 Pacemaker 存活检测与接管流程
Corosync 判失联 → 算票 → 先围栏(STONITH) → 再接管资源
正常/接管
判定
危险/失败
是/继续
否/异常
集群正常运行:A、B 互发心跳
Corosync + knet 监听令牌
每秒心跳 / 多链路冗余
B 持续回应
心跳令牌?
是(回应)
保持监听,无动作
否(没回应)
Corosync 重传令牌
默认约 10 次(≈10s)
重传耗尽
仍无回应?
否(又回应了)
虚惊一场,回到监听
是
Corosync 判定:B 退出成员
membership change
votequorum 重算法定票
expected_votes=2 / two_node=1
能否唯一确认
只有 A 有法定票?
脑裂风险 / 围栏竞速
两边都自认有票
双节点强烈建议
加 qdevice
否(互失联)
是(qdevice 决胜)
Pacemaker 命令:先 STONITH
pacemaker-fenced → fence agent
围栏成功?
B 已物理断电/重启
围栏失败
集群停摆/告警
需人工介入
否
是
A 启动 B 的资源
VIP → 文件系统 → 应用
业务恢复:故障切换完成
后续:B 修复、心跳恢复 → 重新加入集群
资源可保持原位,或按策略迁回