Corosync
用於HA的環境中,提供通訊服務,在各個node間傳送heartbeat的訊息。
透過/ete/corosync/corosync.conf可以定義corosync的配置,其中totem標籤內定義的是node之間的通訊協議。
Pacemaker
用於HA的環境中,負責資源的管理,若需通訊時,則透過底層的corosync來達成。
主要元件

pacemaker 扮演資源管理的大腦角色,內部自然就有多個元件緊密的運作著,而主要的元件共有五個:
- Cluster Information Base (CIB): 儲存 cluster 中所有 resource 資訊,訊會同步到所有 pacemaker 的 CIB 上,確保每一個 pacemaker 服務都有 cluster 完整的 resource 資訊。
- Cluster Resource Management daemon (CRMd): CRMd 會接收來自 PEngine 的資訊,傳遞控制訊息至 LRMd 來進行 resource 的調配。
- Local Resource Management daemon (LRMd): LRMd進行resource的調配。
- Policy Engine (PEngine or PE): 運用CIB 資訊,在依照制定好的 policy 為前提下,作為將 cluster 最佳化的依據。
- Fencing daemon (STONITHd): CRMd 可能會下命令給 STONITHd,將遠端的某個 resource 關閉,甚至把機器關機(進行隔離)。
Cluster Resource Management: crm
#crm指令格式 $ crm [-D display_type] [-f file] [-c cib] [-H hist_src] [-hFRDw] [--version] [args] #讀並且執行file上的指令 $ crm -f file #與cib進行session $ crm -c cib #不加參數,直接進行互動模式 $ crm #秀出目前配置 $ crm configure show #以XML秀出目前配置 $ crm configure show xml #把Resource設在同一個群組 $ crm configure group G_name R1 R2 R3 #定義Resource啟動順序(級別可分為:mandatory強制/Optional選擇/Serialize序列化) $ crm configure order O_name mandatory: R1 R2 R3 #cluster中的節點訊息 $ crm status #列出Resource Agent(ra)支援的provider類別 $ crm ra classes #列出Resource Agent(ra)中某個類別(ex:ocf)的所有provider清單 $ crm ra list ocf #查詢provider的資訊及使用方式 $ crm ra info ocf:heartbeat:IPaddr2
詳細內容可以連至參考資料3.
Start/Stop Pacemaker: pacemakerd
#版本及feature資訊 $ pacemakerd --feature
Summary of cluster’s current state: crm_mon
#resource failcounts $ crm_mon -f
check the validity of the configuration: crm_verify
#秀出目前配置有問題的地方 $ crm_verify -L