1. 程式人生 > >keepalived工作原理及裂腦

keepalived工作原理及裂腦

keepalived   裂腦

1. keepalived服務的工作原理(重點)

ükeepalived高可用對之間是通過VRRP協議通信的,因此,我們從VRRP協議介紹:

üvrrp協議,全稱virtual router redundancy protocol ,中文名名為虛擬路由冗余協議VRRP的出現時為了解決靜態路由的單點故障。

üVRRP是通過一種競選協議機制來將路由任務交給某臺VRRP路由器的。

üVRRP是用IP多播的方式(默認多播地址224.0.0.18)實現高可用對之間通信的。

ü工作時主節點發包,備節點接包,當備節點接收不到主節點發的數據包時,就啟動接管程序接管主節點的資源。備節點可以有多個,通過優先級競選,但一般keepalived系統運維工作都是一對。

üVRRP使用了加密協議加密數據,但Keepalived官方目前還是推薦用明文的方式配置認證類型和密碼。


2. 導致裂腦發生的原因

  • 高可用服務器之間心跳線鏈路故障,導致無法正常通信。

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

網卡即相關驅動壞了,IP配置及沖突問題(網卡直連)

心跳線間連接的設備故障(網卡及交換機)

仲裁的機器出問題(采用仲裁的方案)。

  • 高可用服務器對上開啟了iptables防火墻阻擋了心跳信息傳輸。

  • 高可用服務器對上心跳網卡地址等信息配置不正確,導致發送心跳失敗。

  • 其他服務器配置不當等原因,如心跳方式不同,心跳廣播沖突,軟件BUG



3. 解決裂腦的常見方案

在實際生產環境中,我們可以從以下幾個方面來防止裂腦問題的發生。

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

  • 當檢測到裂腦時強行關閉一個心跳節點(這個功能需特殊設備支持,如fence,stonith)。相當於備節點接收不到心跳信息,發送關機命令通過單獨的線路關閉主節點電源。

  • 做好對裂腦的監控報警(如郵件及手機短信等),在問題發生時人為的第一時間介入仲裁,降低損失。例如:百度的監控報警短信就有上行和下行的區別。報警信息到管理員手機上,就可以通過回復對應的字符串等操作就可以返回給服務器,讓服務器根據指令自動執行處理相關故障


下面是生產場景中檢測裂腦故障的一些思路:

(1)簡單判斷的思想:只要備節點出現VIP就報警,這個報警可以有兩種情況,一是主機宕機了備機接管了;二是主機沒宕,裂腦了,不管哪種情況,都進行報警,然後由人工查看判斷及解決。

(2)比較嚴謹的判斷:備節點出現對應的VIP,並且主節點及對應的服務還活著,就說明發生裂腦了。


本文出自 “寫個博客騙錢” 博客,請務必保留此出處http://dadonggg.blog.51cto.com/12672150/1948737

keepalived工作原理及裂腦