Keepalived高可用集群
一、Keepalived介紹
Keepalived軟件主要通過VRRP協議實現高可用功能的。VRRP是Virtual Router Redundancy Protocol(虛擬路由器冗余協議)的縮寫,VRRP出現的目的就是為了解決靜態路由單點故障問題,它能夠保證當個別節點宕機時,整個網絡可以不間斷地運行。keepalived除了能夠管理LVS軟件外,還可以作為其他服務(Nginx,Haproxy、MySQL等)的高可用解決方案軟件。
二、keepalived軟件的三個主要功能
1、管理LVS負載均衡軟件
早起的LVS軟件,需要通過命令行或腳本實現管理,并且沒有針對LVS節點的健康檢查功能。為了解決LVS的這些不方便的問題,keepalived誕生了。因此keepalived跟LVS的感情很深,關系如夫妻一樣,可以緊密的結合。keepalived可以通過讀取自身的配置文件,實現通過更底層的接口直接管理LVS的配置以及控制服務的啟動、停止等功能,這使得LVS的應用更加簡單方便。
2、實現對LVS集群節點的健康檢查功能
Keepalived可以通過在自身的keepalived.conf文件里配置LVS的節點IP和相關參數實現對LVS的直接管理;除此之外,當LVS集群中的某一個甚至幾個節點服務器同時發生故障無法提供服務時,keepalived服務會自動將失效的節點服務器從LVS的正常轉發隊列清楚出去,并將請求調度到別的正常節點服務器上,保證最終用戶的訪問不受影響,故障修復以后,keepalived服務又會自動把它們加入到正常轉發隊列中。
3、作為系統網絡服務的高可用功能(failover)
keepalived可以實現任意兩臺主機之間,例如Master和Backup主機之間的故障轉移和自動切換,這個主機可以是普通的不能停機的業務服務器,也可以是LVS負載均衡、Nginx反向代理這樣的服務器。
原理就是:兩臺主機同時安好keepalived軟件并啟動服務,開始正常工作時,由角色為Master的主機獲得所有資源并對用戶提供服務,角色為Backup的主機作為Master主機的熱備;當角色為Master的主機失效或出現故障時,角色為Backup的主機將自動接管Master主機的所有工作,包括接管VIP資源及相應資源服務;而當角色為Master的主機故障修復后,又會自動接管回它原理處理的工作,角色為Backup的主機則同時釋放Master主機失效時它接管的工作,還原為最初啟動各自的角色。
三、keepalived高可用故障切換轉移原理
在Keppalived服務正常工作時,主Master節點會不斷地向備節點發送(多播的方式)心跳消息,用以告訴備Backup節點自己還活著,當主Master節點發生故障時,就無法發送心跳消息,備節點也就因此無法繼續檢測到來自主Master節點的心跳了,于是調用自身的接管程序,接管主Master節點的IP資源及服務。而當主Master節點恢復時,備Backup節點又會釋放主節點故障時自身接管的IP資源及服務,恢復到原來的備用角色。
VRRP,全稱Virtual Router Redundancy Protocol,虛擬路由冗余協議,VRRP的出現就是為了解決靜態路由的單點故障問題,VRRP是通過一種競選機制來將路由任務交給某臺VRRP路由器的。
在一組虛擬路由器中,只有作為Master的VRRP路由器會一直發送VRRP廣播包(VRRP Advertisement messages),此時Backup不會搶占Master。當Master不可用時,Backup就收不到來自Master的廣播包了,此時多臺Backup中優先級最高的路由器會搶占為Master。這種搶占非??焖俚模员WC服務的連續性,處于安全性考慮,VRRP數據包使用了加密協議進行加密。
總結就是下面四句話:
(1)VRRP,全程,Virtual Router Redundancy Protocol,中文名為虛擬路由冗余協議,VRRP的出現是為了解決靜態路由的單點故障。
(2)VRRP是通過一種競選協議機制來將路由任務交給某臺VRRP路由器的
(3)VRRP是IP多播的方式,實現高可用對之間的通信。
(4)工作時主節點發包,備節點接包,當備節點接受不到主節點發的數據包的時候,就啟動接管程序接管主節點的資源。備節點可以有多個,通過優先級競選,但一般Keepalived系統運維工作中都是一對。
(5)VRRP使用了加密協議加密數據,但keepalived官方目前還是推薦用明文的方式配置認證類型和密碼
四、Keepalived高可用服務搭建準備
(1)硬件環境:四臺虛擬機,兩臺做負載均衡器,兩臺做web服務器。
(2)web服務器前面搭建好了
(3)安裝keepalived軟件:yum install keepalived -y,在兩臺負載均衡器上都裝上。時間同步
(4)啟動:systemctl start keepalived.service
(5)配置主的文件/etc/keepalived/keepalived.conf
(6)全局定義部分可以不配,實際工作中交給更擅長監控報警的zabbix或者nagios來管
主的
備份的
測試,主的開啟keepalived和禁用
然后將主的keepalived關掉,用curl測試:
主主的區別如下,電腦內存太小,只有4g,跑了4太虛擬機太卡,上傳張圖片幾分鐘,不折騰了。
原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/65402
贊,特別是最后一張圖,希望能看出其中和你配置不一樣的地方,并理解~~繼續加油~