引言: 在高可用系統中,系統服務可用性的監控是必不可少的一項基礎組件。而目前流行的是Heartbeat和corosync,對於這兩者各有什麼優缺點呢?
共同點:
都屬於消息網絡層,對外提供服務和主機的心跳檢測,在監控的主服務被發現當機之後,即時切換到從屬的備份節點,保證系統的可用性.
不同點:
社區活躍度:
Heartbeat從2010年之後,就不再繼續維護,而Corosync則仍然處於活躍期
配置複雜度:
Heartbeat非常容易進行配置,第一次配置可能只需要幾分鐘,而Corosync由於有一定的複雜度則需要一點耐心
管理資源的靈活性:
Heartbeat只能爲所有的資源配置一個主服務,而corosync則允許爲不同的資源組配置不同的主服務。
Resource stickiness:
Heartbeat在主服務server1當機之後,切換到從服務節點server2;還會把之前的主節點server1繼續放入從屬節點列表之內。
而corosync則不會存在這個情況。
配置文件的版本管理:
在corosync中,其會自行處理配置文件的同步問題,heartbeat則無此功能。分組管理
Heartbeat只支持2個節點,而corosync則支持多個節點的集羣,支持把資源進行分組,按照組進行資源的管理,設置主服務,自
行進行啓停
故此可見,一般來說都是選擇corosync來進行心跳的檢測,搭配pacemaker的資源管理系統來構建高可用的系統,關於pacemaker的內容,大家可以自行查閱資料。
參考資料:
1. HeartBeat的百度百科 http://baike.baidu.com/link?url=dNg0yvDgksPxDtp8CE8CZKPupcBgyhJalCQI6f4mtWWI7ECDPfC8gm1e10RY-zGohJWS-9a49_G30BRaMZkOT1SKsoKr66Y0WDuMYlqgRli
2. Heartbeat官方站點 http://www.Linux-ha.org/wiki/Main_Page
3. Corosync的官方站點 http://corosync.github.io/corosync/