keepalived是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換(Failover)和健康檢查(Health Checking)功能——判斷LVS負載調度器、節點服務器的可用性,及時隔離並替換爲新的服務器,當故障主機修復後將其重新加入羣集。
Keepalived採用VRRP(Virtual Router Redundancy Protocl,虛擬路由冗餘協議)熱備份協議,以軟件的方式實現Linux服務器的多機熱備功能。VRRP是針對路由器的一種備份解決方案——由多臺路由器組成一個熱備組,通過共用的虛擬IP地址對外提供服務;每個熱備組內同一時刻只有一臺主路由器提供服務,其他路由器處於冗餘狀態。若當前在線的路由器失效,則其他路由器會自動接替(優先級決定接替順序)虛擬IP地址,以繼續提供服務。如圖,
熱備組內的每臺路由器都可能稱爲主路由器,虛擬路由器的IP地址(VIP)可以在熱備組內的路由器之間進行轉移,所以也稱爲漂移IP地址。使用keepalived時,漂移地址的實現不需要手動建立虛接口配置文件。而是由keepalived根據配置文件自動管理。
LVS+Keepalived高可用羣集
keepalived的設計目標是構建高可用的LVS負載均衡羣集,可以調用ipvsadm工具來創建虛擬服務器,管理服務器池,而不僅僅用作雙機熱備。使用keepalived羣集更加簡單易用,主要優勢體現在:對LVS負載調度器實現熱備切換,提高可用性;對服務器池中的節點進行健康檢查,自動移除失效節點,恢復後再重新加入。
使用keepalived構建LVS羣集時,也需要用到ipvsadm管理工具,但大部分工作會由keepalived自動完成,不需要手動執行ipvsadm(除了查看和監控羣集以外)。
keepalived服務的配置目錄位於/etc/keepalived/。其中keepalived.conf是主配置文件;另外包括一個子目錄 sample/,提供了許多配置樣例作爲參考。在kkepalived的配置文件中,使用“global_defs {...}”區段指定全局參數,使用“vrrp_instance 實例名稱 {...} ”區段指定VRRP熱備參數,註釋文字以“!”符號開頭。
本案例我們以DR模式的LVS羣集爲基礎,構建LVS+keepalived高可用羣集
案例拓撲圖:
兩臺調度器,兩臺web服務器,一臺NFS共享服務器,一臺客戶機做測試。
一、配置主調度器
1.安裝ipvsadm軟件包和支持軟件
2.安裝keepalived軟件包
3.調整/proc響應參數
vim /etc/sysctl.conf
執行sysctl -p 立即生效
4.修改keepalived.conf文件,指定主調度器熱備信息、服務器池等相關設置
5.配置完成後,重啓keepalived服務
二、配置從服務器
1.安裝ipvsadm、keepalived軟件包(同主服務器)
2.調整/proc響應參數(同主服務器)
3.修改keepalived.conf文件,指定主調度器熱備信息、服務器池等相關設置
與主服務器的不同之處在於:router_id(路由器名稱)、state(熱備狀態)、priority(優先級,數值越大則取得VIP控制權的優先級越高)
4.配置完成後,重啓keepalived服務
三、配置NFS共享服務器
1.安裝支持軟件
2.設置共享目錄
3.啓動NFS服務
4.查看本機發布的NFS共享目錄
5.設置防火牆規則
四、配置wed節點服務器
1.配置虛擬IP地址(IP)
添加VIP本地訪問路由
2.調整/proc響應參數
vim /etc/sysctl.conf
執行sysctl -p ,立即生效
3.連接NFS共享服務器(實驗時可跳過)
4.爲了測試效果明顯,給兩個web服務器搭建不同的網頁
網站內容自定義
然後,開啓服務
5.設置防火牆規則
五、客戶機進行測試
在客戶機的瀏覽器中,能夠通過LVS+keepalived羣集的VIP地址(172.16.16.172)正常訪問web頁面內容,當主、從調度器任何一個失效時,web站點仍然可以訪問;只要服務器池有兩臺及以上的真實服務器可用,就可以實現訪問量的負載均衡。