天天看點

關于keepalive的的程序說明

首先說一下keepalived:
Keepalived 大緻分兩層結構:使用者空間 user space和核心空間 kernel space
在
這個結構圖裡,處于下端的是核心空間,它包括ipvs和NETLINK兩個部分。Ipvs的作用在前面的章節已經做過描述,不再重複叙述;netlink
提供進階路由及其他相關的網絡功能,如果我們在負載均衡器上啟用netfilter/iptable,将會直接影響它的性能。出于圖形上方的元件為使用者空
間,由它來實作具體的功能,下面選取幾個重要的來做說明:
1、  WatchDog 負責監控checkers和VRRP程序的狀況。
2、  Checkers 負責真實伺服器的健康檢查healthchecking,是keepalived最主要的功能。換句話說—可以沒有VRRP Stack,但健康檢查healthchecking是一定要有的。
3、  VRRP Stack負責負載均衡器之間的失敗切換FailOver.如果隻用一個負載均衡器,則VRRP不是必須的。
4、  IPVS wrapper 用來發送設定的規則到核心ipvs代碼。
5、 Netlink Reflector 用來設定 vrrp 的vip位址等。
說一下我的問題:
今天在檢查運維新安裝的keepalive機器的時候發現有有一組keepalived機器 keepalived的程序是2個。
正常情況下是三個
這三個程序是:
父程序:記憶體管理,監控子程序。
VRRP子程序
healthcheck 子程序
而下面這個出問題的機器上隻有
父程序:記憶體管理,監控子程序。
VRRP子程序
[root@modoor log]# ps -e |grep keepalived 
18212 ?        00:00:00 keepalived
18213 ?        00:00:00 keepalived
[root@modoor log]# 
開始懷疑是版本的問題,于是在測試服新安裝了一個,
發現版本一樣測試服是三個程序而正式服還是二個程序。
繼續看配置檔案也沒發現異常,那問題可能出現在安裝方式上,
于是問了一下這個keepalived的安裝過程,果然有發現
有2個keepalived程序的機器上keepalived的安裝方式沒有指定核心,
而本地的測試服有3個keepalived程序的指定了核心。對!問題就出現在這。有2個程序的keepalived的一組伺服器能正常切換,唯一和3個內建keepalived不一樣的就是VIP 切換的時間,如果有healthcheck 檢測程序的話,VIP 切換基本隻會丢一個包,而沒有healthcheck的話VIP切換過程中ping VIP的話至少丢5個以上的包。
最後問題終于解決。      

繼續閱讀