脑裂是怎么发生的
双机之间靠心跳或数据通道交换状态,一旦这条链路中断,两台设备互相看不到对方,都认为对面已经故障,于是同时进入主用状态。结果是同一组地址被两台同时占用、会话表各说各话,业务表现为大量丢包、连接重置与地址冲突。处置的第一条原则是先把一台隔离出来,而不是急着排查原因。
基本信息
| 典型诱因 | 心跳或数据通道中断、链路质量差、单台重启 |
|---|---|
| 典型现象 | 双主告警、地址冲突、业务大面积丢包或重置 |
| 首要动作 | 先隔离一台,断业务口或下电,避免两台抢角色 |
| 后续动作 | 查明中断原因,恢复通道与同步后再放回 |
| 恢复条件 | 确认同步正常、角色符合规划后才接回业务 |
| 记录要求 | 时间线、处置动作与结论全部留痕 |
典型使用场景
- 收到双主告警或地址冲突告警时的应急处置
- 排查业务大面积丢包并怀疑双机状态异常
- 心跳链路改造后的风险预防
- 演练中模拟脑裂场景,验证处置流程可执行
- 双主事件复盘的原因分析与改进项跟踪
处置流程
处置流程
1. 确认现象:双主告警、地址冲突或业务异常 # 判定
2. 隔离一台设备,先断其业务口或下电 # 止血
3. 保留现场证据:日志、状态与操作时间点 # 取证
4. 查明通道中断原因,恢复通道与同步 # 根因
5. 确认角色与同步正常后把设备放回 # 恢复
6. 记录全过程并更新应急预案 # 闭环止血动作的选择
| 动作 | 优点 | 代价 |
|---|---|---|
| 断开一台业务口 | 立刻消除冲突 | 该台暂时不承载业务 |
| 直接下电 | 最彻底 | 重启更久,需确认业务已切换 |
| 两台都保持在线 | 不中断 | 冲突持续,业务一直异常 |
脑裂时最忌讳两台同时在线抢角色:先把一台隔离、业务由另一台承担,再从容排查原因。
心跳与数据通道若走同一物理路径或经过不可靠中转,链路抖动时会同时失效,脑裂风险显著上升。