目次
この章では、DRBDの内部アルゴリズムと内部構造について、いくつかの背景情報を取り上げます。これは、DRBDの背景について関心のあるユーザが対象です。DRBD開発者が参考にできるほど深い内容には踏み込んでいません。開発者の方は「資料」に記載された文書やDRBDのソースコードのコメントを参照してください。
DRBDには、レプリケートするデータに関するさまざまな情報を専用領域に格納します。このメタデータには次のようなものがあります。
DRBDデバイスのサイズ
GI (Generation Identifier: 世代識別子) (詳細は「世代識別子」を参照)
AL (Activity Log: アクティビティログ) (詳細は「アクティビティログ」を参照)
クイック同期ビットマップ(詳細は「クイック同期ビットマップ」を参照)
このメタデータは内部または外部に格納されます。いずれの方法で格納するかは、リソースごとに設定できます。
内部メタデータを使用するようにリソースを設定すると、DRBDはメタデータを実際の本稼働データと同じ下位レベルの物理デバイスに格納します。デバイスの末尾の領域がメタデータを格納するための領域として確保されます。
メリット. メタデータは実際のデータと密接にリンクされているため、ハードディスクに障害が発生しても、管理者は特に何かする必要はありません。メタデータは実際のデータとともに失われ、ともに復元されます。
デメリット. RAIDセットではなく、下位レベルデバイスが唯一の物理ハードディスクの場合は、内部メタデータが原因で書き込みスループットが低下することがあります。アプリケーションによる書き込み要求の実行により、DRBDのメタデータの更新が引き起こされる場合があります。メタデータがハードディスクの同じ磁気ディスクに格納されている場合は、書き込み処理によって、ハードディスクの書き込み/読み取りヘッドが2回余分に動作することになります。
![]() | 注意 |
|---|---|
すでにデータが書き込まれているディスク領域を下位デバイスに指定してDRBDでレプリケートする場合で、内部メタデータを使うには、DRBDのメタデータに必要な領域を必ず確保してください。そうでない場合、DRBDリソースの作成時に、新しく作成されるメタデータによって下位レベルデバイスの末尾のデータが上書きされ、既存のファイルが破損します。以下のいずれかの方法でこれを避けることができます。
下位レベルデバイスをどの程度拡張するか、またはファイルシステムをどの程度縮小するかについては、 「メタデータサイズの見積り」を参照してください。 |
外部メタデータは、本稼働データを格納するものとは異なる個別の専用ブロックデバイスに格納します。
メリット. 一部の書き込み処理では、外部メタデータを使用することにより、待ち時間をいくらか短縮できます。
デメリット. メタデータが実際の本稼働データに密接にリンクされません。つまり、ハードウェア障害により本稼働データだけが破損したか、DRBD メタデータは破損しなかった場合、手動による介入が必要です。生き残ったノードから切り替えるディスクに、手動でデータの完全同期を行う必要があります。
次のすべての項目に該当する場合は、外部メタデータを使用する以外ありません。
DRBDでレプリケートしたい領域にすでにデータが格納されている。
この既存デバイスを拡張することができない。
デバイスの既存のファイルシステムが縮小をサポートしていない。
デバイスのメタデータを格納する専用ブロックデバイスが必要とするサイズについては、「メタデータサイズの見積り」を参照してください。