keepAlived常見問題


1、腦裂問題

1、定義:

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

 

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

2、原因:

原因是主備機器之間通信斷開,例:

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

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

image

3、解決辦法:

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

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

1、問題描述:

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

2、問題解決:

在同組的keepalived 服務器所有的配置文件里指定獨一無二的多播地址,配置如下:

global_defs{

router_id LVS_19

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

}

不同實例的通信認證密碼最好不同,以確保接管正常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM