最近因?yàn)轫?xiàng)目需要,簡單的試用了兩款高可用開源方案:Keepalived和Heartbeat。兩者都很流行,但差異還是很大的,現(xiàn)將試用過程中的感受以及相關(guān)知識(shí)點(diǎn)簡單總結(jié)一下,供大家選擇方案的時(shí)候參考。
1)Keepalived使用更簡單:從安裝、配置、使用、維護(hù)等角度上對比,Keepalived都比Heartbeat要簡單得多,尤其是Heartbeat2.1.4后拆分成3個(gè)子項(xiàng)目,安裝、配置、使用都比較復(fù)雜,尤其是出問題的時(shí)候,都不知道具體是哪個(gè)子系統(tǒng)出問題了;而Keepalived只有1個(gè)安裝文件、1個(gè)配置文件,配置文件也簡單很多;
2)Heartbeat功能更強(qiáng)大:Heartbeat雖然復(fù)雜,但功能更強(qiáng)大,配套工具更全,適合做大型集群管理,而Keepalived主要用于集群倒換,基本沒有管理功能;
3)協(xié)議不同:Keepalived使用VRRP協(xié)議進(jìn)行通信和選舉,Heartbeat使用心跳進(jìn)行通信和選舉;Heartbeat除了走網(wǎng)絡(luò)外,還可以通過串口通信,貌似更可靠;
4)使用方式基本類似:如果要基于兩者設(shè)計(jì)高可用方案,最終都要根據(jù)業(yè)務(wù)需要寫自定義的腳本,Keepalived的腳本沒有任何約束,隨便怎么寫都可以;Heartbeat的腳本有約束,即要支持service start/stop/restart這種方式,而且Heartbeart提供了很多默認(rèn)腳本,簡單的綁定ip,啟動(dòng)apache等操作都已經(jīng)有了;
使用建議:優(yōu)先使用Keepalived,當(dāng)Keepalived不夠用的時(shí)候才選擇Heartbeat