機能 
 構成・方式 
 タスク 
 導入 
    CentOS7
    仮想化
    リポジトリ
    インストール
    アップデート
    ShortName
    ノード間通信
    PKG確認
    FW設定
    corosync.conf
    認証鍵ファイル
    環境変数初期
    property
    rsc_defaults
    起動スクリプト
    起動・停止
    corosync確認
    pacemaker確認
    リソース追加
    テスト
    環境変数設定
    リソースcrm設定
    参考
    pcsを使用
    pcs起動
 CRMファイル 
 自作RA

 CentOS7
 ・ CentOS7インストール
 ・NTPはオン

 仮想化
 ・ KVM仮想化

 リポジトリを追加
 ・crmshを使う場合は、linux-haのリポジトリを使うのが無難
pcs(pcsd)を使う場合は、そのままで
 ・CentOS同梱版のPacemakerと混在しないように、除外(exclude)設定(1.1.19-1.1版)
  「/etc/yum.repos.d/CentOS-Base.repo」に追加 [base] ・・・ exclude=pacemaker* corosync* resource-agents* crmsh* cluster-glue* libqb* fence-agents* [updates] ・・・ exclude=pacemaker* corosync* resource-agents* crmsh* cluster-glue* libqb* fence-agents*   (pcsはBase.repを使用するので、除外しない。)
 ・リポジトリインストール(CentOS7、直接rpmをインストール(yum localinstall ))
  (既に、yum updateなどで 1.1.23-1.el7 へ更新済の場合は、何もしない(rpm削除済)か、エラー表示)
  (戻す場合、pacemaker、corosyncをremove、reboot後実施)
# yum -y localinstall https://ja.osdn.net/projects/linux-ha/downloads/71663/pacemaker-repo-1.1.21-1.1.el7.x86_64.rpm
 /var/tmp/yum-root-TGOmW5/pacemaker-repo-1.1.21-1.1.el7.x86_64.rpm をインストール済みとして設定
 パッケージ pacemaker-repo.x86_64 0:1.1.21-1.1.el7 を インストール
 依存性を解決しました
 完了しました!

 CentOS7にインストール
 ・インストール
# yum install -y pacemaker-all     =================================================      Package  アーキテクチャー  バージョン  リポジトリー     =================================================      pacemaker-all noarch 1.1.21-1.1.el7 linux-ha-ja-pacemaker     依存性関連でのインストール:      NetworkManager-config-server noarch 1:1.18.8-2.el7_9 updates      OpenIPMI x86_64 2.0.27-1.el7 base      OpenIPMI-libs x86_64 2.0.27-1.el7 base      OpenIPMI-modalias x86_64 2.0.27-1.el7 base      cluster-glue x86_64 1.0.12-5.el7 linux-ha-ja-pacemaker      cluster-glue-libs x86_64 1.0.12-5.el7 linux-ha-ja-pacemaker      corosync x86_64 2.4.4-2.el7 linux-ha-ja-pacemaker      corosynclib x86_64 2.4.4-2.el7 linux-ha-ja-pacemaker      crmsh x86_64 2.1.9-1.el7 linux-ha-ja-pacemaker      ipmitool x86_64 1.8.18-9.el7_7 base      openhpi-libs x86_64 3.8.0-1.el7 base      pacemaker x86_64 1.1.21-1.el7 linux-ha-ja-pacemaker      pacemaker-cli x86_64 1.1.21-1.el7 linux-ha-ja-pacemaker      pacemaker-cluster-libs x86_64 1.1.21-1.el7 linux-ha-ja-pacemaker      pacemaker-libs x86_64 1.1.21-1.el7 linux-ha-ja-pacemaker      pm_crmgen noarch 2.2-1.el7 linux-ha-ja-pacemaker      pm_diskd x86_64 2.4-1.el7 linux-ha-ja-pacemaker      pm_extras x86_64 2.5-1.el7 linux-ha-ja-pacemaker      pm_logconv-cs noarch 2.6-1.el7 linux-ha-ja-pacemaker      pssh noarch 2.3.1-5.el7 linux-ha-ja-pacemaker     依存性関連での更新:      libqb x86_64 1.0.5-1.el7 linux-ha-ja-pacemaker      resource-agents x86_64 4.3.0-1.el7 linux-ha-ja-pacemaker     完了しました!
 アップデート
 ・APアップデート
  (アップデート済の場合、No packages marked for update)
# yum update
  インストール 1 パッケージ
  更新    205 パッケージ
  完了しました!

 ShortName
 ・hostnamectlツールを使用して、ドメイン名を削除する場合
