您的位置:首页 > 教育 > 锐评 > 定制网页设计公司_外贸品牌网站设计公司_百度投诉中心人工电话号码_专业网站制作

定制网页设计公司_外贸品牌网站设计公司_百度投诉中心人工电话号码_专业网站制作

2025/5/13 7:56:49 来源:https://blog.csdn.net/qq_25096749/article/details/143265057  浏览:    关键词:定制网页设计公司_外贸品牌网站设计公司_百度投诉中心人工电话号码_专业网站制作
定制网页设计公司_外贸品牌网站设计公司_百度投诉中心人工电话号码_专业网站制作

脑裂:master节点和slave节点都去争抢vip,在master和slave上执行ip addr 都能看到vip
在这里插入图片描述

vrrp协议:即心跳广播,当master活着的时候会不断向slave发送vrrp协议,slave就不会去争抢vip,当slave收不到vrrp协议的时候就认为master挂了,会主动把vip地址接过来并继续为用户提供服务。

脑裂原因:
1、iptables阻止了master发送的vrrp协议广播,导致slave收不到master的心跳信息。
2、物理心跳线老化、断了。
3、高可用服务器心跳网卡地址等信息配置错误,导致发送心跳广播失败。
4、其他服务配置不当的原因,如心跳方式不同,心跳广播冲突,软件bug等
5、配置文件中virtual_router_id两端参数配置不一致,也会导致脑裂问题。

解决方案:
1、关闭iptables或配置iptables允许vrrp协议
2、检查心跳线是否老化不通
3、检查virtual_router_id等其他配置是否有问题。
4、重启keeplived服务,并观察/var/log/messages
5、通过tcpdump抓包观察:tcpdump -i eth0:1 vrrp -n
6、https://www.jianshu.com/p/35941504a2e8
7、再加一条心跳线网线,并配增加主机备机的网卡能相互ping通就行(不要和vip在同一网段)

下面是生产场景中检测裂脑故障的一些思路:

(1)简单判断的思想:只要备节点出现VIP就报警,这个报警可以有两种情况,一是主机宕机了备机接管了;二是主机没宕,裂脑了,不管哪种情况,都进行报警,然后由人工查看判断及解决。把主节点恢复并继续监控从节点。

把脚本放在备机的crontab中,并配合zabbix进行监控# cat check_keepalive.sh 
#!/bin/bashVIP=192.168.22.12
#LB01_IP=192.168.22.128
#LB02_IP=192.168.22.130while true
do# 如果能ping通本机的vip并且本机的vip确实存在,说明vip已经漂移到备机上,这时就可以结合zabbix报警了ping -c 2 -w 3 $VIP &> /dev/nullif [[ $? -eq 0 && `ip add |grep "$VIP"|wc -l` -eq 1 ]]thenecho "have is brain"elseecho "is ok"fisleep 1
done

(2)比较严谨的判断:备节点出现对应的VIP,并且主节点的keepalive服务还活着,就说明发生裂脑了。

把脚本放在备机的crontab中,并配合zabbix进行监控
主备机要ssh-key打通
# cat check_keepalive2.sh 
#!/bin/bashVIP=192.168.22.12
#LB01_IP=192.168.22.128
#LB02_IP=192.168.22.130while true
do# 判断备节点的vip存在,并且主节点的keepalive服务正常运行,说明出现脑裂if [[ `ip add |grep "$VIP"|wc -l` -eq 1  && `ssh root@192.168.22.128 '/bin/ps -ef |grep "keepalive" | grep -v "grep" | wc -l'` -ne 0 ]]thenecho "have is brain"elseecho "is ok"fisleep 1
done

(3) 当主机宕机后keepalive会进行故障切换,如果是web挂了比如nginx,keepalive是无法切换的,所以还需要写一个监控nginx的脚本,当主节点的nginx挂掉后,就把keepalive关掉,同时进行报警

cat /server/scripts/check_nginx_by_keep.sh
#!/bin/sh
while true
doif [[ `netstat -lntup|grep nginx|grep -v "grep" |wc -l` -eq 0 ]];then/etc/init.d/keepalived stopfisleep 5
done

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com