# yum install pacemaker pcs
passwd hacluster
systemctl start pcsd systemctl enable pcsd
# vi /etc/hosts IPアドレス1 node1 IPアドレス2 node2
ファイアウォールの無効化 # systemctl status stop firewalld
pacemakerのファイアウォール設定ファイルの有効化 # firewall-cmd --permanent --add-service=high-availability # firewall-cmd --reload
pcs cluster auth node1 node2 -u hacluster pcs cluster setup --name cluster名 node1 node2
pcs cluster start --all
設定値 | 意味合い | 主な設定例 |
property no-quorum-policy | quorumとは議決権(過半数票)の意味合い。通常quorum設定は3台以上のクラスタ構成時に意味をなし、3台中2台以上のマシンと通信できるマシンをクラスタとして動作させる時に効果を発揮する。2台構成時等quorumを取得できない時のクラスタ動作を規定する設定パラメタ。 | property no-quorum-policy="ignore" |
stonith-enabled | stonithを有効にするか否か。 | stonith-enabled="true" |
rsc_defaults resource-stickiness | リソースとノードの結びつきの強さを表す値。この値が小さいとリソースを動作させるノードが変わりやすい(promotionスコアが大きいノードが出てきたら、それがmasterになる)。この値が大きい(例:INFINITY)とノードが動いている限りリソースも同じノードで動き続ける。 | |
rsc_defaults migration-threshold | 何回のリソース故障で切り替えるか。 | rsc_defaults migration-threshold="3" |
group | リソースをグループにまとめる。 | group グループ名 リソース名 リソース名2 |
clone | 複製するリソースを記述。 | clone クローン名 クローン1 クローン2 |
primitive | リソースを定義 | primitive リソース名 ocf:heartbeat:RA名 |
pcs resource create リソース名 RA名 RAに渡すパラメータ op オペレーション時の設定
RA名 | 概要 | パラメータ例 |
ocf:heartbeat:IPAddr2 | 仮想IPアドレスを付与 | ip=IPアドレス nic=インタフェース名 cidr_netmask=CIDRの値 |
ocf:heartbeat:Filesystem | マウントするファイルシステムの設定 | device=マウント対象のデバイス名 directory=マウント先のディレクトリ fstype=ファイルシステムのタイプ |
ocf:heartbeat:apache | Apache | configfile=設定ファイルの指定 statusurl=死活判定のURL |
ocf:heartbeat:pgsql | Postgres | pgctl=pg_ctlの場所 psql=psqlの場所 pgdata=$PGDATAの場所 pgdba=Postgresの所有者 pgport=Postgresのlisteningポート pgdb=データベース名 |
ocf:pacemaker:ping | ping接続状態 | dampen=さらなる状態変化に備えた待ち時間(10s等) multiplier=ping接続できているノード分この数値を加算(1000等) host_list=接続状態を確認するのに使用するマシン |
systemd:systemdで管理しているサービス | systemd管理のサービスをリソースとする |
op start interval="0s" timeout="300s" on-fail="restart" #開始時の設定。startやstopは実行間隔がないのでintervalは0s op monitor interval="10s" timeout="60s" on-fail="restart" #監視時の設定。 op stop interval="0s" timeout="300s" on-fail="block" #終了時の設定。startやstopは実行間隔がないのでintervalは0s
# pcs constraint location リソースID rule prefers ノードA=スコア # pcs constraint location リソースID rule prefers ノードB=スコア ※ノードAの優先度をあげたい場合はノードAのスコア値を高くしておく。
# pcs constraint colocation add [master|slave] 制約を受けるリソースID with [master|slave] 先に配置が決定されるリソースID [スコア] [オプション]
# pcs constraint order [アクション] 先に実行するリソースID then [アクション] 後から実行するリソースID [オプション]
# corosync-keygen -l # scp -p /etc/corosync/authkey xxx@node2:/etc/corosync/authkey
# cp -p /usr/lib/systemd/system/corosync.service /etc/systemd/system # vi /etc/systemd/system/corosync.service ==== -#Restart=on-failure +Restart=on-failure -#RestartSec=70 +RestartSec=70 -#ExecStartPre=/sbin/modprobe softdog soft_margin=60 +ExecStartPre=/sbin/modprobe softdog ====
# cp -p /usr/lib/systemd/system/pacemaker.service /etc/systemd/system # vi /etc/systemd/system/pacemaker.service ==== -# ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync' +ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync' ====