keepalived脑裂现象

keepalived脑裂现象_第1张图片

 

Keepealived最常见的问题是会出现脑裂现象:

Master一直发送心跳消息给backup主机,如果中间的链路突然断掉,backup主机将无法收到master主机发送过来的心跳消息(也就是vrrp报文),backup这时候会立即抢占master的工作,但其实这时候的master是正常工作的,此时就会出现脑裂的现象。

预防:1.使用shell脚本对这两个主机之间的连通性进行监测,如果发现有问题,就会立即关闭keepalived服务来防止脑裂的产生。

2.增加一条链路作为备用链路,即使主链路挂掉了,备用链路也会顶上来,master主机可以继续给backup主机发送心跳消息。

3.3.使用监控软件的方法,这边主要是采用的zabbix来监控的,主要就是创建监控项,创建触发器来测试关闭keepalived服务。

排查思路:

出现脑裂立即解决方法,自动停掉主活备服务器

主和备都有vip地址中间链路断掉,先停掉主服务器或备服务器,申请操作窗口恢复,添加shell脚本检测联通性,ping后ssh 备服务器看是否ping通主,有问题立刻关闭主或备服务器的keepalived服务。预防方法可增加一台一条链路可以解决,使用监控软件。

抓包确定是否是网卡坏了tcpdump 服务器坏了

网卡没有抓到包,交换机vr下个抓包看主服务器是否有包,下一不出入网口,网线测线仪,交换机没收到包,

keepalived nginx做的负载均衡高可用需要 多一个监控nginx的进程状态,一下是三种监控方法,

法一

netstat -lntp | grep nginx

法二

ps -ef | grep nginx | grep -cv "grep"

ps -ef | grep nginx | egrep -cv "grep|$$"

#$$代表脚本自身的进程id

法三

killall -0 nginx

keepalived脑裂现象_第2张图片

如果检测没有nginx进程主服务器关闭keepalived,切换为备。

解决脚本:

if ! killall -0 nginx &> /dev/null;then

systemctl stop keepalived

fi

chmod +x nginx.sh

修改配置文件

vim /etc/keepalived/keepalived.conf

keepalived脑裂现象_第3张图片

 

 

你可能感兴趣的:(网络)