双机热备搭不起来?
双机热备搭失败的常见原因:心跳网卡没独立、资源脚本缺退出码、两端时间漂移、共享存储没挂载,给逐段核对清单。
简短答案
双机热备搭不好通常坏在固定几处:心跳网络没独立(和业务共用)、资源脚本退出码不规范(热备软件误判资源挂)、两端系统时间不同步(切换判错)、共享存储只在单端挂载。逐段核对,别先怀疑热备软件本身。
现象对照表
| 现象 | 对应段 |
|---|---|
| 两端互相判对方挂 | 心跳链路不可靠或时间漂移 |
| 切换后资源没起来 | 资源脚本退出码错或权限缺 |
| 只有单端能读写共享盘 | 共享存储没双端挂载 |
| 脑裂双活 | 心跳与业务流量混在同一链路 |
排查步骤
# 心跳链路独立性与连通性
ping -I 心跳网卡 对端心跳IP
# 两端时间必须一致(偏差大就切换判错)
date
timedatectl status
# 先把时间同步修好再调热备
# 资源脚本退出码
bash -x 资源脚本 2>&1 | tail -20 # 必须显式 exit 0/1
处理办法
- 心跳与业务分离:心跳走独立网段,避免脑裂;
- 时间同步:先修 NTP/chrony,再配热备参数;基线对照 服务器 x86_64,ARM 对照 服务器 ARM 条目;
- 资源脚本:显式退出码,异常路径返回 1;
- 共享存储:双端都配好挂载再启用切换;
- 兜底恢复介质:参考 麒麟快捷入口 条目取 ISO,U 盘制作参考 Rufus 启动盘条目。
操作小结
- 先独立心跳、再修时间、最后调参数;
- 资源脚本退出码必须显式;
- 共享存储双端挂载后再启用切换;
- 联调先做切换演练,留好回退路径。