高可用的脑裂现象


 

由于某些原因,导致两台keepalived高可用服务器在指定时间内,无法检测到对方的心跳,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还活着。

 

 

1.脑裂的原因

1.服务器网线松动等网络故障 2.服务器硬件故障发生损坏现象而崩溃 3.主备都开启firewalld防火墙

2.故障演示

1)开启防火墙

[root@lb01 ~]# systemctl start firewalld [root@lb02 ~]# systemctl start firewalld

2)查看两个节点

[root@lb01 ~]# ip addr | grep 10.0.0.3 inet 10.0.0.3/32 scope global eth0 [root@lb02 ~]# ip addr | grep 10.0.0.3 inet 10.0.0.3/32 scope global eth0

3)访问项目页面

#拒绝访问,需要配置防火墙规则 [root@lb01 ~]# firewall-cmd --add-service=http success [root@lb02 ~]# firewall-cmd --add-service=https success #访问页面正常

3.解决脑裂的办法

#如果发生脑裂,则随机kill掉一台即可 #在备节点上编写检测脚本, 测试如果能ping通主,并且备节点还有VIP的话则认为产生了脑裂 [root@lb02 ~]# vim /scripts/check_split_brain.sh #!/bin/sh vip=10.0.0.3 lb01_ip=10.0.0.4 lb02_vip=$(ip add|grep "$vip"|wc -l) while true;do ssh $lb01_ip "ip add|grep $vip" &>/dev/null
    if [ $? -eq 0 -a $lb02_vip -eq 1 ];then echo "ha is split brain.warning."
    else echo "ha is ok" fi sleep 5 done -eq #等于 -ne #不等于 -lt #小于 -gt #大于 -le #小于等于 -ge        #大于等于

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM