機能 
 構成・方式 
    構成の種類
    5つの構成要素
    コンポーネント
    動作概要
    スコア値
    リソース
    RA
    Attribute
    監視動作
    場所
    パラメータ
 タスク 
 導入 
 CRMファイル 
 自作RA

 ノード台数による構成の種類
 ・1+1構成
Active/Standby
 ・N+1構成
 ・N+M構成

 5つの構成要素
 ・CIB (Cluster Information Base)
CIBはXMLを使用して表す。そのコンテンツは、クラスター全体で自動的に同期が保たれる。
・クラスターの構成
・クラスター内のすべてのリソースの現在の状態
クラスターの理想的な状態とその達成方法を計算するためにPEngineによって使用される。
 ・CRMd (Cluster Resource Management daemon)
 ・LRMd (Local Resource Management daemon)
ローカルリソース管理デーモン
 ・PEngine (Policy Engine)
 ・Fencing daemon (STONITHd)

 コンポーネントの構成
 ・参考(推奨)
 ・Pacemaker + Corosync (2つで Pacemaker)
 ・リソース制御部(Pacemaker)
CRM(Cluster Resource Manager)
Tengine(Trantion Engine)
Pengine(Policy Engine)
 ・クラスタ制御部(CCM、Cluster Consensus Membership)
Pacemakerは、クラスタ制御機能システムを選択可能
Corosyncを推奨
Heartbeat3
 ・リソースエージェント

 動作概要
 ・CIBのリストは、指定されたコントローラー(DC)に送られる。
/var/lib/pacemaker/cib/cib.xml
 ・Pacemakerは、マスターとして機能するCRMdインスタンスの1つを選択する。
すべてのクラスターの意思決定を一元化する。
選出されたCRMdプロセスが失敗した場合、新しいプロセスがすぐに確立される。
CRMdプロセス、又はそれがオンになっているノードが失敗した場合
 ・DCは、CIBのリストをクラスターメッセージングインフラストラクチャを介して、LRMdに渡す。
又は、他のノードのCRMdピアに渡し、PEngineの指示を必要な順序で実行する。
ピアノードのLRMdプロセスに渡す。
 ・ピアノードはすべて、操作の結果をDCに報告する。
 ・DCは、予想される結果と実際の結果に基づいて必要なアクションを実行する。
前のノードが完了するまで待機する必要があるアクションを実行するか
処理を中止してPEngineに再計算を依頼するか
予期しない結果に基づく理想的なクラスター状態は
 ・場合によっては、STONITHdでノードの電源を切る必要がある場合がある。
共有データを保護するため
リソースの回復を完了するため

 スコア値
 ・リソースをどのノードで起動するかの優先度を示す値
 ・クラスタの状態に変化があった場合にPacemakerが自動的に再計算
 ・算出したスコア値を比較し、最も大きな値のノードでリソースを起動
 ・算出したスコア値が負の値場合、そのノードでそのリソースを起動することはできない。
 ・スコア値の範囲
-INFINITY(禁止) < 負の値 < 0 < 正の値 < INFINITY(強制)
 ・「制約」によりスコア値をPacemakerに与えることができる。

 リソース
 ・ノード間でサービスを引き継ぐために必要なもの
 ・サービスの故障を検知するために監視が必要なもの
アプリケーション動作の引継ぎ
データの引継ぎ
IPアドレスの引継ぎ
ディスク、ネットワークの異常監視
 ・リソースの種類     参考
Primitive
Clone
Master/Slave
Group

 ・「PostgreSQL」の例
アプリケーション(PostgreSQL)そのもの
ファイルシステム(mountされている、共有ディスクやNFSサーバ)
ネットワークスイッチに接続されているIPアドレス
ディスク監視AP、ネットワーク監視AP

 リソースエージェント(Resource Agent)
 ・リソースの起動、停止、監視などを制御する。
各リソースの操作方法をラップ
主に シェルスクリプトで作成
標準で多数用意
/usr/lib/ocf/resource.d/heartbeat/
/usr/lib/ocf/resource.d/pacemaker/
アプリケーション動作の引継ぎ
apache
pgsql
tomcat
データの引継ぎ
Filesystem(複数のファイルシステムに対応)
IPアドレスの引継ぎ
IPaddr
IPaddr2
ディスク、ネットワークの異常監視
diskd
pingd
スクリプトで自作も可能

 Attribute
 ・ノード毎の各リソースの状態を補完するPacemakerの内部の値

 リソースエージェント(RA)の監視(monitor)などの概要
 ・Pacemakerは、RAを介してリソースを監視(Monitor)
RAは、Pacemaker本体から「monitor」コマンドを受ける。
・インターコネクト(Interconnect)アドレス
「monitor」コマンドが成功するかどうかでリソースの動作を監視する。
 ・リソースが故障したら、フェイルオーバなどのリソース制御を行う。
Pacemaker本体は、リソースをStandby側で起動してサービスを継続
 ・「PostgreSQL」の例
PacemakerからRAへ「start」コマンド
・RAは、スタート制御(pgsql_start())開始
RAからPostgreSQLへ「pg_ctl_start」
PostgreSQLは、「OK/NG」を返す
・RAは、Pacemakerへ「OK/NG」を返す
PacemakerからRAへ「monitor」コマンド
・RAは、状態監視(pgsql_monitor())開始
RAからPostgreSQLへ「select now()」のSQL文を実行
PostgreSQLは、「OK/NG」を返す
・RAは、Pacemakerへ「OK/NG」を返す
PacemakerからRAへ「stop」コマンド
・RAは、ストップ制御(pgsql_stop())開始
RAからPostgreSQLへ「pg_ctl_stop」
PostgreSQLは、「OK/NG」を返す
・RAは、Pacemakerへ「OK/NG」を返す

 場所
 ・/var/lib/pacemaker/cib
/var/lib/pacemaker/cib

 パラメータ
 migration-threshold
故障回数が「migration-threshold」で設定した値に達すると故障とみなす。