【脑裂】问题收集

脑裂即为当前节点收不到对方心跳信息(心跳线断裂),误以为对方服务器已经宕机情况,解决脑裂的办法:
1: 多条心跳线做冗余
2: 使用仲裁判机制
3: 使用投票系统,适用于多借点
4.启用磁盘锁 智能锁。即:正在服务的一方只在发现心跳线全部断开(察觉不到对端)时才启用磁盘锁。平时就不上锁了


裂脑的发生,有以下几种原因:

高可用服务器对之间心跳线链路发生故障,导致无法正常通信。

因心跳线坏了(包括断了,老化)。
因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)。
因心跳线间连接的设备故障(网卡及交换机)。
因仲裁的机器出问题(采用仲裁的方案)。

    😶

高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输。

高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败。

其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等。

提示: Keepalived配置里同一 VRRP实例如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。


脑裂监控脚本

vim check_keepalived.sh
#!/bin/bash

while true
do
if [ `ip a show eth0 |grep 10.0.0.3|wc -l` -ne 0 ]
then
echo "keepalived is error!"
else
echo "keepalived is OK !"
fi
done


编写完脚本后要给脚本赋予执行权限

 

编写执行脚本

#!/bin/bash

while true
do
if [ `ps -ef |grep nginx |grep -v grep |wc -l` -lt 2 ]
then
/etc/init.d/keepalived stop
exit
fi
done

chmod +x check_www.sh

posted @ 2018-11-17 18:41  夜辰雪扬  阅读(154)  评论(0编辑  收藏  举报