keepalived脑裂现象

文章介绍了Keepalived在主备切换中可能出现的脑裂现象,提出了通过shell脚本监控、增加备用链路和使用zabbix监控等预防措施。同时,提供了通过netstat、ps命令或killall检查nginx进程状态来确保负载均衡的高可用性,并给出了解决脚本和配置文件修改建议。
摘要由CSDN通过智能技术生成

 

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

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

解决脚本:

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

systemctl stop keepalived

fi

chmod +x nginx.sh

修改配置文件

vim /etc/keepalived/keepalived.conf

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值