高可用的腦裂現象
阿新 • • 發佈:2020-09-11
由於某些原因,導致兩臺keepalived高可用伺服器在指定時間內,無法檢測到對方的心跳,各自取得資源及服務的所有權,而此時的兩臺高可用伺服器又都還活著。
1.伺服器網線鬆動等網路故障
2.伺服器硬體故障發生損壞現象而崩潰
3.主備都開啟firewalld防火牆
[root@lb01 ~]# systemctl start firewalld
[root@lb02 ~]# systemctl start firewalld
[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
#拒絕訪問,需要配置防火牆規則
[root@lb01 ~]# firewall-cmd --add-service=http
success
[root@lb02 ~]# firewall-cmd --add-service=https
success
#訪問頁面正常
#如果發生腦裂,則隨機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 #大於等於