しおり
CentOS6.5でDRBD8.4を使ってみる - vol.0 準備編
CentOS6.5でDRBD8.4を使ってみる - vol.1 インストール編
CentOS6.5でDRBD8.4を使ってみる - vol.2 Corosync設定編
CentOS6.5でDRBD8.4を使ってみる - vol.3 DRBD初期設定編
CentOS6.5でDRBD8.4を使ってみる - vol.4 CRM設定編
CRMの設定
最低限の設定
DRBDをPacemakerで制御する最低限の設定をします。
CRM Shellで次のように入力していきます。
途中でWARNINGが表示されますが、 WARNING: drbd: default timeout 20s for start is smaller than the advised 240 というようなものであれば問題ありません。
primitive drbd ocf:linbit:drbd params drbdconf=/etc/drbd.conf drbd_resource=r0 \
op monitor interval=10 role=Slave \
op monitor interval=11 role=Master \
op stop on-fail=block
ms ms-drbd drbd meta notify=true
commit
exit
primitive drbd 行は長いのでバックスラッシュ(表示によっては円マーク)で行を分割しています。
ここではDRBDのリソース r0 を制御するPacemakerのリソースdrbdを作成し、 ms でMaster/Slaveモードで動作するように設定しています。
Master/Slaveモードは「両方のノードでリソースを同時に起動しつつ、MasterやSlaveの状態を導入し管理する」モードです。
Slave で動作している場合には監視間隔を10秒、 Master で動作している場合には監視間隔を11秒に設定しています。
Master で動作していても Slave で動作していても状態を監視する設定なのですが、秒数を変えているのは単純に「同じ秒数だと設定が通らない」ためです。
内部的に op を リソース名-アクション-インターバル という書式のIDで管理しているのが原因です。
ms ms-drbd で notify=true としていますが、これはノードの参加や脱退、リソースの起動といったイベントごとに、 ms-drbd リソースに判断をさせるための設定です。
crm_mon -Ar を実行して次のようになっていれば成功です。
============
Last updated: Sun Aug 31 19:50:01 2014
Stack: openais
Current DC: drbd1 - partition with quorum
Version: 1.0.13-a83fae5
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ drbd1 drbd2 ]
Full list of resources:
Master/Slave Set: ms-drbd
Masters: [ drbd1 ]
Slaves: [ drbd2 ]
Node Attributes:
* Node drbd1:
+ master-drbd:0 : 10000
* Node drbd2:
+ master-drbd:1 : 10000
ファイルシステムマウント
Pacemakerにファイルシステムをマウントさせる設定をします。
/dev/drbd0 が マウントされていない ことを確かめておいてください。
Pacemakerに /dev/drbd0 上のファイルシステムをマウントさせるためには、DRBDリソースが Primary でなくてはなりません(同居制約;colocation)。
CRM Shellで次の設定を行います。
primitive filesystem ocf:heartbeat:Filesystem params run_fsck=no device=/dev/drbd0 directory=/mnt/drbd fstype=ext4 \
op monitor interval=15 \
op stop on-fail=ignore
colocation drbd-fs-colocation inf: filesystem ms-drbd:Master
order drbd-fs-order inf: ms-drbd:promote filesystem:start
commit
primitive filesystem については見たとおりですが、リソースの停止に失敗しても無視して処理を継続させます( op stop on-fail=ignore )。
colocation は上で述べた条件(同居制約)を実現するものです。
drbd-fs-colocation と名前をつけて、制約をかけています。
「 filesystem リソースが動作するのは、必ず( inf: ) ms-drbd リソースが Master ロールを持っている( ms-drbd:Master )ノード」というものです。
order はリソースの起動順序を制御するものです。
drbd-fs-order と名前をつけており、この順序を強制( inf: )しています。
ms-drbd リソースを昇格させ( ms-drbd:promote )、つづいて filesystem リソースを起動( filesystem:start )させます。