# uname -n
# hostnamectl set-hostname $(uname -n | sed s/\\..*//)
# uname -n

 ノード間通信確認
 ・hosts設定
インターコネクト用
 ・hosts確認
# grep xxxx(kvmなど) /etc/hosts

 パッケージ確認
 ・pacemaker     # yum info pacemaker      インストール済みパッケージ      名前  : pacemaker      アーキテクチャー  : x86_64      バージョン  : 1.1.21      リリース  : 1.el7      リポジトリー  : installed      提供元リポジトリー  : linux-ha-ja-pacemaker  ・crmsh
crmshは、インストール済
# yum info crmsh      インストール済みパッケージ      名前 : crmsh      アーキテクチャー : x86_64      バージョン : 2.1.9      リリース : 1.el7      リポジトリー : installed      提供元リポジトリー : linux-ha-ja-pacemaker
 ファイアウォール設定
 ・CentOS7ファイアウォールを設定
# firewall-cmd --permanent --add-service=high-availability
# firewall-cmd --reload

 corosync.conf
 ・corosync.confを修正

 認証鍵ファイル
 ・corosync認証鍵ファイルを設定

 環境変数初期
 ・/etc/sysconfig/pacemaker     # pacemakerの内部プロセスが故障した場合も、ノード故障として取り扱う     # PCMK_fail_fast=no     PCMK_fail_fast=yes
 property
 ・propertyを設定

 rsc_defaults
 ・rsc_defaultsを設定

 起動スクリプト
 ・pacemakerサービス停止時に corosyncサービスも同時に停止させる
 ・corosyncプロセス故障時に watchdog 機能を有効にする

 起動・停止
 ・起動・停止
# systemctl start pacemaker.service
# systemctl stop pacemaker.service
 ・起動確認
# crm_mon -D1

 corosync確認
 ・クラスター通信の正常確認
 ・ 固定IP正常確認

 pacemaker確認
 ・プロセス確認
ifcheckdプロセス確認
 ・ status確認
 ・ 設定の有効性を確認

 リソース追加
 ・リソース追加
フローティングIPアドレス

 テスト
 ・フェールオーバーのテスト
# pcs status
フローティングIPアドレスのステータスが開始されている側のPMを止める。
# systemctl stop pacemaker.service
# pcs status
フローティングIPアドレスのステータスの移動を確認
フェールオーバーは自動的に発生し、エラーは報告されない。

 環境変数設定
 ・/etc/sysconfig/pacemaker     # "cman"はinitスクリプトを起動および停止させる     # PCMK_STACK=cman     #デバッグロギング     # e.g. PCMK_debug=crmd,pengine     # PCMK_debug=yes|no|crmd|pengine|cib|stonith-ng|attrd|pacemakerd     # 指定されたファイルに詳細なログメッセージを送信     # PCMK_logfile=/var/log/pacemaker.log     PCMK_logfile=none     # 指定されたsyslog機能を使用して、syslogを介したロギングを有効にする     # PCMK_logfacility=none|daemon|user|local0|local1|local2|local3|local4|local5|local6|local7     PCMK_logfacility=local1     # 指定された重大度以上がsyslogに送信されます。デフォルト値「注意」     # PCMK_logpriority=emerg|alert|crit|error|warning|notice|info|debug     PCMK_logpriority=info     # コンマ区切りの関数リストからすべてのメッセージをログに記録     # PCMK_trace_functions=function1,function2,function3     # ファイルのコンマ区切りリストからのすべてのメッセージをログに記録     # PCMK_trace_files=file.c,other.h     # コンマ区切りのフォーマットのリストに一致するすべてのメッセージをログに記録     # PCMK_trace_formats="Sent delete %d"     # タグのコンマ区切りリストからすべてのメッセージをログに記録     # PCMK_trace_tags=tag1,tag2     # functionとlineの位置にメッセージが表示されるたびにブラックボックスをダンプ     # PCMK_trace_blackbox=fn:line,fn2:line2,...     # ブラックボックスロギングをグローバルに、またはサブシステムごとに有効にする     # PCMK_blackbox=yes|no|crmd|pengine|cib|stonith-ng|attrd|pacemakerd     #==#==# Advanced use only     # デフォルトでは、ノードは最初にオンラインになったときにクラスタに参加     # PCMK_node_start_state=default     # クラスタが(2.0より前の)古いバージョンのcorosyncを使用している場合 "true"、     # PCMK_uname_is_uuid=false     # 開発者用     # PCMK_schema_directory=/some/path     # pacemakerの内部プロセスが故障した場合も、ノード故障として取り扱う     # PCMK_fail_fast=no     PCMK_fail_fast=yes     # Pacemakerは特定の条件下でホストにパニックを起こす     # PCMK_panic_action=crash     #==#==# Pacemaker Remote     # ファイルの内容をPacemakerで使用するための認証キーとして使用     # PCMK_authkey_location=/etc/pacemaker/authkey     # Pacemaker Remoteノードに接続するときのTCPポート番号     # PCMK_remote_port=3121     #==#==# IPC     # 特定のクラスのIPC接続を強制的に使用     # PCMK_ipc_type=shared-mem|socket|posix|sysv     # IPCバッファサイズをバイト単位で指定     # PCMK_ipc_buffer=131072     #==#==# Profiling and memory leak testing (mainly useful to developers)     # 開発者用     # G_SLICE=always-malloc     # 開発者用     # MALLOC_PERTURB_=221     # 開発者用     # MALLOC_CHECK_=3     # 開発者用     # PCMK_valgrind_enabled=cib,crmd     # 開発者用     # PCMK_callgrind_enabled=cib,crmd     # valgrindが有効になっている場合は、オプションをvalgrindに渡すように設定     VALGRIND_OPTS="--leak-check=full --trace-children=no --vgdb=no      --num-callers=25 --log-file=/var/lib/pacemaker/valgrind-%p      --suppressions=/usr/share/pacemaker/tests/valgrind-pcmk.suppressions      --gen-suppressions=all"
 リソースcrm設定
 ・クラスタ上でPacemakerが管理するリソースの管理方法を設定する。
 ・ リソースcrm設定 

 参考
 ・参考
 ・Linux-HA Japan

 pcsを使用
 ・pcsは未インストール、pcs(pcsd)を使う場合は要インストール
