SSブログ

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



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Pacemaker + Corosyncのクラスタ環境での制約条件の設定 [CentOS]

Pacemaker + Corosync のクラスタ環境に DRBD リソースを追加することになった。
そこで、以前実施した 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=


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。