Heartbeat 簡介和原理

Heartbeat 簡介

Heartbeat 是一款開源提供高可用(Highly-Available)服務(wù)的軟件,通過 heartbeat 可以將資源(IP及程序服務(wù)等資源)從一臺已經(jīng)故障的計算機快速轉(zhuǎn)移到另一臺正常運轉(zhuǎn)的機器上繼續(xù)提供服務(wù),一般稱之為高可用服務(wù)。在實際生產(chǎn)應(yīng)用場景中,heartbeat 的功能和另一個高可用軟件 keepalived 有很多相同之處,但在生產(chǎn)中,對應(yīng)實際的業(yè)務(wù)應(yīng)用也是有區(qū)別的,例如: keepalived 主要是控制IP的漂移,配置、應(yīng)用簡單,而 heartbeat 則不但可以控制IP漂移,更擅長對資源服務(wù)的控制,配置、應(yīng)用比較復(fù)雜。

heartbeat 官方地址:http://www.linux-ha.org/wiki/Heartbeat

Heartbeat 原理

通過修改 heartbeat 軟件的配置文件可以指定哪一臺 Heartbeat 服務(wù)器作為主服務(wù)器,則另一臺將自動成為熱備服務(wù)器。然后在熱備服務(wù)器上配置 Heartbeat 守護程序來監(jiān)聽來自主服務(wù)器的心跳消息。如果熱備服務(wù)器在指定時間內(nèi)未監(jiān)聽到來自主服務(wù)器的心跳,就會啟動故障轉(zhuǎn)移程序,并取得主服務(wù)器上的相關(guān)資源服務(wù)的所有權(quán),接替主服務(wù)器繼續(xù)不間斷的提供服務(wù),從而達到資源及服務(wù)高可用性的目的。

以上描述的是 heartbeat 主備的模式,heartbeat 還支持主主模式,即兩臺服務(wù)器互為主備,這時它們之間會相互發(fā)送報文來告訴對方自己當前的狀態(tài),如果在指定的時間內(nèi)未收到對方發(fā)送的心跳報文,那么,一方就會認為對方失效或者宕機了,這時每個運行正常的主機就會啟動自身的資源接管模塊來接管運行在對方主機上的資源或者服務(wù),繼續(xù)為用戶提供服務(wù)。一般情況下,可以較好的實現(xiàn)一臺主機故障后,企業(yè)業(yè)務(wù)仍能夠不間斷的持續(xù)運行。注意:所謂的業(yè)務(wù)部間斷,在故障轉(zhuǎn)移期間也是需要切換時間的(例如:停止數(shù)據(jù)庫及存儲服務(wù)等),heartbeat 的主備高可用的切換時間一般是在5-20秒左右(服務(wù)器宕機的切換比人工切換要快)

另外,和 keepalived 高可用軟件一樣,heartbeat 高可用是操作系統(tǒng)級別的,不是服務(wù)(軟件)級別的,可用通過簡單的腳本控制,實現(xiàn)軟件級別的高可用。

高可用服務(wù)器切換的常見條件場景:

  • 1)主服務(wù)器物理宕機(硬件損壞,操作系統(tǒng)故障),高可用的主要解決目標
  • 2)Heartbeat 服務(wù)軟件本身故障
  • 3)兩臺主備服務(wù)器之間心跳連接故障
    服務(wù)故障不會導(dǎo)致切換,可以通過服務(wù)宕機把 heartbeat 服務(wù)停掉
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容