過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト 高可用性プラットフォームの構築 問19

高可用性プラットフォームの構築/フェイルオーバークラスタの構築

2ノードのPacemakerクラスタで、/etc/corosync/corosync.conf の quorum セクションに「provider: corosync_votequorum」とともに「two_node: 1」を指定した。この設定の説明として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「高可用性プラットフォームの構築」に対応。実際の試験問題ではありません)

正解:C

解説

votequorumでは通常、過半数の票が無いとクォーラムを得られないため、2ノードでは1台が停止すると残りの1台もクォーラムを失います。two_node: 1 を指定すると、2ノード構成に限って1台だけでもクォーラムを保てるようになります。このとき wait_for_all が既定で有効になり、クラスタの起動時には両ノードがそろうまでクォーラムを得ないため、起動直後に互いを認識できないまま両方が動き出す事態を防ぎます。ノード間の通信が途絶えた場合は両方がクォーラムを持つことになるため、どちらを残すかはフェンシング(STONITH)で決めます。

選択肢ごとの解説

  • A誤り。通信経路の冗長化はtotemやnodelistのリンク(ring0_addr・ring1_addr等)で設定するもので、two_nodeの役割ではありません。
  • B誤り。two_nodeは片方の投票権をなくす設定ではなく、2ノードの両方が投票に参加したまま1台でもクォーラムを保てるようにします。
  • C正しい。1台でもクォーラムを保てるようになり、既定で有効になるwait_for_allにより起動時は両ノードの参加を待ちます。
  • D誤り。クォーラムを失ったときの動作はPacemakerのno-quorum-policyで決まり、two_nodeは両ノードでのリソース起動を許す設定ではありません。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く