一、 heartbeat的概念
Linux-HA的全稱是High-Availability Linux,它是一個開源項目,這個開源項目的目標是:通過社區開發人員的共同努力,提供一個增強linux可靠性(reliability)、可用性(availability)和可服務性(serviceability)(RAS)的群集解決方案。其中Heartbeat就是Linux-HA項目中的一個組件,也是目前開源HA項目中最成功的一個例子,它提供了所有 HA 軟體所需要的準系統,比如心跳檢測和資源接管、監測群集中的系統服務、在群集中的節點間轉移共用 IP 位址的所有者等,自1999年開始到現在,Heartbeat在行業內得到了廣泛的應用,也發行了很多的版本,可以從Linux-HA的官方網站www.linux-ha.org下載到Heartbeat的最新版本。
二、 HA叢集中的相關術語
1.節點(node)
運行heartbeat進程的一個外掛式主控件,稱為節點,節點是HA的核心組成部分,每個節點上運行著作業系統和heartbeat軟體服務,在heartbeat叢集中,節點有主次之分,分別稱為主節點和備用/備份節點,每個節點擁有唯一的主機名稱,並且擁有屬於自己的一組資源,例如,磁碟、檔案系統、網路地址和應用服務等。主節點上一般運行著一個或多個應用服務。而備用節點一般處於監控狀態。
2.資源(resource)
資源是一個節點可以控制的實體,並且當節點發生故障時,這些資源能夠被其它節點接管,heartbeat中,可以當做資源的實體有:
磁碟分割、檔案系統
IP地址
應用程式服務
NFS檔案系統
3.事件(event)
也就是叢集中可能發生的事情,例如節點系統故障、網路連通故障、網卡故障、應用程式故障等。這些事件都會導致節點的資源發生轉移,HA的測試也是基於這些事件來進行的。
4.動作(action)
事件發生時HA的回應程式式,動作是由shell腳步控制的,例如,當某個節點發生故障後,備份節點將通過事先設定好的執行指令碼進行服務的關閉或啟動。進而接管故障節點的資源。
三、 Heartbeat的組成與原理
1.Heartbeat的組成
Heartbeat提供了高可用叢集最基本的功能,例如,節點間的內部通訊方式、叢集合作管理機制、監控工具和失效切換功能等等,目前的最新版本是Heartbeat2.x,這裡的講述也是以Heartbeat2.x為主,下面介紹Heartbeat2.0的內部組成,主要分為以下幾大部分:
heartbeat: 節點間通訊檢測模組
ha-logd: 叢集事件記錄服務
CCM(Consensus Cluster Membership):叢集成員一致性管理模組
LRM (Local Resource Manager):本地資源管理模組
Stonith Daemon: 使出現問題的節點從叢集環境中脫離
CRM(Cluster resource management):叢集資源管理模組
Cluster policy engine: 叢集策略引擎
Cluster transition engine:叢集轉移引擎
圖1顯示了Heartbeat2.0內部結構組成: