So-net無料ブログ作成

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) 
共通テーマ:パソコン・インターネット