脑裂
由于某些问题,导致两台高可用服务器在指定时间内无法检测到对方的心跳消息,导致各自都取得资源和服务的拥有权,这样回导致同一个IP地址或服务同时存在,引发的冲突问题。并且可能两台机器使用同一个VIP地址,用户写入数据可能会分别写入两台机器,导致服务器两端数据不一致,造成数据混乱,这种情况就是脑裂问题。
导致脑裂的原因
一般来说,导致脑裂的原因有如下,也是排错的思路
- 高可用服务器之间的心跳线路故障,无法通信
- 心跳线坏了、断裂、老化(心跳线指的是服务器之间使用网线连接)
- 网卡或驱动损坏,IP配置冲突
- 防火墙阻挡了心跳消息传输
- 配置文件写错,虚拟路由ID不一致
解决脑裂方案
- 使用双心跳线路,防止单线路损坏,另一个还是好的,同时使用串行电缆和以外网电缆
- 当检测到脑裂情况时,强行关闭一个心跳节点(需要额外设备支持,如Stonith),备节点收不到心跳消息的时候,通过单独的线路发送关机命令,强制关闭主节点电源。
- 做好脑裂监控报警,如手机短信,邮件,微信等,在发生脑裂问题时,人为第一时间介入仲裁,降低损失。
- 注意如果开启了防火墙,一定要允许心跳消息通过,允许IP段访问。
- 使用专业级监控软件,Nagios等进行脑裂检测。