LinuCレベル4 システムアーキテクト 可用性の設計 問29
可用性の設計/フェイルオーバークラスタPacemakerで定義した3リソース(ファイルシステムマウント fs、データベース pgsql、仮想IPアドレス vip)の管理設定について、説明として適切でないものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「可用性の設計」に対応。実際の試験問題ではありません)
- A3リソースをgroupリソースとしてまとめると、グループ内のリソースは定義順に起動し逆順に停止するため、colocation制約とorder制約を個別に設定しなくてもグループとして連動する
- Bpgsqlとvipをfsと同じノードで必ず動かすには、colocation制約でpgsqlとvip各々をfsと同居するよう設定しscore=INFINITYとする
- Ccolocation制約で2リソースを同居させると起動順序の保証も自動的に行われるため、同居しているリソース間にはorderを追加で設定しなくても依存順序で起動される
- Dfs→pgsql→vipの順で起動させるには、orderによる順序制約をfs-before-pgsqlとpgsql-before-vipの2つ設定する
正解:C
解説
colocation制約はリソースを同じノードに配置することを強制するが、起動順序の制御は行わない。起動順序はorder制約で別途定義する必要がある。colocationとorderは独立した制約であり、colocationを設定しても「どちらが先に起動するか」は保証されない。groupリソースにまとめた場合は内部的に順序と同居が保証されるが、colocation単体では順序の保証は生まれない。
選択肢ごとの解説
- A誤り。Pacemakerのgroupリソースは内部のリソースを宣言順に起動し逆順に停止する。同じグループ内のリソースは同じノードで動作する。この挙動はgroupに暗黙のcolocationとorderが設定されたものと等価であり、正しい記述。
- B誤り。colocation制約はscore=INFINITYを指定することで強制的な同居を意味する。複数のリソースをfsと同居させる場合はそれぞれに制約を設ける手順は正しい記述。
- C正しい。colocation制約は同居の強制であり起動順序の制御は含まない。同居していても、fsが起動してからpgsqlが起動するといった順序は保証されない。起動順序はorder制約で別途定義しなければならない。この記述が誤り。
- D誤り。order制約でリソース間の起動順序を定義する方法は正しい。fs→pgsql→vipの順を2つのorder制約で表現する手順は適切。