HA

Corosync / Pacemaker Tool command操作

Corosync

用於HA的環境中,提供通訊服務,在各個node間傳送heartbeat的訊息。

透過/ete/corosync/corosync.conf可以定義corosync的配置,其中totem標籤內定義的是node之間的通訊協議。


Pacemaker

用於HA的環境中,負責資源的管理,若需通訊時,則透過底層的corosync來達成。

主要元件

pcmk-internals

pacemaker 扮演資源管理的大腦角色,內部自然就有多個元件緊密的運作著,而主要的元件共有五個:

  1. Cluster Information Base (CIB): 儲存 cluster 中所有 resource 資訊,訊會同步到所有 pacemaker 的 CIB 上,確保每一個 pacemaker 服務都有 cluster 完整的 resource 資訊。
  2. Cluster Resource Management daemon (CRMd): CRMd 會接收來自 PEngine 的資訊,傳遞控制訊息至 LRMd 來進行 resource 的調配。
  3. Local Resource Management daemon (LRMd): LRMd進行resource的調配。
  4. Policy Engine (PEngine or PE): 運用CIB 資訊,在依照制定好的 policy 為前提下,作為將 cluster 最佳化的依據。
  5. 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

文章參考資料

  1. [HA] 建置 Two Nodes HA Cluster by corosync & pacemake @ Ubuntu 14.04 淺談 Pacemaker 架構
  2. Pacemaker – Chapter 4. Pacemaker Tools
  3. corosync+pacemaker的crmsh常用指令介绍
  4. Pacemaker中的资源管理工具–CRM基本指令及用法