LinuCレベル3 プラットフォームスペシャリスト 仮想化基盤のネットワークとストレージ 問18
仮想化基盤のネットワークとストレージ/クラスタ・分散ストレージの理解DRBDで同期している2ノードのデバイス /dev/drbd0 を、両方のノードで同時にPrimaryにして、それぞれのノードからマウントして読み書きしたい。この構成の説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「仮想化基盤のネットワークとストレージ」に対応。実際の試験問題ではありません)
- Aリソースの設定でallow-two-primariesを有効にし、OCFS2やGFS2等のクラスタファイルシステムを使う必要がある
- B両ノードでPrimaryにすれば、ext4やXFSのままでもDRBDが書き込みを調停するため、そのまま同時にマウントできる
- CDRBDは片方のノードしかPrimaryにできない仕様のため、同時に読み書きするにはLustreへ置き換えるしかない
- D両ノードを同時にPrimaryにするには非同期のProtocol Aを選ぶ必要があり、同期型のProtocol Cでは設定できない
正解:A
解説
DRBDは通常、一方のノードだけをPrimaryにして使いますが、リソースのnetセクションで allow-two-primaries を有効にすると、両ノードを同時にPrimary(デュアルプライマリ)にできます。ただしDRBDはブロック単位で複製するだけで、ファイルシステムのロックは調停しません。そのため両ノードから同時にマウントするには、OCFS2やGFS2のように分散ロックを持つクラスタファイルシステムが必要です。ext4やXFSを両ノードで同時にマウントすると、互いのキャッシュやメタデータの更新が食い違い、ファイルシステムが壊れます。デュアルプライマリは同期型のProtocol Cで使うのが前提で、フェンシングの設定も欠かせません。
選択肢ごとの解説
- A正しい。allow-two-primariesでデュアルプライマリにし、分散ロックを持つクラスタファイルシステムと組み合わせます。
- B誤り。DRBDはブロックの複製だけを行い、ファイルシステムの排他制御はしないため、ext4やXFSを同時にマウントすると壊れます。
- C誤り。allow-two-primariesを有効にすれば、DRBDでも両ノードを同時にPrimaryにできます。
- D誤り。デュアルプライマリは同期型のProtocol Cで使うことが前提で、非同期のProtocol Aでは使えません。