Keepalived工做原理

    Keepalived軟件起初是專爲LVS負載均衡軟件設計的,用來管理並監控LVS集羣系統中各個服務節點的狀態,後來又加入了能夠實現高可用的VRRP功能。所以,Keepalived除了可以管理LVS軟件外,還能夠做爲其餘服務(例如:Nginx、Haproxy、MySQL等)的高可用解決方案軟件。後端

Keepalived採用是模塊化設計,不一樣模塊實現不一樣的功能;服務器

keepalived主要有三個模塊,分別是core、check和vrrp。 負載均衡

core:是keepalived的核心,負責主進程的啓動和維護,全局配置文件的加載解析等 ide

check: 負責healthchecker(健康檢查),包括了各類健康檢查方式,以及對應的配置的解析包括LVS的配置解析;可基於腳本檢查對IPVS後端服務器健康情況進行檢查。 模塊化

vrrp:VRRPD子進程,VRRPD子進程就是來實現VRRP協議的設計

keepalived配置文件:進程

Keepalived配置文件爲:keepalived.conf;ip

主要有三個配置區域,分別是:全局配置(Global Configuration)、VRRPD配置、LVS配置 資源

全局配置又包括兩個子配置: 全局定義(global definition) 靜態IP地址/路由配置(static ipaddress/routes)路由

Keepalived服務VRRP的工做原理:

    Keepalived高可用對之間是經過 VRRP進行通訊的, VRRP是經過競選機制來肯定主備的,主的優先級高於備,所以,工做時主會優先得到全部的資源,備節點處於等待狀態,當主宕機的時候,備節點就會接管主節點的資源,而後頂替主節點對外提供服務。

在 Keepalived服務對之間,只有做爲主的服務器會一直髮送 VRRP廣播包,告訴備它還活着,此時備不會槍佔主,當主不可用時,即備監聽不到主發送的廣播包時,就會啓動相關服務接管資源,保證業務的連續性.接管速度最快;

出現腦裂的緣由:

  1. 高可用服務器對之間心跳線鏈路發生故障,致使沒法正常通訊。

  2. 因心跳線壞了(包括斷了,老化)。

  3. 因網卡及相關驅動壞了,ip配置及衝突問題(網卡直連)

  4. 因心跳線間鏈接的設備故障(網卡及交換機)

  5. 因仲裁的機器出問題(採用仲裁的方案)

  6. 高可用服務器上開啓了 iptables防火牆阻擋了心跳消息傳輸。

  7. 高可用服務器上心跳網卡地址等信息配置不正確,致使發送心跳失敗

  8. 其餘服務配置不當等緣由,如心跳方式不一樣,心跳廣插衝突、軟件Bug等。

如何解決腦裂:

① 同時使用串行電纜和以太網電纜鏈接,同時用兩條心跳線路,這樣一條線路壞了,另外一個仍是好的,依然能傳送心跳消息。

② 當檢測到裂腦時強行關閉一個心跳節點(這個功能需特殊設備支持,如Stonith、feyce)。至關於備節點接收不到心跳消患,經過單獨的線路發送關機命令關閉主節點的電源。

③ 作好對裂腦的監控報警(如郵件及手機短信等或值班).在問題發生時人爲第一時間介入仲裁,下降損失。

管理員能夠經過手機回覆對應數字或簡單的字符串操做返回給服務器.讓服務器根據指令自動處理相應故障這樣解決故障的時間更短。

相關文章
相關標籤/搜索