heartbeat與keepalived的比較和選擇

1、keepalived

keepalived高可用之間是通過vrrp通信的;vrrp通過競選機制確定主備,主的優先級高於備,因此在工作時主優先獲得資源,備節點處於等待狀態,當備節點無法接收到主節點的心跳信息時,備節點就回接管主節點的所有資源,頂替主節點對外服務。
vrrp:虛擬路由冗餘協議,主要是解決靜態路由的單點故障問題;
vrrp是通過一種競選協議機制將路由交給某臺vrrp路由器的;
vrrp是用IP多播的方式實現高可用對之間的通信
主節點發包,備節點接包,當備節點接收不到主節點發送的數據包時,就啓動接管程序接管主節點的資源。備節點有多個,也是通過競選機制接管主節點的資源
vrrp使用了加密協議加密數,但是keepalived官方依然使用的是明文方式進行認證配置的;

2、heartbeat

1)、Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實現了一個高可用集羣系統。心跳服務和集羣通信是高可用集羣的兩個關鍵組件; 通過修改heartbeat的配置文件,可以指定一臺heartbeat服務器作爲主服務器,另一臺自動成爲熱備服務器。在熱備服務器上面配置heartbeat守護程序來監聽來自主服務器的心跳信息。如果在規定時間內,無法監聽到心跳信息,那麼就啓動故障轉移,取得主服務器上的相關資源的所有權,接替主服務器繼續不間斷的提供服務,從而達到資源以及服務高可用的目的。
heartbeat還支持主主模式,及兩臺服務器互爲主備。一般故障切換時間在5~20s之間。
另外:和keepalived的服務一樣,heartbeat高可用是服務器級別的,不是服務級別的。

服務器宕機
heartbeat軟件故障
心跳連接線故障)
服務故障不會導致切換,可以通過服務宕機把heartbeat服務停掉。

2)、 心跳連接:
至少需要兩臺主機纔可以實現高可用服務。
兩臺heartbeat服務之間通信:
穿行電纜,所謂的串口(首先,缺點是距離不能太遠)
一根以太網電纜兩網卡直連(常用方式)
以太網電纜,通過交換機等網絡設備連接。(交換機可能出現問題等)

3、對比

1)Keepalived使用更簡單:從安裝、配置、使用、維護等角度上對比,Keepalived都比Heartbeat要簡單得多,尤其是Heartbeat 2.1.4後拆分成3個子項目,安裝、配置、使用都比較複雜,尤其是出問題的時候,都不知道具體是哪個子系統出問題了;而Keepalived只有1個安裝文件、1個配置文件,配置文件也簡單很多;
2)Heartbeat功能更強大:Heartbeat雖然複雜,但功能更強大,配套工具更全,適合做大型集羣管理,而Keepalived主要用於集羣倒換,基本沒有管理功能;
3)協議不同:Keepalived使用VRRP協議進行通信和選舉,Heartbeat使用心跳進行通信和選舉;Heartbeat除了走網絡外,還可以通過串口通信,貌似更可靠;
4)使用方式基本類似:如果要基於兩者設計高可用方案,最終都要根據業務需要寫自定義的腳本,Keepalived的腳本沒有任何約束,隨便怎麼寫都可以;Heartbeat的腳本有約束,即要支持service start/stop/restart這種方式,而且Heartbeart提供了很多默認腳本,簡單的綁定ip,啓動apache等操作都已經有了;

4、總結:

web的高可用採用keepalived,如果數據庫之間做高可用,也可以使用keepalived,但是推薦採用heartbeat;

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