無効データの処理ストラテジー

DRBDはデータの無効状態(Outdated)と不整合状態(Inconsistent)を区別します。不整合とは、いかなる方法でもアクセスできずしたがって利用できないデータ状態です。たとえば、進行中の同期先のデータが不整合データの例です。この場合、ノードのデータは部分的に古く、部分的に新しくなっており、ノード間の同期は不可能になります。下位デバイスの中にファイルシステムが入っていたら、このファイルシステムは、マウントはもちろんチェックも実行できません。

無効データは、セカンダリノード上のデータで、整合状態にあるもののプライマリ側と同期していない状態のデータをさします。一時的か永続的かを問わず、レプリケーションリンクが途切れたときに、この状態が生じます。リンクが切れている状態でのセカンダリ側の無効データは、クリーンではあるものの、対向ノードのデータ更新が反映されず古いデータ状態になっている可能性があります。サービスが無効データを使ってしまうことを防止するために、 DRBDは無効データをプライマリに切り替えることを許可しません。

ネットワークの中断時にセカンダリノードのデータを無効に設定するためのインタフェースをDRBDは提供しています。このための通信には、 DRBDのレプリケーションリンクとは別のネットワーク通信チャネルを使います。DRBDは無効データをアプリケーションが使ってしまうことを防止するために、このノードがプライマリになることを拒絶します。Heartbeatクラスタ管理フレームワークに本機能の完全な実装が入っています。しかしこのAPIは汎用的なので、他のクラスタ管理アプリケーションでも容易に本機能を利用できます。

レプリケーションリンクが復活すると、無効に設定されたリソースの無効フラグは自動的にクリアされます。そして、バックグラウンド同期が実行されます。

無効データをうっかり使ってしまうことを防止するための設定例については、 DRBD無効化デ ーモン(dopd)を参照してください。