none
2ノードのMNSクラスタで1台のノードに障害が発生した場合にクラスタが停止する理由 RRS feed

  • 質問

  • お世話になっております。

    現在、MSFCの構築のために障害対応について調査しているのですが、クラスタ障害についてMSの情報では”MNS クラスタの実行を継続するには、過半数のノード、すなわち (< クラスタを構成するノード数>/2) + 1 がオンラインでなければなりません。”とありました。
    この場合、2台構成の障害時には停止するとうことになりますが、なぜ、1台では稼動できないのでしょうか。

    素人考えでは、1台あれば継続稼動できそうに思えるのですが。
    何か情報をお持ちの方がいましたら、アドバイス願います。
    2009年5月1日 4:52

回答

  • チャブーンです。

    MNS (マジョリティノードセット) では、MNS が保持するクォーラムデータの整合性を保証する観点から、3 台以上のノードが基本的には必要です。

    クォーラムデータというのは MSCS のトランザクションデータとして、この整合性が保証されないとクラスタサービスが動作しないようになっています。通常は共有ディスク上に置かれますが、この場合ディスク1つでクォーラムを保持していますので、ディスクのデータが壊れない限り、クォーラムの整合性は確保できます。

    MNS では、クォーラムデータが複数のノード間にまたがって配置され、ネットワークによって 1 つのクォーラムと見なされます。そのため、その整合性は「他のMNSノードと通信して確認できる」ことを条件としているのです。それを満たさない場合、「保証されないクォーラムデータを使ってデータを壊さない」ため、クラスタは停止します。そのあたりの答えは、ここに書いてあるのではないでしょうか?

    なお、MNS ではコンピュータは 3 台以上必要ですが、MNS ノードのうちの 1 台を共有フォルダに置き換えることで、MNS ノード 2 台 + 共有フォルダ 1 台、で構成することが、Windows Server 2003 SP2 か SP1 + 修正プログラムでできるようになっています。昔こういう質問に答えたことがあります。
    2009年5月1日 8:10
    モデレータ

すべての返信

  • チャブーンです。

    MNS (マジョリティノードセット) では、MNS が保持するクォーラムデータの整合性を保証する観点から、3 台以上のノードが基本的には必要です。

    クォーラムデータというのは MSCS のトランザクションデータとして、この整合性が保証されないとクラスタサービスが動作しないようになっています。通常は共有ディスク上に置かれますが、この場合ディスク1つでクォーラムを保持していますので、ディスクのデータが壊れない限り、クォーラムの整合性は確保できます。

    MNS では、クォーラムデータが複数のノード間にまたがって配置され、ネットワークによって 1 つのクォーラムと見なされます。そのため、その整合性は「他のMNSノードと通信して確認できる」ことを条件としているのです。それを満たさない場合、「保証されないクォーラムデータを使ってデータを壊さない」ため、クラスタは停止します。そのあたりの答えは、ここに書いてあるのではないでしょうか?

    なお、MNS ではコンピュータは 3 台以上必要ですが、MNS ノードのうちの 1 台を共有フォルダに置き換えることで、MNS ノード 2 台 + 共有フォルダ 1 台、で構成することが、Windows Server 2003 SP2 か SP1 + 修正プログラムでできるようになっています。昔こういう質問に答えたことがあります。
    2009年5月1日 8:10
    モデレータ
  • こんにちは、フォーラムオペレーターの鈴木裕子です(^O^)/

    チャブーン さん、回答ありがとうございました!

    こま3 さん、その後いかがですか?
    ご投稿の質問については、チャブーン さんの回答が参考になられたのではと思いましたので、勝手ながら私のほうで[回答としてマーク]をつけさせていただきました。
    もちろん、疑問が解決していない場合や、不適当と思われた場合は、遠慮なくチェック解除してくださいね。

    これからも、技術者の皆様の情報交換の場としてForumをご活用ください!
    質問、コメントともどもお待ちしています(^-^)
    マイクロソフト株式会社 フォーラムオペレーター 鈴木裕子
    2009年5月28日 1:42
    モデレータ
  • ご存知であればそれでかまわないですが。
    ご参考として。

    Windowsのクラスタは、どのノードが処理を続行するかを多数決できめます。

    例えば、ノード数が6個のクラスタがあったとして、ある3台とほかの3台の間でネットワークが切れたとします。
    ただし、クォーラムディスクのある共有ストレージには、2nd NIC を通じて通信可能だとします。

    すると、どのノードも、引き続き共有ストレージにアクセス可能で、ノードそれぞれが「自分は大丈夫だ」と処理を続行しようとします。

    ここで多数決の登場です。
    ノードはそれぞれが他のノードと通信できることを監視しています。
    そして、ノード数の過半数と通信できた場合にだけ、処理を続行します。
    つまり、ノード数の半数以下としか通信できなくなったノードは、クラスタ内から外れたか、分断されたクラスタの少数側にいると判断します。

    ということで、稼動するノードが半数以下になるとクラスタ全体が成立しなくなります。

    下のページの真ん中くらいにある図も参照ください。
    http://technet.microsoft.com/ja-jp/library/cc731739(WS.10).aspx
    2009年5月28日 7:24