Heartbeat 簡介
Heartbeat 是一款開源提供高可用(Highly-Available)服務的軟件密强,通過 heartbeat 可以將資源(IP及程序服務等資源)從一臺已經(jīng)故障的計算機快速轉移到另一臺正常運轉的機器上繼續(xù)提供服務,一般稱之為高可用服務碌尔。在實際生產(chǎn)應用場景中傻咖,heartbeat 的功能和另一個高可用軟件 keepalived 有很多相同之處朋魔,但在生產(chǎn)中,對應實際的業(yè)務應用也是有區(qū)別的卿操,例如: keepalived 主要是控制IP的漂移警检,配置、應用簡單害淤,而 heartbeat 則不但可以控制IP漂移扇雕,更擅長對資源服務的控制,配置窥摄、應用比較復雜镶奉。
heartbeat 官方地址:http://www.linux-ha.org/wiki/Heartbeat
Heartbeat 原理
通過修改 heartbeat 軟件的配置文件可以指定哪一臺 Heartbeat 服務器作為主服務器,則另一臺將自動成為熱備服務器崭放。然后在熱備服務器上配置 Heartbeat 守護程序來監(jiān)聽來自主服務器的心跳消息腮鞍。如果熱備服務器在指定時間內未監(jiān)聽到來自主服務器的心跳,就會啟動故障轉移程序莹菱,并取得主服務器上的相關資源服務的所有權移国,接替主服務器繼續(xù)不間斷的提供服務,從而達到資源及服務高可用性的目的道伟。
以上描述的是 heartbeat 主備的模式迹缀,heartbeat 還支持主主模式,即兩臺服務器互為主備蜜徽,這時它們之間會相互發(fā)送報文來告訴對方自己當前的狀態(tài)祝懂,如果在指定的時間內未收到對方發(fā)送的心跳報文,那么拘鞋,一方就會認為對方失效或者宕機了砚蓬,這時每個運行正常的主機就會啟動自身的資源接管模塊來接管運行在對方主機上的資源或者服務,繼續(xù)為用戶提供服務盆色。一般情況下灰蛙,可以較好的實現(xiàn)一臺主機故障后,企業(yè)業(yè)務仍能夠不間斷的持續(xù)運行隔躲。注意:所謂的業(yè)務部間斷摩梧,在故障轉移期間也是需要切換時間的(例如:停止數(shù)據(jù)庫及存儲服務等),heartbeat 的主備高可用的切換時間一般是在5-20秒左右(服務器宕機的切換比人工切換要快)
另外宣旱,和 keepalived 高可用軟件一樣仅父,heartbeat 高可用是操作系統(tǒng)級別的,不是服務(軟件)級別的,可用通過簡單的腳本控制笙纤,實現(xiàn)軟件級別的高可用耗溜。
高可用服務器切換的常見條件場景:
- 1)主服務器物理宕機(硬件損壞,操作系統(tǒng)故障)省容,高可用的主要解決目標
- 2)Heartbeat 服務軟件本身故障
- 3)兩臺主備服務器之間心跳連接故障
服務故障不會導致切換抖拴,可以通過服務宕機把 heartbeat 服務停掉