keepAlived常見問題

一、腦裂問題

一、定義:vim

在一個高可用(HA)系統中,當關聯着的兩個結點互相之間斷開通訊時,原本爲一個獨立的對外提供服務的系統分裂爲兩個獨立的結點,這時兩個結點會爭搶資源。(keepAlived 中表現爲兩個結點同時擁有VIP)服務器

 

keepalived 分爲主備兩臺機器,但對外只提供一個VIP訪問,只有主機down 機VIP 纔會漂移到備機提供服務。腦裂會致使主備兩臺機器同時擁有VIP出現爭搶問題。tcp

二、緣由:spa

緣由是主備機器之間通訊斷開,例:rest

若是啓用了iptables,不設置"系統接收VRRP協議"的規則,就會出現腦裂,備機keepAlived程序接收不到主機的廣播信息,表現爲備機上存在VIP。router

可是命令抓包時(tcpdump -i eth0|grep VRRP )卻能抓取到主機發過來的VRRP廣播,說明數據入站時 tcpdump 能夠在iptables攔截以前抓到數據包以後被iptables攔截,因此keepAlived程序收不到該數據包。blog

image

三、解決辦法:ip

1)爲iptables 添加規則限制:內存

vim /etc/sysconfig/iptables資源

添加:-A INPUT -s 192.168.244/24 -d 224.0.0.18 -p vrrp -j ACCEPT

2)重啓iptables : service iptables restart

3)備機上VIP 消失,問題解決:

image

二、一個局域網中多組(keepAlived對) 衝突問題

一、問題描述:

當在同一個局域網部署了多級keepalived服器對時,而又未使用專門的心跳線通訊時,可能會發生高可用接管的嚴重故障問題。keepalived 高可用功能是經過VRRP 協議實現的,VRRP 協議默認經過IP 多播的形式實現高可用對之間的通訊,若是同一個局域網內存在多組keepalived服務器對,就會形成IP多播地址衝突問題,致使接管錯亂,不一樣組的keepalived 都會使用默認的224.0.0.18 做爲多播地址。

二、問題解決:

在同組的keepalived 服務器全部的配置文件裏指定獨一無二的多播地址,配置以下:

global_defs{

router_id LVS_19

vrrp_mcast_group4 224.0.0.19 #這個就是指定多播地址的配置

}

不一樣實例的通訊認證密碼最好不一樣,以確保接管正常

相關文章
相關標籤/搜索