如何預(yù)防keepalived腦裂問題,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、枝江網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為枝江等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
(1)可以采用第三方仲裁的方法。由于keepalived體系中主備兩臺(tái)機(jī)器所處的狀態(tài)與對(duì)方有關(guān)。如果主備機(jī)器之間的通信出了網(wǎng)題,就會(huì)發(fā)生腦裂,此時(shí)keepalived體系中會(huì)出現(xiàn)雙主的情況,產(chǎn)生資源競爭。
(2)一般可以引入仲裁來解決這個(gè)問題,即每個(gè)節(jié)點(diǎn)必須判斷自身的狀態(tài)。最簡單的一種操作方法是,在主備的keepalived的配置文件中增加check配置,服務(wù)器周期性地ping一下網(wǎng)關(guān),如果ping不通則認(rèn)為自身有問題 。
(3)最容易的是借助keepalived提供的vrrp_script及track_script實(shí)現(xiàn)。如下所示:
#vim /etc/keepalived/keepalived.conf
......
vrrp_script check_local {
script "/root/check_gateway.sh"
interval 5
}
......
track_script {
check_local
}
腳本內(nèi)容:
# 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 就是我們的仲裁邏輯,發(fā)現(xiàn)ping不通網(wǎng)關(guān),則關(guān)閉keepalived。
(4)檢測思路:正常情況下keepalived的VIP地址是在主節(jié)點(diǎn)上的,如果在從節(jié)點(diǎn)發(fā)現(xiàn)了VIP,就設(shè)置報(bào)警信息。腳本(在從節(jié)點(diǎn)上)如下:
vim split-brainc_check.sh
#!/bin/bash
# 檢查腦裂的腳本,在備節(jié)點(diǎn)上進(jìn)行部署
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
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。