pacemaker+corosync/heartbeat對比及資源代理RA腳本


一、Pacemaker概念

(1)Pacemaker(心臟起搏器),是一個高可用的群集資源管理器。它實現最大可用性資源管理的節點和資源級故障檢測和恢復,通過使用首選集群基礎設施(Corosync或Heartbeat)提供的消息和成員能力。 它可以監測並恢復節點和服務級別的故障,實現進程級高可用。它適合各種大小集群,可以編寫腳本,可以管理作為心臟起搏器集群的一部分。再次說明一下,pacemaker是個資源管理器,不是提供心跳信息的,因為它似乎是一個普遍的誤解,corosync/heartbeat的工作才是提供心跳信息。pacemaker是一個延續的CRM(亦稱Heartbeat V2資源管理器),最初是為心跳,但已經成為獨立的項目,例如下圖的Heartbeat3.0版本,pacemaker是其中的一個部分或者說是一個模塊,heartbeat同樣也是一個模塊,可以替換為corosync,各個模塊有各自的作用。

(2)Heartbeat3.0的組成部分

(3)Pacemaker內部結構

 

二、pacemaker+corosync/heartbeat 軟件架構

1、Pacemaker - 集群資源管理器(CRM),負責啟動和停止服務,而且保證它們是一直運行着的以及某個時刻某服務只在一個節點上運行(避免多服務同時操作數據造成的混亂),利用集群基礎構建提供的信息和成員管理能力,探測並恢復節點以及在其控制下的資源的失效切換,以實現高可用性。

2、Corosync - 消息層組件,管理成員關系、消息和仲裁。

3、Resource Agents - 資源代理,用來控制服務啟停,監控服務狀態的腳本集合,這些腳本將被LRM調用從而實現各種資源啟動、停止、監控等等。任何資源代理都要使用同一種風格,接收四個參數:{start|stop|restart|status},包括配置IP地址的也是。

三、corosync和heartbeat對比
(1)共同點:
  都屬於消息網絡層,對外提供服務和主機的心跳檢測,在監控的主服務被發現當機之后,即時切換到從屬的備份節點,保證系統的可用性.
(2)不同點:
  •    社區活躍度:
Heartbeat從2010年之后,就不再繼續維護,而Corosync則仍然處於活躍期
  • 配置復雜度:
Heartbeat非常容易進行配置,第一次配置可能只需要幾分鍾,而Corosync由於有一定的復雜度則需要一點耐心
  • 管理資源的靈活性:
Heartbeat只能為所有的資源配置一個主服務,而corosync則允許為不同的資源組配置不同的主服務。
  • Resource stickiness:
Heartbeat在主服務server1當機之后,切換到從服務節點server2;還會把之前的主節點server1繼續放入從屬節點列表之內。而corosync則不會存在這個情況。
  • 配置文件的版本管理:
在corosync中,其會自行處理配置文件的同步問題,heartbeat則無此功能。
  • 分組管理
Heartbeat只支持2個節點,而corosync則支持多個節點的集群,支持把資源進行分組,按照組進行資源的管理,設置主服務,自行進行啟停
    故此可見,一般來說都是選擇corosync來進行心跳的檢測,搭配pacemaker的資源管理系統來構建高可用的系統。
 
四、Corosync
 
關於心跳的基本概念:
  • 心跳:就是將多台服務器用網絡連接起來,而后每一台服務器都不停的將自己依然在線的信息使用很簡短很小的通告給同一個網絡中的其它主機,告訴它們自己依然在線,其它服務器收到這個心跳信息就認為它是在線的,尤其是主服務器。
  • 心跳信息怎么發送,由誰來收,其實就是進程間通信。兩台主機是沒法通信的,只能利用網絡功能,通過進程監聽在某一套接字上,實現數據發送,數據請求,所以多台服務器就得運行同等的進程,這兩個進程不停的進行通信,主節點(主服務器)不停的向對方同等的節點發送自己的心跳信息,那這個軟件就叫高可用的集群的基准層次,也叫心跳信息傳遞層以及事物信息的傳遞層,這是運行在集群中的各節點上的進程,這個進程是個服務軟件,關機后需要將其啟動起來,主機間才可以傳遞信息的,一般是主節點傳給備節點

五、資源代理(Resource Agent - RA)

    一個 RA 是管理一個集群資源的可執行程序,沒有固定其實現的編程語言,但是大部分RA都是用 shell 腳本實現的,Pacemaker 使用 RA 來和受管理資源進行交互,Pacemaker 支持三種類型的 RA: LSB Resource Agents、OCF Resource Agents、Legacy Heartbeat Resource Agents。

    主流的 RA 都是 OCF 類型的。RA 支持的主要操作包括: start、stop、monitor、meta-data、status

    (CIB 是個分布式的XML 文件,有用戶添加配置 Pacemaker 和 Corosync 根據 CIB 控制 LRMD 的行為 LRMD 通過調用 RA 的接口控制各資源的行為)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM