1. 程式人生 > >基於DR模式的keepalived主從模式高可用架構搭建

基於DR模式的keepalived主從模式高可用架構搭建

linuxkeepalived高可用

一:架構圖示

技術分享圖片

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主從模式高可用架構搭建