lvs DR模式 +keepalived 實現directory 高可用、httpd服務負載均衡集羣

功能:

lvs+keepalived高可用負載均衡集羣中:

·keepalived負責後端real server健康狀態檢查

  如果一臺real server服務出現故障,則會從集羣服務中剔除,等恢復之後再自動加入到集羣。

·keepalived負責負載均衡器(directory server)高可用

  A和B兩臺虛擬機裝lvs+keepalived(主)和lvs+keepalived(備),但是對外表現爲一個虛擬IP,主服務器會發送消息給備服務器,當備服務器收不到消息的時候,認爲主出現故障,然後接管虛擬IP繼續提供服務,如果主節點恢復,則再次接管虛擬IP,提供服務。

原理:

·使用layer3工作時,keepalived定期向服務器羣組中發送icmp的數據包,如果某臺服務器IP地址沒有激活,則認爲失效,並剔除(典型例子就是 這臺服務器被非法關機)

·使用layer4工作時,比如是web 80端口的負載均衡,keepalived檢測後端服務器羣組中的80端口有沒有啓動,如果沒有,則認爲失效,並剔除

·使用layer7工作時,根據用戶設定,如果與用戶設定的不符,則認爲失效,並剔除

三個模塊:

·core:負責主進程的啓動、維護,全局配置文件的加載和解析

·health_check:負載健康狀態檢查

·vrrp:實現vrrp協議

實驗:

·主節點和備節點把keepalived啓動,web1和web2啓動httpd,

架構設計:

  利用keepalived來實現lvs的Directory server的高可用,再利用lvs和keepalived的高可用,來實現Web服務的負載均衡!架構圖如下

wKioL1Xlu0zD76rUAAQt3XyEaEg634.jpg

本文中的keepalived是檢測Real server的健康狀態以及負載均衡器的主和備之間的故障轉移。

檢測real server健康狀態:如果有一臺web服務器宕機或者出現故障,keepalived會檢測到,並從集羣羣組中剔除,等恢復後,再自動添加進來

負載均衡器故障轉移:一個web服務器至少需要兩臺keepalived,一臺爲主節點(Master),一臺爲備節點(backup),但對外表現爲一個虛擬IP,主服務器會發送組播,如果備服務器收不到vrrp包就認定主服務器出現故障,就會接管虛擬IP,繼續對外提供服務,從而保證了高可用性。

搭建:

重點  時間同步

      各個節點能互相解析

(1)準備環境

    1.主備節點都裝lvs和keepalived

     2.web1和web2都裝httpd

     3.關閉防火牆

     4.關閉SELinux

     5.web1和web2都要抑制ARP

(2)主節點

wKioL1XlvB2jNmOLAABnIQpJgZk142.jpg

wKiom1XlukzghVSTAAKXzMSuSF4361.jpg

(3)備節點

wKiom1Xlup-TaEZYAADZxiZjqpQ420.jpg

(4)web1和web2

wKioL1XlvQKBEPR6AAFwF4mX9_8035.jpg

測試

  1. 測試健康檢查:主節點和備節點啓動keepalived,web1和web2啓動httpd,主節點上查看ipvs規則,能看到web1和web2,ip addr 查看主節點vip,停止web1的httpd服務,主節點上再次查看ipvs規則,web1規則消失,測試成功

  2. 測試故障轉移:主節點和備節點啓動keepalived,web1和web2啓動httpd。停止主節點上的keepalived,查看備節點是否接管VIP,繼續提供web服務,如果能,測試成功

  3. 測試故障恢復:主節點出現故障,keepalived出現故障停止,備節點接管VIP,繼續提供web服務。如果主節點恢復,重新啓動keepalived,查看vip是否漂移回來,主節點接管備節點服務,繼續提供服務。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章