ここで説明する手順で、
サービスが期限切れデータにアクセスすることを拒否するように、
DRBDを設定できます。
この機能を実装するheartbeatコンポーネントは、
DRBD outdate-peerデーモン(dopd)です。
これは、R1対応クラスタと
CRMクラスタの両方で同じ構成を使用して動作します。
![]() | 重要項目 |
|---|---|
最低でも2つの独立した
heartbeatの通信チャネルを設定しなければ、
|
dopdを有効にするには、
/etc/ha.d/ha.cfファイルに次の行を追加します。
respawn hacluster /usr/lib/heartbeat/dopd apiauth dopd gid=haclient uid=hacluster
使用するディストリビューションに応じて、dopdのパスを変更してください。
一部のディストリビューションとアーキテクチャでは、
正しいパスは/usr/lib64/heartbeat/dopdになります。
必要に応じてパスを変更し、ha.cfを対向ノードにコピーしたら、
/etc/init.d/heartbeat reloadを実行します。
heartbeatが設定ファイルを再度読み込みます。
これで、dopdプロセスが実行されていることを検証できます。
![]() | 注意 |
|---|---|
このプロセスを確認するには、ps ax | grep dopdを実行するか、 killall -0 dopdを使用します。 |
次の項目をDRBDリソース構成に追加します。
resource resource {
handlers {
outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
...
}
disk {
fencing resource-only;
...
}
...
}
dopdと同様に、システムアーキテクチャやディストリビューションによっては、
drbd-peer-outdaterバイナリは/usr/lib64/heartbeatに置かれます。
最後に、drbd.confを対向ノードにコピーし、
drbdadm adjust resourceを実行して、
リソースを再構成し、変更内容を反映します。
dopdセットアップが正しく機能しているかテストするには、
heartbeatサービスが正常に実行されているときに、
構成され接続されているリソースのレプリケーションリンクを遮断します。
ネットワークリンクを物理的に取り外すか、それが難しい場合は、
一時的な iptablesルールを挿入して、入ってくるDRBDトラフィックを遮断します。
![]() | 注意 |
|---|---|
この手順はテストしているリソースだけでなく、 有効なすべてのDRBDリソースに影響します。 |
この後で、リソースの接続状態
がConnectedから
WFConnectionに変ったことを確認できます。
数秒間待つと、ディスク状態
がOutdated/DUnknownに変化します。
これで dopdが機能していることを確認できます。
これ以降は、古いリソースをプライマリロールに切り替えようとしても失敗します。
物理リンクを接続するか、
一時的なiptablesルールを削除してネットワーク接続を再確立すると、
接続状態が Connectedに変化し、
すぐに SyncTargetになります
(ネットワーク遮断中に、プライマリノードで変化が起こった場合)。
短い同期期間があり、その後で、古いリソースに再度
UpToDate のマークが付きます。