DRBDのすべてのリソースは、 プライマリ または セカンダリ のどちらかのロール(役割)を持っています。
![]() | 注記 |
|---|---|
「プライマリ」と「セカンダリ」という用語は適当に選んだものではないことを理解してください。DRBD開発者は意図的に「アクティブ」と「パッシブ」という用語を避けました。プライマリとセカンダリは、ストレージの可用性に関する概念です。一方アクティブとパッシブはアプリケーションの可用性に関わる概念です。ハイアベイラビリティクラスタ環境では、一般的にアクティブノードのDRBDはプライマリになりますが、これが例外のないルールだということではありません。 |
プライマリロールのDRBDデバイスでは、データの読み込みと書き込みが制約なく行えます。この状態のストレージに対して、ファイルシステムを作成したりマウントでき、ブロックデバイスに対する下位デバイスI/OやダイレクトI/Oすら可能です。
セカンダリロールのDRBDデバイスは、対向するノードでのすべてのデータの更新を受け取りますが、自ノードのアプリケーションからのアクセスは、読み込みと書き込みの両方とも一切受け付けません。読み込みすら受け付けない理由は、キャッシュの透過性を保証するためです。もしもセカンダリリソースが自ノードからのアクセスを受け付けると、この保証ができなくなります。
リソースのロールは、もちろん手動で切り替えられる他に、クラスタ管理アプリケーションの何らかのアルゴリズムによって自動で切り替えられます。セカンダリからプライマリへの切り替えを 昇格 と呼びます。一方プライマリからセダンダリの切り替えは 降格と呼びます。