設定や有効化を行う必要はありません。DRBDはローカル(下位の)ストレージシステムがそれらのコマンドをサポートしていることを検出すると、自動的に利用します。その効果の例をあげると、大部分または全てのストレージ領域が無効になったとDRBDに伝えることで(DRBDはこれをすべての接続しているノードにリレーします)、比較的最近のmkfs.ext4であれば、初期同期時間を数TBのボリュームでも数秒から数分ほどに短縮することができます。要求ではなく、フル同期を行います。効果を持つことがあります。サポートしていなくても、LVMのシンプロビジョニングボリュームなどの仮想ブロックデバイスでも同様の機能を提供しています。ディスクエラー処理ストラテジーどちらかのノードのDRBD下位ブロックデバイスがI/Oエラーを返したときに、DRBDがそのエラーを上位レイヤ(多くの場合ファイルシステム)に伝えるかどうかを制御できます。I/Oエラーを伝えるpass_onを設定すると、下位レベルのエラーをDRBDはそのまま上位レイヤに伝えます。したがって、そのようなエラーへの対応(ファイルシステムをリードオンリーでマウントしなおすなど)は上位レイヤに任されます。このモードはサービスの継続性を損ねることがあるので、多くの場合推奨できない設定だといえます。設定すると、最初の下位レイヤでのI/Oエラーに対して、DRBDは自動的にそのレイヤを切り離します。上位レイヤにI/Oエラーは伝えられず、該当ブロックのデータはネットワーク越しに対向ノードに書き込まれます。その後DRBDはディスクレスモードと呼ばれる状態になり、すべてのI/Oは対向ノードに対して読み込んだり、書き込むようになります。このモードでは、パフォーマンスは犠牲になりますが、サービスは途切れることなく継続できます。都合のいい任意の時点でサービスを対向ノードに移動させることができます。I/Oエラー処理方針を設定する方法についてはI/Oエラー処理方針の設定を参照してください。不整合とは、いかなる方法でもアクセスできずしたがって利用できないデータ状態です。進行中の同期先のデータが不整合データの例です。この場合、ノードのデータは部分的に古く、部分的に新しくなっており、ノード間の同期は不可能になります。下位デバイスの中にファイルシステムが入っていたら、このファイルシステムは、マウントはもちろんチェックも実行できません。無効データは、セカンダリノード上のデータで、整合状態にあるもののプライマリ側と同期していない状態のデータをさします。一時的か永続的かを問わず、レプリケーションリンクが途切れたときに、この状態が生じます。リンクが切れている状態でのセカンダリ側の無効データは、クリーンではあるものの、対向ノードのデータ更新が反映されず古いデータ状態になっている可能性があります。サービスが無効データを使ってしまうことを防止するために、DRBDは無効データをプライマリに切り替えることを許可しません。DRBDにはネットワークの中断時にセカンダリノードのデータを無効に設定するためのインタフェースがあります。DRBDは無効データをアプリケーションが使ってしまうことを防止するために、このノードがプライマリになることを拒絶します。本機能の完全は実装は、DRBDレプリケーションリンクから独立した通信経路を使用するPacemakerクラスタ管理フレームワーク用になされていますが、しかしこのAPIは汎用的なので、他のクラスタ管理アプリケーションでも容易に本機能を利用できます。レプリケーションリンクが復活すると、無効に設定されたリソースの無効フラグは自動的にクリアされます。バックグラウンド同期が実行されます。DRBD無効化デーモン(dopd)を参照ください。3ノードレプリケーションこの機能はDRBDバージョン8.3.0以上で使用可能ですが、DRBDバージョン9.xでは単一階層で複数ノードが使用可能のため非推奨です。ネットワークコネクションの定義をご参照ください。3ノードレプリケーションとは、2ノードクラスタに3番目のノードを追加してDRBDでレプリケーションするものです。この方法は、バックアップやディザスタリカバリのために使われます。Proxyによる遠距離レプリケーションの内容も関係します。することによって実現されます。次の図を参照してください。DRBDリソーススタッキング下位リソースのレプリケーションには同期モード(DRBDプロトコルC)を使いますが、上位リソースは非同期レプリケーション(DRBDプロトコルA)で動作させます。3ノードレプリケーションは、常時実行することも、オンデマンドで実行することもできます。常時レプリケーションでは、クラスタ側のデータが更新されると、ただちに3番目のノードにもレプリケートされます。オンデマンドレプリケーションでは、クラスタシステムとバックアップサイトの通信はふだんは停止しておき、cronなどによって定期的に夜間などに同期をはかります。Proxyによる遠距離レプリケーションDRBDのプロトコルAは非同期モードです。参照ください)、アプリケーションからの書き込みはブロックされてしまいます。帯域幅が狭いネットワークを通じて書き込みデータが対向ノードに送られるまで、そのデータを書き込んだアプリケーションは待たなければなりません。平均的な書き込み帯域幅は、利用可能なネットワークの帯域幅によって制約されます。ソケットの出力バッファに収まるデータ量までのバースト的な書き込みは、問題なく処理されます。Proxyのバッファリング機構を使って、この制約を緩和できます。Proxyのバッファに格納されます。Proxyのバッファサイズは、アドレス可能空間や搭載メモリの範囲内で自由に設定できますデータ圧縮を行うように設定することも可能です。圧縮と伸長(解凍)は、応答時間をわずかに増やしてしまいます。ネットワークの帯域幅が制約要因になっているのなら、転送時間の短縮効果は、圧縮と伸長(解凍)によるオーバヘッドを打ち消します。圧縮伸長(解凍)機能は複数CPUによるSMPシステムを想定して実装され、複数CPUコアをうまく活用できます。多くの場合、ブロックI/Oデータの圧縮率は高く、帯域幅の利用効率は向上します。Proxyを使うことによって、DRBDプロトコルBまたはCを使うことも現実的なものとなります。Proxyの使用を参照ください。ProxyはオープンソースライセンスによらないDRBDプロダクトファミリの製品になります。トラック輸送によるレプリケーショントラック輸送(またはディスク輸送)によるレプリケーションは、ストレージメディアを遠隔サイトに物理的に輸送することによるレプリケーションです。以下の制約がある場合に、この方法はとくに有効です。合計のレプリケート対象データ領域がかなり大きい(数百GB以上)予想されるレプリケートするデータの変更レートがあまり大きくない利用可能なサイト間のネットワーク帯域幅が限られているこのような状況にある場合、トラック輸送を使わなければ、きわめて長期間(数日から数週間またはそれ以上)の初期同期が必要になってしまいます。詳細はトラックベースのレプリケーションの使用を参照ください。動的対向ノードこの記述方法はDRBDバージョン8.3.2以上で使用できます。動的対向ノードを設定すると、DRBDの対向同士は(通常設定の)特定のホスト名を持つノードには接続せず、いくつかのホスト間を動的に選択して接続するする事ができます。この設定において、DRBDは対向ノードをホスト名ではなくIPアドレスで識別します。動的対向ノードの設定については2セットのSANベースPacemakerクラスタ間をDRBDでレプリケートを参照ください。データ再配置(ストレージの水平スケール)例えば、会社のポリシーで3重の冗長化が要求される場合、少なくとも3台のサーバが必要になります。データ量が増えてくると、サーバ追加の必要性に迫られます。上の図では、3ノードの各々に25TiBのボリュームがある合計75TiBの状態から、4ノードで合計100TiBの状態にしています。これらはDRBD9ではオンラインで行うことができます。実際の手順についてはデータ再配置ご覧ください。新しいユースケースが追加されました。3〜4、またはそれ以上(冗長化の要件に応じて)で構成できます。DRBD9はそれ以上でも接続することができます。実行されるすべての書き込み要求は、ストレージを備えたすべてのノードに送られます。読み込み要求は、サーバーノードの1つにのみ送られます。使用可能なすべてのサーバーノードに均等に読み読み要求を送ります。オプションを使用してください。クォーラムスプリットブレインまたは複製データの分離を回避するためには、フェンシングを構成する必要があります。ノードのフェンシングは実際の配備であまり人気がありません。これは計画や配備でミスが発生しやすいからです。データセットに3つの複製をもつことで、Pacemakerレベルのフェンシングに変わってDRBDのクォーラム実装を使用することができます。Pacemakerはリソースのマスタースコアを通してクォーラムまたはクォーラム喪失の通知を受け取ります。DRBDのクォーラムはあらゆる種類のLinuxベースのサービスで使用できます。IOエラーによりサービスが終了する瞬間など、クォーラム喪失の動作はとてもよくできています。IOエラーでサービスが終了しないときは、クォーラム喪失したプライマリノードをリブートするようシステもを構成する必要があります。タイブレーカークォーラムタイブレーカー機能は、DRBDバージョン9.0.18以降で使用できます。2つのノードクラスタの基本的な問題は、それらが接続性を失うと同時に2つのパーティションを持ち、それらのどちらもクォーラムを持たず、その結果クラスタサービスが停止することです。この問題は、クォーラムタイブレーカーとして機能する3つ目のディスクレスノードをクラスターに追加することで軽減できます。オープンソースであるPacemakerの代替となる商用製品です。LINBIT社が提供するパッケージDRBDプロジェクトのスポンサー企業であるLINBIT社は、商用サポート対象のお客様向けにDRBDバイナリパッケージを提供しています。yum,その他用)から利用でき、「公式」DRBDビルドです。これらのビルドは次のディストリビューションで入手できます。Beaver)他のディストリビューションのビルドも用意していますが、十分なテストは経ていません。LINBIT社では、新規のDRBDソースのリリースと並行してバイナリビルドをリリースしています。update`(アップグレードの場合)コマンドを呼び出すことで簡単に行えます。イメージLINBITは商用サポートカスタマー向けにDockerレポジトリを提供します。経由でアクセスします。イメージを取得する前にレポジトリにログインする必要があります。drbd.ioログインに成功するとイメージを取得できます。ログインしてテストするには以下のコマンド実行してください。ディストリビューションベンダが提供するパッケージコンパイル済みバイナリパッケージを含め、いくつかのディストリビューションでDRBDが配布されています。これらのパッケージに対するサポートは、それぞれのディストリビュータが提供します。リリースサイクルは、DRBDソースのリリースより遅れる場合があります。DRBD.SLESの場合、DRBDは通常はYaST2のソフトウェアインストールコンポーネントによりインストールされます。Availabilityパッケージセレクションに同梱されています。コマンドラインを使用してインストールする場合は、次のコマンドを実行します。9はEPEL等から探してください。この際には、正しいリポジトリが有効である必要があります。LTS用にPPAリポジトリを提供しています。詳細は以下をご確認ください。レポジトリのスナップショットです。スクリプト、あるいはその他の生成されるファイルが不足しているかもしれません。