heartbeatとdopdの使用

ここで説明する手順で、 サービスが期限切れデータにアクセスすることを拒否するように、 DRBDを設定できます。 この機能を実装するheartbeatコンポーネントは、 DRBD outdate-peerデーモン(dopd)です。 これは、R1対応クラスタCRMクラスタの両方で同じ構成を使用して動作します。

[重要項目]重要項目

最低でも2つの独立した heartbeatの通信チャネルを設定しなければ、 dopdは正しく機能しません。

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の構成

次の項目を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機能のテスト

dopdセットアップが正しく機能しているかテストするには、 heartbeatサービスが正常に実行されているときに、 構成され接続されているリソースのレプリケーションリンクを遮断します。 ネットワークリンクを物理的に取り外すか、それが難しい場合は、 一時的な iptablesルールを挿入して、入ってくるDRBDトラフィックを遮断します。

[注意]注意

この手順はテストしているリソースだけでなく、 有効なすべてのDRBDリソースに影響します。

この後で、リソースの接続状態 Connectedから WFConnectionに変ったことを確認できます。 数秒間待つと、ディスク状態 Outdated/DUnknownに変化します。 これで dopdが機能していることを確認できます。

これ以降は、古いリソースをプライマリロールに切り替えようとしても失敗します。

物理リンクを接続するか、 一時的なiptablesルールを削除してネットワーク接続を再確立すると、 接続状態が Connectedに変化し、 すぐに SyncTargetになります (ネットワーク遮断中に、プライマリノードで変化が起こった場合)。 短い同期期間があり、その後で、古いリソースに再度 UpToDate のマークが付きます。