Keepalived 主從備份

     Keepalived 是一個基於VRRP協議來實現服務高可用方案,能夠利用其來避免單點故障。有一臺爲主服務器(MASTER),一臺爲備份服務器(BACKUP),可是對外表現爲一個虛擬IP,主服務器會發送特定的消息給備份服務器,當備份服務器收不到這個消息的時候,即主服務器宕機的時候, 備份服務器就會接管虛擬IP,繼續提供服務,從而保證了高可用性。Keepalived一般結合LVS, Nginx, Haproxy等使用
    Keepalived服務主要有兩大用途:heartbeat(高可用)& failover(健康檢測)。

VRRP協議:
    在現實的網絡環境中,兩臺須要通訊的主機大多數狀況下並無直接的物理鏈接,主機如何選定到達目的主機的下一跳路由,這個問題一般的解決方法有二種:ubuntu

  • 在主機上使用動態路由協議(RIP、OSPF等)
  • 在主機上配置靜態路由

     很明顯,在主機上配置動態路由是很是不切實際的,由於管理、維護成本以及是否支持等諸多問題。配置靜態路由就變得十分流行,但路由器卻常常成爲單點故障。VRRP的目的就是爲了解決靜態路由單點故障問題,VRRP經過一競選協議來動態的將路由任務交給LAN中虛擬路由器中的某臺VRRP路由器。

    在一個VRRP虛擬路由器中,有多臺物理的VRRP路由器,可是這多臺的物理的機器並不能同時工做,而是由一臺稱爲MASTER的負責路由工做,其它的都是BACKUP,MASTER並不是一成不變,VRRP讓每一個VRRP路由器參與競選,最終獲勝的就是MASTER。MASTER擁有一些特權,好比,擁有虛擬路由器的IP地址,咱們的主機就是用這個IP地址做爲靜態路由的。擁有特權的MASTER要負責轉發發送給網關地址的包和響應ARP請求。安全

       VRRP經過競選協議來實現虛擬路由器的功能,全部的協議報文都是經過IP多播包形式發送的。虛擬路由器由VRID(範圍0-255)和一組IP地址組成,對外表現爲一個MAC地址。因此,在一個虛擬路由 器中,無論誰是MASTER,對外都是相同的MAC和IP(稱之爲VIP)。客戶端主機並不須要由於MASTER的改變而修改本身的路由配置,對客戶端來講,這種主從的切換是透明的。服務器

       在一個虛擬路由器中,只有做爲MASTER的VRRP路由器會一直髮送VRRP通告信息(VRRP Advertisement message),BACKUP不會搶佔MASTER,除非它的優先級(priority)更高。當MASTER不可用時(BACKUP收不到通告信息), 多臺BACKUP中優先級最高的這臺會被搶佔爲MASTER。這種搶佔是很是快速的(<1s),以保證服務的連續性。因爲安全性考慮,VRRP包使用了加密協議進行加密。

ubuntu搭建過程:網絡

  1. 安裝Keepalived
    apt-get install keepalived
     
  2. 建立配置文件
    cd /etc/keepalived
    vi keepalived.conf

    ######################## #  全局配置 ########################
    global_defs {                                  # global_defs 全局配置標識
        notification_email {                     # notification_email用於設置報警郵件地址
            failover@firewall.loc               # 能夠設置多個,每行一個
        }                                      

        notification_email_from email@firewall.loc  # 設置郵件發送地址  
        smtp_server 192.168.0.105         # 設置郵件的smtp server地址  
        smtp_connect_timeout 30         # 設置鏈接smtp sever超時時間  
        router_id LVS_DEVEL              
    }

    ###################### #  VRRP配置 ######################
    vrrp_instance VI_1 {           # VRRP配置標識 VI_1是實例名稱   
        state MASTER              # 指定Keepalvied角色 MASTER表示此主機爲主服務器
                                          # BACKUP則是表示爲備用服務器   
        interface enp0s5          # 指定 HA 監測網絡的接口   
        virtual_router_id 51       # 虛擬路由標識,標識爲數字,同一個VRRP實例使用惟一的標識,
                                         #便可表示在同一個vrrp_instance下 MASTER_ID = BACKUP_ID   
        priority 100            # 定義節點優先級,數字越大表示節點的優先級越高,
                                   #同一個VRRP_instance下,MASTE_PRIORITY > BACKUP_PRIORITY 
        advert_int 1           # 設定MASTER與BACKUP主機質檢同步檢查的時間間隔,單位爲秒     
        authentication {          # 設定節點間通訊驗證類型和密碼,驗證類型主要有PASS和AH兩種 
            auth_type PASS     # 同一個vrrp_instance,MASTER驗證密碼和BACKUP保持一致      
            auth_pass 111111   
        }   
        virtual_ipaddress {      # 設置虛擬IP地址 (VIP),又叫作漂移IP地址,         
            192.168.0.250        # MASTER經過ip address add添加到系統,可添加多個
        }
    }
     
  3. 啓動Keepalived /etc/init.d/keepalived start
相關文章
相關標籤/搜索