LinuCレベル4 システムアーキテクト 可用性の設計 問3
可用性の設計/フェイルオーバークラスタサービスごとの特性に合わせた冗長化設計の考え方として、適切でないものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「可用性の設計」に対応。実際の試験問題ではありません)
- ADHCPサーバーを2台で冗長化する場合は、リース情報を同期するか、配布するアドレス範囲を重ならないよう分割する
- BDNSの権威サーバーは、リゾルバが複数のNSレコードを使い分けるため、VIPを使わず複数台を並べて冗長化できる
- CVRRPでVIPを引き継げばセッション状態やデータも一緒に引き継がれるので、ステートフルなサービスも追加の設計は不要である
- DkeepalivedでVIPを持つノードを決める際は、サービスプロセスの死活も監視し、プロセス障害時にもVIPを移すようにする
正解:C
解説
VRRPが引き継ぐのは仮想IPアドレス(VIP)の保持者だけで、アプリケーションのセッション状態やデータは移りません。ステートフルなサービスでは、データのレプリケーションや共有ストレージ、セッション情報の同期などを別途設計する必要があります。一方、DHCPのように複数台が同時に応答し得るサービスは、アドレスの二重払い出しを防ぐためにリース情報の同期かアドレス範囲の分割が必要です。DNSはプロトコル自体が複数のサーバーを前提にしているため、VIPを使わなくても冗長化できます。このように、フェイルオーバーの方式はプロトコルやサービスの性質に合わせて選びます。
選択肢ごとの解説
- A誤り(正しい記述)。DHCPを2台で動かす場合、同じアドレスを重複して払い出さないよう、フェイルオーバーによるリース情報の同期か範囲の分割が必要です。
- B誤り(正しい記述)。DNSではリゾルバが応答の無いサーバーを避けて別のNSに問い合わせるため、プロトコルの仕組みで冗長化できます。
- C正しい(誤っている記述)。VRRPが移すのはVIPだけで、セッション状態やデータは移らないため、ステートフルなサービスでは同期やレプリケーションの設計が別途必要です。
- D誤り(正しい記述)。ノードが生きていてもサービスプロセスが停止していれば通信は失敗するため、チェックスクリプトでプロセスも監視し、障害時に優先度を下げてVIPを移すのが一般的です。