keepalive 原理講解

keepalive 原理講解

問題:

1.高可用解決什麼問題?
解決單點故障的問題------keepalived.
(1)要有備份,從而當一個出現問題時,可以切換到另一個,解決單點故障的問題。
(2)要能夠自動切換。
2.爲什麼要用keepalived?
1>安裝和配置都簡單,只有一個配置文件
2>keepalived可以實現自動切換,實現主從切換

keepalive缺點:但是如果是大規模的分佈式項目的話,一般不用Keepalived,因爲它只提供了簡單的心跳和切換的功能,但是沒有提供集羣管理的功能。
優點:比較簡單,方便學習和配置。
簡介:

    Keepalived是一個基於VRRP協議來實現的服務高可用方案,可以利用其來避免IP單點故障,類似的工具還有heartbeat、corosync、pacemaker。但是它一般不會單獨出現,而是與其它負載均衡技術(如lvs、haproxy、nginx)一起工作來達到集羣的高可用。
    VRRP協議:
    VRRP全稱 Virtual Router Redundancy Protocol,即 虛擬路由冗餘協議。可以認爲它是實現路由器高可用的容錯協議,即將N臺提供相同功能的路由器組成一個路由器組(Router Group),這個組裏面有一個master和多個backup,但在外界看來就像一臺一樣,構成虛擬路由器,擁有一個虛擬IP(vip,也就是路由器所在局域網內其他機器的默認路由),佔有這個IP的master實際負責ARP相應和轉發IP數據包,組中的其它路由器作爲備份的角色處於待命狀態。master會發組播消息,當backup在超時時間內收不到vrrp包時就認爲master宕掉了,這時就需要根據VRRP的優先級來選舉一個backup當master,保證路由器的高可用。
    在VRRP協議實現裏,虛擬路由器使用 00-00-5E-00-01-XX 作爲虛擬MAC地址,XX就是唯一的 VRID (Virtual Router IDentifier),這個地址同一時間只有一個物理路由器佔用。在虛擬路由器裏面的物理路由器組裏面通過多播IP地址 224.0.0.18 來定時發送通告消息。每個Router都有一個 1-255 之間的優先級別,級別最高的(highest priority)將成爲主控(master)路由器。通過降低master的優先權可以讓處於backup狀態的路由器搶佔(pro-empt)主路由器的狀態,兩個backup優先級相同的IP地址較大者爲master,接管虛擬IP。


    在這裏插入圖片描述
    nginx:支持一個網卡同時有兩個IP,就可以配置相同的虛擬IP
    一開始路由器先解析到其中一臺Nginx的IP,給他傳數據,另一個Nginx因爲和他有一樣的虛擬IP,所以可以建立起連接,只要第一臺正常運行,他們就可以建立一個網絡心跳,如果第一臺宕掉,則路由器會立馬解析另一臺nginx的IP,把數據包轉發給這臺Nginx(這就是keepalived起的作用,實現自動切換,實現高可用)


   


    在這裏插入圖片描述

雙機高可用一般是通過虛擬IP(飄移IP)方法來實現的,基於Linux/Unix的IP別名技術。

雙機高可用方法目前分爲兩種:

1)雙機主從模式:

即前端使用兩臺服務器,一臺主服務器和一臺熱備服務器,正常情況下,主服務器綁定一個公網虛擬IP,提供負載均衡服務,熱備服務器處於空閒狀態;當主服務器發生故障時,熱備服務器接管主服務器的公網虛擬IP,提供負載均衡服務;但是熱備服務器在主機器不出現故障的時候,永遠處於浪費狀態,對於服務器不多的網站,該方案不經濟實惠。

2)雙機主主模式:

即前端使用兩臺負載均衡服務器,互爲主備,且都處於活動狀態,同時各自綁定一個公網虛擬IP,提供負載均衡服務;當其中一臺發生故障時,另一臺接管發生故障服務器的公網虛擬IP(這時由非故障機器一臺負擔所有的請求)。這種方案,經濟實惠,非常適合於當前架構環境。

今天在此分享下Nginx+keepalived實現高可用負載均衡的主從模式的操作記錄:

keepalived可以認爲是VRRP協議在Linux上的實現,主要有三個模塊,分別是core、check和vrrp。

    core模塊爲keepalived的核心,負責主進程的啓動、維護以及全局配置文件的加載和解析。
    check負責健康檢查,包括常見的各種檢查方式。
    vrrp模塊是來實現VRRP協議的。
   

簡單的原理就先介紹到這裏啦,小編也是剛學習,繼續研究!
注意:keepalived一定要結合我們的Nginx或者MySQL或者其他的服務器中的單點集羣,把單點集羣複製一份纔有意義喲~~
 

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