LinuCレベル3 304試験の例題と解説

335.1DRBD / cLVM

LinuCレベル3 304試験の試験範囲から「335.1 DRBD / cLVM」についての例題を解いてみます。
このテーマには、冗長化データを管理するためのDRBDやPacemakerなどに関する知識が含まれます。実践の場において、停止・データ消失などが発生するとシステムへの影響が大きいデータベースサーバなどでよく用いられるので、しっかりと内容を把握しておきましょう。

Linucレベル3 304試験 出題範囲


例題

DRBDのレプリケーションモードにおいて、プライマリノード・セカンダリノードいずれのディスクにもデータ書き込みが完了した時点で、書き込み完了と判断されるものはどれか。

  1. プロトコルA
  2. プロトコルB
  3. プロトコルC
  4. プロトコルB、およびプロトコルC

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、「3.プロトコルC」です。

DRBDは、Distributed Replicated Block Deviceの略で、複数ノードにおける冗長ディスクを構成するソフトウェアです。

DRBDのレプリケーションモードには、以下の3種類が用意されています。

プロトコルA
非同期レプリケーションプロトコル。プライマリノードでのディスクへの書き込みは、自機のディスクに書き込んだ上でレプリケーションパケットを自機のTCP送信バッファに送った時点で、完了したと判断されます。システムクラッシュなどの強制的なフェイルオーバが起こると、データを紛失する可能性があります。クラッシュが原因となったフェイルオーバが起こった場合、待機系ノードのデータは整合性があると判断されますが、クラッシュ直前のアップデート内容が反映されない可能性があります。プロトコルAは、遠隔地へのレプリケーションに最も適しています。

プロトコルB
メモリ同期(半非同期)レプリケーションプロトコル。プライマリノードでのディスクへの書き込みは、自機のディスクに書き込んだ上でレプリケーションパケットが他機に届いた時点で、完了したと判断されます。通常、システムクラッシュなどの強制的なフェイルオーバでのデータ紛失は起こりません。しかし、両ノードに同時に電源障害が起こり、プライマリノードのストレージに復旧不可能な障害が起きると、プライマリ側にのみ書き込まれたデータを失う可能性があります。

プロトコルC
同期レプリケーションプロトコル。プライマリノードでのディスクへの書き込みは、両ノードのディスクへの書き込みが終わった時点で完了したと判断されます。このため、どちらかのノードでデータを失っても、系全体としてのデータ紛失には直結しません。当然ながら、このプロトコルを採用した場合であっても、両ノードまたはそのストレージサブシステムに復旧できない障害が同時に起こると、データは失われます。

一般的には、プロトコルCが用いられることが多いですが、耐障害性・処理のレイテンシ(待ち時間)を考慮して、どのプロトコルを使用するか判断する必要があります。

耐障害性:プロトコルC > プロトコルB > プロトコルA
処理のレイテンシ:プロトコルA > プロトコルB > プロトコルC

また、プロトコルを設定する場合、設定ファイルにおいて以下のように設定します。

/etc/drbd.d/global_common.conf
global {
  usage-count yes;
}
common {
  net {
    protocol C;
  }
}

なお、DRBDの機能や設定の詳細については、以下のリンクで確認することができます。

DRBDの機能(レプリケーションモードなど)について
https://blog.drbd.jp/drbd-users-guide-8.4/ch-features.html

DRBDの設定について
https://blog.drbd.jp/drbd-users-guide-8.4/ch-configure.html#s-drbdconf-global


例題作成者

鯨井 貴博
(LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 Zeus IT Camp)

ページトップへ