如何預防keepalived腦裂問題,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
(1)可以采用第三方仲裁的方法。由于keepalived體系中主備兩臺機器所處的狀態與對方有關。如果主備機器之間的通信出了網題,就會發生腦裂,此時keepalived體系中會出現雙主的情況,產生資源競爭。
(2)一般可以引入仲裁來解決這個問題,即每個節點必須判斷自身的狀態。最簡單的一種操作方法是,在主備的keepalived的配置文件中增加check配置,服務器周期性地ping一下網關,如果ping不通則認為自身有問題 。
(3)最容易的是借助keepalived提供的vrrp_script及track_script實現。如下所示:
#vim /etc/keepalived/keepalived.conf
......
vrrp_script check_local {
script "/root/check_gateway.sh"
interval 5
}
......
track_script {
check_local
}
腳本內容:
# cat /root/check_gateway.sh
#!/bin/sh
VIP=$1
GATEWAY=192.168.1.1
/sbin/arping -I em1 -c 5 -s $VIP $GATEWAY &>/dev/null
check_gateway.sh 就是我們的仲裁邏輯,發現ping不通網關,則關閉keepalived。
(4)檢測思路:正常情況下keepalived的VIP地址是在主節點上的,如果在從節點發現了VIP,就設置報警信息。腳本(在從節點上)如下:
vim split-brainc_check.sh
#!/bin/bash
# 檢查腦裂的腳本,在備節點上進行部署
LB01_VIP=192.168.1.229
LB01_IP=192.168.1.129
LB02_IP=192.168.1.130
while true
do
ping -c 2 -W 3 $LB01_VIP &>/dev/null
if [ $? -eq 0 -a `ip add|grep "$LB01_VIP"|wc -l` -eq 1 ];then
echo "ha is brain."
else
echo "ha is ok"
fi
sleep 5
done
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。