Pacemaker 1.1 Configuration Explained – (1) Pacemakerとは
本カテゴリ「Pacemaker 設定詳細」では、Pacemaker 1.1 Configuration Explainedのだいたいの内容について説明していきます。
(1) Pacemakerとは
Pacemakerの主要機能
Pacemakerはクラスターリソースマネージャです。Pacemakerを使用する事で、事前に設定した規則に基づき、相互に接続したコンピュータ(ノード)間でクラスターサービス(リソース)の可用性を高めることができます。
Pacemakerの機能には以下のようなものがあります。
- ノードやサービスの障害を検知して回復する
- どんなストレージでも使用できる。共有ストレージにも対応
- どんなリソースにも対応する。所定のスクリプトを作成すればすべてクラスター化できる
- データ整合性を保つ仕組み(fencing機能)
- 様々な規模のクラスタに対応
- 1つのノードに行った設定は自動的に全ノードに複製される
- クラスタ全体にまたがる起動順序規則や位置制約規則が設定可能
Pacemakerの構造
クラスタの構成は大きく3つに分けられます。
- 非クラスタコンポーネント
リソースのスクリプトなど。HA化の仕組みはここには含まれません。
- リソース管理
ノードのクラスタ参加や離脱などのイベント発生時に対処する仕組みです。
- 低レベルインフラ
corosync,CMAN,heartbeatなどがクォーラムやメンバ情報などを提供します。
Pacemakerの内部構造
Pacemakerは以下5つの主要なコンポーネントで構成されます。
- CIB (Cluter Information Base)
- CRMd (Cluster Resource Management daemon)
- LRMd (Local Resource Management daemon
- PEngine (Policy Engine)
- STONITHd (Fencing Daemon)
クラスタの設定情報であるCIBは、参加する全クラスタノードで共有されます。
クラスタ全体では、1つのCRMdをマスターに選び、DC (Designated Controller)が自動的に決定されます。DCはPEngineを稼働させ、LRMdとCRMdに命令を行います。クラスタ内の状態が変化した場合には、PEngineが適切な状態を計算し、結果をDCに伝えます。
STONITHは、Shoot The Other Node In The Headの略で、「問題のあるノードは迅速に排除されるべし」という考え方に基づいた機能です。問題のあるノードの電源を切り、クラスタから除外します。通常は本機能はリモート電源スイッチを使って実装します。
Pacemakerクラスタの種類
以下の3つのタイプのクラスタ構成が可能です。
Active/Passive構成
このようなPacemakerとDRBDを使用した2ノードのActive/Passive構成は、HAクラスタを構築する場合、コスト性に優れた選択肢となります。
Shared Failover構成
複数のActiveノードのフェイルオーバー先として、1つのノードを共有するShared Failover構成です。ハードウェアコストを大きく削減する効果があります。
Active/Active構成
共有ストレージを使用した場合には、すべてのノードにフェイルオーバー可能なActive/Active構成になります。また、Pacemakerはサービスの複数のコピーを作成して、負荷を分散させることが可能です。
※本記事内で使用している画像についてはすべてPacemaker 1.2 Configuration Explainedのドキュメント(http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html)から取得しています。