Base.repでインストール
# yum -y install pacemaker pcs
# systemctl start pcsd
# systemctl enable pcsd
 ・pacemaker導入済
 ・corosync導入済
 ・クラスター管理ユーザーのパスワード設定
# passwd hacluster
 ・ファイアウォール設定
 ・ノード間の認証を確立
# pcs cluster auth kvm3.xxxx.xxx kvm4.xxxx.xxx
Username: hacluster
Password:
 ・クラスターを構成する。
# pcs cluster setup --name mailHa kvm3.xxxx.xxx kvm4.xxxx.xxx --force      Destroying cluster on nodes: kvm3.xxxx.xxx kvm4.xxxx.xxx.      kvm3.xxxx.xxx: Stopping Cluster (pacemaker)...      kvm4.xxxx.xxx: Stopping Cluster (pacemaker)...      kvm3.xxxx.xxx: Successfully destroyed cluster      kvm4.xxxx.xxx: Successfully destroyed cluster      Sending 'pacemaker_remote authkey' to 'kvm3', 'kvm4'      kvm3.xxxx.xxx: successful distribution of the file 'pacemaker_remote authkey'      kvm4.xxxx.xxx: successful distribution of the file 'pacemaker_remote authkey'      Sending cluster config files to the nodes...      kvm3.xxxx.xxx: Succeeded      kvm4.xxxx.xxx: Succeeded      Synchronizing pcsd certificates on nodes kvm3, kvm4...      kvm4.xxxx.xxx: Success      kvm3.xxxx.xxx: Success      Restarting pcsd on the nodes in order to reload the certificates...      kvm4.xxxx.xxx: Success      kvm3.xxxx.xxx: Success  ・編集された「/etc/corosync/corosync.conf」を確認
「logging」部分は後で指定しなおす。
 ・各ノードでサービスを起動
# pcs cluster start --all
kvmx3.xxxx.xxx: Starting Cluster (corosync)...
kvmx3.xxxx.xxx: Starting Cluster (corosync)...
kvmx4.xxxx.xxx: Starting Cluster (pacemaker)...
kvmx4.xxxx.xxx: Starting Cluster (pacemaker)...
 ・自動起動を設定
# pcs cluster enable --all
# systemctl enable corosync.service
# systemctl enable pacemaker.service
 ・動作確認
# pcs status     Cluster name: mail_cluster     WARNINGS:     No stonith devices and stonith-enabled is not false     Stack: corosync     Current DC: kvmx2 (version 1.1.21-4.el7-f14e36fd43) - partition with quorum     Last updated: Tue Oct 6 17:18:00 2020     Last change: Tue Oct 6 17:17:23 2020 by hacluster via crmd on kvmx2     2 nodes configured     0 resources configured     Online: [ kvmx1 kvmx2 ]     No resources     Daemon Status:      corosync: active/enabled      pacemaker: active/enabled      pcsd: active/enabled  ・WARNINGS(stonith)対応
# pcs property set stonith-enabled=false
 ・リソース設定