LinuCレベル3 304試験の例題と解説
334.1 高可用性の概念と理論
■トピックの概要
このトピックの内容は以下の通りです。
<334.1 高可用性の概念と理論>
重要度 5
<説明>
高可用クラスタのプロパティと設計アプローチの理解
<主要な知識範囲>
最も重要なクラスタアーキテクチャの理解
復旧とクラスタ再編成メカニズムの理解
指定目的のための適切なクラスタアーキテクチャの設計
高可用性のアプリケーション視点
高可用性の操作上の考察
<重要なファイル、用語、ユーティリティ>
アクティブ/パッシブクラスタ、アクティブ/アクティブクラスタ
フェイルオーバークラスタ、ロードバランスクラスタ
シェアード・ナッシングクラスタ、シェアード・ディスククラスタ
クラスタリソース
クラスタサービス
クオーラム
フェンシング
スプリットブレイン
冗長性
平均故障間隔 (MTBF)
平均復旧時間 (MTTR)
サービス品質保証 (SLA)
ディザスタリカバリ
レプリケーション
セッション処理
■例題
スプリットブレインの説明として適切なものを選択してください。
1. 故障したノードを強制的に遮断する仕組みのこと
2. 複数のノードが稼動系として動作するクラスタ構成のこと
3. 複数のノードが意図せず稼動系として動作すること
4. 複数のノードで、同一の情報を共有すること
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「3. 複数のノードが意図せず稼動系として動作すること」です。
クラスタのモデルとしては、大きく2つに分けられます。
a. アクティブ/アクティブクラスタ
このモデルは、すべてのノードがサービスを行うモデルです。
どのノードでも同じサービスが提供できるため、単一ノードが故障しても
他のノードでサービスが継続できる構成です。
b. アクティブ/パッシブクラスタ
このモデルは、単一のノードがサービスを行うアクティブノードとして動作する構成です。
その他のノードは、アクティブノードが故障した時に切り替わるために待機しています。このノードをパッシブノードと呼びます。
どちらのモデルでも、同じサービスを提供するために、何らかの方法でデータを共有することが必要になります。方法としては、共有ディスクやディスクミラーリング、ソフトウェアのレプリケーションの機能を使うなど様々です。
また、クラスタを構成するすべてのノードの稼動状態を監視して、把握している必要があります。ノードの状態の監視は、一部のノードが監視の役割を担うこともあれば、すべてのノードがお互いの状態を監視することもあります。
ただ、この監視を行っている機構に故障が発生した場合に、お互いの状態が不明になる事態が発生します。例えばLAN経由で監視を行っているクラスタで、NICの故障やLANケーブルが断線してしまった場合などです。
この状態になると、以下のようなことが発生し、結果的にサービスに異常をきたします。
・アクティブ/パッシブクラスタであるにもかかわらず、複数ノードがアクティブノードとして動作する
・共有しているデータにノードごとの差異が発生し、一貫性が失われる
このような状態をスプリットブレインと呼びます。
スプリットブレインを防ぐためには、予めクラスタがクラスタとして動作するための、最小ノード数(クォーラム)を決めておき、最小ノード数を下回った場合に、クラスタサービスを制御するための、別の仕組みを用意するといった方法があります。
今回はスプリットブレインに焦点を当てて解説を行いましたが、クラスタのひとつの概念を理解するだけでも、クラスタを構成するための他の要素の知識が必要になります。クラスタの構成や全体像を理解し、細かい知識を肉付けしていくと、より理解が深まるでしょう。
■例題作成者 株式会社デージーネット ソリューション開発部 森 彰吾 氏