什麼是Keepalived呢,keepalived觀其名可知,保持存活,在網路裡面就是保持線上了,也就是所謂的高可用或熱備,用來防止單點故障(單點故障是指一旦某一點出現故障就會導致整個系統架構的不可用)的發生,那說到keepalived時不得不說的一個協議就是VRRP協議,可以說這個協議就是keepalived實現的基礎,那麼首先我們來看看VRRP協議
一,keepalived的原理
1,VRRP協議
學過網路的朋友都知道,網路在設計的時候必須考慮到冗餘容災,包括線路冗餘,裝置冗餘等,防止網路存在單點故障,那在路由器或三層交換器處實現冗餘就顯得尤為重要,在網路裡面有個協議就是來做這事的,這個協議就是VRRP協議,Keepalived就是巧用VRRP協議來實現高可用性(HA)的
2,keepalived也是模組化設計,不同模組複雜不同的功能,下面是keepalived的組件
core check vrrp libipfwc libipvs-2.4 libipvs-2.6
core:是keepalived的核心,複雜主進程的啟動和維護,全域設定檔的載入解析等
check:負責healthchecker(健全狀態檢查),包括了各種健全狀態檢查方式,以及對應的配置的解析包括LVS的配置解析
vrrp:VRRPD子進程,VRRPD子進程就是來實現VRRP協議的
libipfwc:iptables(ipchains)庫,配置LVS會用到
libipvs*:配置LVS會用到
注意,keepalived和LVS完全是兩碼事,只不過他們各負其責相互配合而已
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/zs/
keepalived啟動後會有三個進程
父進程:記憶體管理,子進程管理等等
子進程:VRRP子進程
子進程:healthchecker子進程
有圖可知,兩個子進程都被系統WatchDog看管,兩個子進程各自複雜自己的事,healthchecker子進程複雜檢查各自伺服器的健康程度,例如HTTP,LVS等等,如果healthchecker子進程檢查到MASTER上服務不可用了,就會通知本機上的兄弟VRRP子進程,讓他刪除通告,並且去掉虛擬IP,轉換為BACKUP狀態
二,keepalived安裝
[root@test1 ~]# wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz[root@test1 ~]# tar zxvf keepalived-1.2.1.tar.gz[root@test1 ~]# cd keepalived-1.2.1[root@test1 keepalived-1.2.1]# ./configure --prefix=/usr/local/keepalived[root@test1 keepalived-1.2.1]# make && make install安裝排錯:1,configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not include OpenSSL headers files. !!!解決方案: [root@test1 keepalived-1.2.1]# yum install -y openssl-devel2,Use IPVS Framework : NoIPVS sync daemon support : No這裡不是必須的,但是還是建議大家安裝上[root@test1 keepalived-1.2.1]# cd /usr/src/kernels/[root@test1 kernels]# yum install -y kernel-devel ipvsadm[root@test1 ~]# ln -s /usr/src/kernels/2.6.18-194.el5-x86_64/ /usr/src/linux