DRBDとHeartbeat [3] DRBDの設定
前回はDRBD及びHeartbeatの起動までを行いました。
今回は前回軽く触れたDRBDの設定について見ていきましょう。
以下が前回起動時に設定したDRBDの設定になります。
resource r0 {
protocol C;
syncer {
rate 100M;
}
on active.demo.com {
device /dev/drbd0;
disk /dev/mapper/vg00-drbddata;
address 192.168.100.10:7789;
meta-disk /dev/mapper/vg00-drbdmeta;
}
on standby.demo.com {
device /dev/drbd0;
disk /dev/mapper/vg00-drbddata;
address 192.168.100.20:7789;
meta-disk /dev/mapper/vg00-drbdmeta;
}
}
設定解説
それでは各設定の意味を解説していきます。
resource
resource r0 {
~
}
resourceセクションです。このリソースセクションの内部に同期に必要な設定を記述していきます。また、リソースは名前を定義する必要があります。今回の例ですと「r0」がリソース名となります。名前は任意に指定可能です。
protocol
protocol C
データの同期方式を指定します。「A」「B」「C」の3方式があり、それぞれ以下の特徴があります。
protocaol A | ローカルにデータを書き込み、リモートへデータを送った時点で書き込み終了と判断 |
---|---|
protocaol B | ローカルにデータを書き込み、リモートがデータの受信を確認した時点で書き込み終了と判断 |
protocaol C | ローカル及びリモートディスクの両方にデータを書き込んだことを確認した時点で終了と判断 |
ほとんどのケースで「B」もしくは「C」を利用することになるかと思います。
「B」はパフォーマンス、「C」は信頼性と考えて、利用する環境やサービスレベルに合わせて検討して下さい。
rate
syncer {
rate 100M;
}
syncerセクションです。このセクションでは同期デーモンに関するチューニングを行います。今回は「rate」のみを設定しています。
rateは同期作業で利用する帯域の制限を行います。例では「100M」としていますが、こちらも環境に合わせて設定を行って下さい。
on [hostname]
on active.demo.com {
~
}
DRBDデバイスを定義するためのセクションです。データの同期をとる各ノードの情報を設定します。
注意点として、hostname(例の場合「active.demo.com」)は「uname -n」の結果で表示されるhostnameでなければいけません。
device
device /dev/drbd0;
DRBDリソースに対応しているブロックデバイス名を指定します。大抵の場合、例のように「/dev/drbd0」でいいでしょう。
disk
disk /dev/mapper/vg00-drbddata;
DRBDで実際に読み書きするブロックデバイス名を設定します。
address
address 192.168.100.10:7789;
DRBDの同期に利用するIPアドレス及びポートを指定します。
meta-disk
meta-disk /dev/mapper/vg00-drbdmeta;
meta領域で使用するブロックデバイスを指定します。meta領域を作成しない場合、「meta-disk internal」と設定します。今回はmeta領域を別に作成しているため、この設定が必要となります。
以上がDRBDを起動する上で必要となる設定項目です。
実際に運用を行う際には上記設定のみでは不十分であり、下記のような様々な障害のケースを想定して設定を行う必要があります。
- DRBDの同期で利用していたネットワークの停止
- OS障害発生時(カーネルパニックなど)のDRBDの挙動
- スプリットブレイン(両方のノードがprimaryになる事態)の対策 など
次回はHeartbeatの設定について説明していきます。
■関連記事