Pacemaker + Corosync + DRBD でのクラスタ環境の構築 [CentOS]
・pacemaker-1.1.12-8.el6_7.2.i686
・corosync-1.4.7-2.el6.i686
・kmod-drbd84-8.4.7-1_1.el6.elrepo.i686
・drbd84-utils-8.9.5-1.el6.elrepo.i686
・OS: CentOS 6.7
1. 要件
Pacemaker + Corosync のクラスタリング環境に DRBD リソースを追加する。
2. DRBD の導入
(1) パッケージのインストール
下記のパッケージをインストールする。
・kmod-drbd84-8.4.7-1_1.el6.elrepo.i686
・drbd84-utils-8.9.5-1.el6.elrepo.i686
(2) DRBD の設定
/etc/drbd.d/{global_common.conf,r0.res} を下記のように変更する。
(詳細は備考を参照)
(a) 対象のノード
・vm2.private.net(192.168.0.22)
・vm3.private.net(192.168.0.23)
(b) ディスクのデバイス・パス
/dev/sdc1
(c) DRBD デバイス
/dev/drbd0
(d) タイムアウト値
wfc-timeout 30
3. DRBD の自動機能の停止
# chkconfig drbd off # chkconfig --list drbd
4. リソースの定義
(1) DRBD
# pcs resource create drbd ocf:linbit:drbd \ drbd_resource=r0 \ op monitor interval=20s ## Master/Slave 型のリソースとしての定義 # pcs resource master ms-drbd drbd \ master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
(2) ファイルシステム
# pcs resource create fs-drbd ocf:heartbeat:Filesystem \ device=/dev/drbd0 directory=/share-drbd fstype=ext3 \ op monitor interval=20s
(3) 既存リソースとの制約条件の設定
# pcs resource group add group-1 fs-drbd --before fs-nfs # pcs constraint colocation add master ms-drbd with group-1 INFINITY # pcs constraint order promote ms-drbd then start group-1 (補足) # pcs resource group list group-1: fs-drbd fs-nfs nfs-server vip-check vip
(4) その他
エラーが発生する場合には、当該リソースの故障履歴をクリアする。
(例) # pcs resource cleanup drbd # pcs resource cleanup fs-drbd # pcs resource cleanup ...
5. 備考
(1) DRBD の構築手順
cf. http://dan-project.blog.so-net.ne.jp/2016-05-10
Pacemaker + Corosyncのクラスタ環境での制約条件の設定 [CentOS]
そこで、以前実施した Pacemaker の構築手順の見直しを行った。
以下は、その際に気づいたことをまとめたものである。
[ソフトウェアのバージョン]
・pacemaker-1.1.12-8.el6_7.2.i686
・corosync-1.4.7-2.el6.i686
・OS: CentOS 6.7
1. リソースの制約条件
クラスタで管理するリソースには、下記のような制約条件を設定できる。
・リソースを起動するノードの選択方法
・リソースの起動順序
2. リソース間の制約条件の設定方法
(1) リソースを起動するノードの選択方法
# pcs constraint colocation add <res-id-1> with <res-id-2>
・リソース-2(res-id-2) と同じノードでリソース-1(res-id-1) を起動する。
(2) リソースの起動順序
# pcs constraint order <res-id-1> then <res-id-2>
・リソース-1(res-id-1) の後にリソース-2(res-id-2) を起動する。
(補足)
・リソースの数が多くなると、制約条件の管理が面倒になる。
・リソースグループを定義すると、制約条件の管理の手間を軽減できる。
3. リソースグループに適用される制約条件
・同じリソースグループのリソースは、同じノードで起動される。
・リソースグループの定義時に指定した順序でリソースが起動される。
・リソースグループの定義時に指定した逆順でリソースが停止される。
4. migration-threshold の設定
同一リソースの障害が何回発生した時にフェイルオーバーするかを指定できる。
リソースの失敗回数との比較結果により、対応方法が異なる。
・失敗回数が migration-threshold 未満: 当該リソースの再起動を実施
・失敗回数が migration-threshold 以上: フェイルオーバーを実施
(1) 設定
# pcs resource defaults migration-threshold=<count>
・デフォルト値: INFINITY (無限)
(2) 設定の確認
# pcs resource defaults
(3) 設定の削除
# pcs resource defaults migration-threshold=