基於DR模式的keepalived主從模式高可用架構搭建
2.keepalived是什麽?
Keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機
,或工作出現故障,Keepalived將檢測到,通過VRRP協議,將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常後
Keepalived自動將服務器加入到服務器群中,這些工作全部自動完成,不需要人工幹涉,需要人工做的只是修復故障的服務器。
3.VRRP協議是什麽?
VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協議) 可以認為是實現路由器高可用的協議,簡單的說,當一個路由器故障時可以由另一個備份路由器繼續提供相同的服務。
keepalive就是通過基於VRRP協議的VIP漂移來實現主從VS的切換來實現高可用。
4.實驗目標
通過配置兩臺VS,實現兩VS間的相互檢測,當其中一臺VS宕機後,另一臺VS能夠自動頂替,使用戶能夠正常訪問後端webserver資源,從而實現高可用
5.實驗環境
VS-master:主負載均衡器
VIP:172.17.252.1(eth0:0)
VS-backup:從負載均衡器
VIP:172.17.252.1(eth0:0)
RS1:webserver
VIP:172.17.252.1(lo:0)
RS2:webserver
VIP:172.17.252.1(lo:0)
註意:①VS無須進行DR的任何配置,只需打開路由轉發功能即可;RS需符合DR所有配置
②基於DR模式的LVS架構搭建過程,請看此博客 http://blog.51cto.com/13172823/1980791
6.實驗前的必要準備
①關閉VS和RS的selinux,並禁用iptables
②兩臺VS使用yum安裝keepalived軟件
7:實驗步驟(操作環境:VS)
(1)修改VS-master的keepalived配置文件
global_defs { ##全局配置 notification_email { ##郵件通知 [email protected] [email protected] [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { ##虛擬路由示例名 state MASTER ##初始狀態,MASTER|BACKUP,當state指定的instance的初始 化狀態,在兩臺服務器都啟動以後,馬上發生競選,優先級高的成為MASTER, 所以這裏的MASTER並不是表示此臺服務器一直是MASTER interface eth0 virtual_router_id 51 ##虛擬路由id號,最大255,一般不隨意改動 priority 100 ##優先級,數值越大,優先級越高(主高從低) advert_int 1 ##VRRP通告間隔,單位為s authentication { auth_type PASS auth_pass pp } virtual_ipaddress { ##VIP 172.17.252.1 } # nopreempt ##開啟非搶占模式(默認搶占,即當從服務器健康時,VIP強制漂移到主服務器上) } virtual_server 172.17.252.1 80 { ##配置VS delay_loop 6 ##服務輪訓時間 lb_algo wrr ##LVS集群調度算法為加權輪尋算法 lb_kind DR ##LVC集群模式 nat_mask 255.255.255.255 persistence_timeout 600 ##會話保持時間(s) protocol TCP ##健康檢查protocol(UDP | TCP) real_server 172.17.250.121 80 { ##指定RS1 weight 1 ##權重 HTTP_GET { url { path / } connect_timeout 3 ##連接超時時間 nb_get_retry 3 ##重連次數 delay_before_retry 3 ##重連連接間隔 } } real_server 172.17.250.122 80 { ##指定RS2 weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
(2)修改VS-backup的keepalive配置文件
global_defs { ##全局配置 notification_email { ##郵件通知 [email protected] [email protected] [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_2 { ##虛擬路由示例名 state BACKUP interface eth0 virtual_router_id 51 ##虛擬路由id號,最大255,一般不隨意改動 priority 98 ##優先級,數值越大,優先級越高 advert_int 1 ##VRRP通告間隔,單位為s authentication { auth_type PASS auth_pass pp } virtual_ipaddress { ##VIP 172.17.252.1 } } virtual_server 172.17.252.1 80 { ##配置VS delay_loop 6 ##服務輪訓時間 lb_algo wrr ##LVS集群調度算法 lb_kind DR ##LVC集群模式 nat_mask 255.255.255.255 persistence_timeout 600 ##會話保持時間(s) protocol TCP ##健康檢查protocol(UDP | TCP) real_server 172.17.250.121 80 { ##指定RS1 weight 1 ##權重 HTTP_GET { url { path / } connect_timeout 3 ##連接超時時間 nb_get_retry 3 ##重連次數 delay_before_retry 3 ##重連連接間隔 } } real_server 172.17.250.122 80 { ##指定RS2 weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
8.實驗結果測試
(1)同開啟兩臺VS的keepalived服務,VIP在VS-master上,而不在VS-backup上
(2)關閉master的keepalived服務,backup主機自動獲得VIP,而master上沒有VIP
(3)再次開啟master的keepalived服務,VIP又飄回master
註意事項:查看VIP應使用ip命令,ifconfig無效。
總結:到這裏,我們已經通過利用keepalived的VIP漂移來實現了主從服務器的自由切換,從而滿足了企業基本的服務器高可用目標。
基於DR模式的keepalived主從模式高可用架構搭建