keepalived出现no root host报错的问题跟踪和处理

问题发现

在OpenStack环境中,我们使用Keepalived+Haproxy的模式来提供负债均衡和高可用。后方运维报过来一个VIP被不时remove的问题,从日志上来看是由于vrrp_script执行脚本超时,而后主keepalived让出了VIP。下图是日志
报错日志
起初判断认为是由于vrrp_script的脚本执行时间过长,而导致执行失败,而触发了脚本,这个看法本身没错,但是我们当时认为解决办法应该是缩短脚本执行时间,这个思路看起来是对的,实际是只看到了表面。

#!/bin/bash
count=`netstat -nlp|grep -i haproxy|wc -l`
if [ $count -gt 1 ];then
exit 0
else
systemctl stop keepalived
exit 1
fi

在说脚本之前,需要说一一下vrrp_script的逻辑,当脚本返回0,则认为正常,当脚本结果返回非0,则任务脚本执行失败。
该脚本通过netstat命令获取目前haproxy的监听状态数量,该值不大于1的时候,而对keepalived进行stop,最终完成VIP的切换。
当时对优化脚本而提出的解决方案是用systemctl is-active haproxy的命令返回值而进行判断haproxy的状态,我们判断认为使用该命令受影响干扰少,且迅速。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值