LinuCレベル4 システムアーキテクト 可用性の設計 問11
可用性の設計/フェイルオーバークラスタ6台のノードで構成する分散ストレージで、各データを別々の3台に複製して保持している。1台のノードが故障しても人手を介さずに3重の冗長度を回復させたく、回復の間も業務のI/O性能の低下を抑えたい。設計として最も適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「可用性の設計」に対応。実際の試験問題ではありません)
- A容量の効率を優先して各ノードの使用率を9割程度まで高め、故障時に再複製のデータを受け入れる空きは特に見込まずに運用する
- B故障した1台分のデータを残りのノードへ再複製できる空き容量を確保し、再複製の転送速度には上限を設けて業務I/Oとの競合を抑える
- C故障したノードを修理して戻すまでは再複製を行わない設定にし、その間は残った2つの複製だけで業務の読み書きを続けて運用する
- D冗長度を少しでも早く戻すため、再複製の転送を業務のI/Oより常に優先させ、帯域の上限も設けずに最大の速度で実行させる
正解:B
解説
分散ストレージでは、ノードが故障すると失われた複製を残りのノードに作り直すことで冗長度を自動的に回復させます。そのためには、故障した1台分のデータを受け入れられる空き容量をあらかじめ残りのノードに確保しておく必要があり、使用率を上限近くまで高めると再複製の途中で容量が尽きます。また、再複製は大量のディスクI/Oとネットワーク転送を伴うため、速度を無制限にすると業務のI/Oが大きく劣化します。回復の速さと業務への影響のバランスを取るよう、再複製の帯域や並列度に上限を設けるのが一般的です。
選択肢ごとの解説
- A誤り。空きが少ないと故障時に再複製先の容量が足りず、冗長度を回復できないうえ、残りのノードが満杯になって書き込みが止まるおそれもあります。
- B正しい。再複製を受け入れる容量を確保して自動回復を可能にし、転送速度を制限して業務I/Oへの影響も抑えられます。
- C誤り。計画的な保守の間だけ再複製を止める運用はありますが、故障時にこうすると冗長度が下がったままになり、人手を介さずに回復させる要件を満たしません。
- D誤り。回復は早まりますが、再複製のI/Oと転送が業務のI/Oを圧迫し、回復中の性能低下を抑える要件を満たしません。