heartbeat與keepalived的比較和選擇

一、keepalivedweb

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

二、heartbeatapache

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

服務器宕機
heartbeat軟件故障
心跳鏈接線故障)
服務故障不會致使切換,能夠經過服務宕機把heartbeat服務停掉。網絡

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

三、對比工具

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等操做都已經有了;加密

四、總結:設計

web的高可用採用keepalived,若是數據庫之間作高可用,也可使用keepalived,可是推薦採用heartbeat;rest

相關文章
相關標籤/搜索