フェイルオーバークラスタが落ちるのは、たいていノードが壊れたときではなく「多数決の数え方」を読み違えたときです。クォーラムとCSVの内部動作を、Microsoft Learnを引きながら現場目線で整理します。

フェイルオーバークラスタリングは「ノードを足せば冗長になる」という単純な話ではありません。むしろ、ノードを足したことで投票数が偶数になり、たった1ノードの計画停止でクラスタごと落ちる——そんな事故が現場では起こります。本稿では、Windows Server 2025世代のフェイルオーバークラスタを対象に、クォーラム(多数決)とWitness、動的クォーラム、そしてHyper-V/S2Dの心臓部であるCSV(クラスター共有ボリューム)の内部動作を、実際に手を動かした立場から掘り下げます。値やサポート範囲はバージョン依存があるため、要所では必ずMicrosoft Learnで最新を確認してください。

01なぜクォーラムが要るのか — スプリットブレイン回避

クラスタの本質は「ノードの多数決で、生き残る側を1つに絞る」ことです。ネットワークが分断され、ノードの部分集合どうしが通信できなくなったとき、両方の集合が「自分こそが本物のクラスタだ」と思い込んで同じディスクに書き込みにいくと、データが壊れます。これがスプリットブレインです。

Microsoft Learnは、この状況をこう説明しています。「クラスタは一般に半数を超えるノードが稼働していること(=クォーラムを持つこと)を要求する」「クォーラムは、ネットワーク分断時に複数のサーバーが同時に同じリソースグループをホストし、同じディスクに書き込むことを防ぐために設計されている」。つまりクォーラムとは可用性の仕組みである以上に、データ整合性を守るための強制停止ルールだと捉えると腹落ちします。過半数を確認できなかった側は、自らサービスを止めます。

現場のコツ:「ノードが2台とも生きているのにクラスタが止まった」という相談の多くは、故障ではなく分断時の正しい振る舞いです。ログにLost quorumError 1135が出ていたら、まず疑うのはハードではなくネットワークと投票構成です。

02投票の数え方 — ノード多数決とクォーラムモード

各ノードは原則1票を持ち、稼働に必要なのは「投票総数の過半数」です。ここで厄介なのが偶数ノードです。2ノードや4ノードだと、ちょうど半々に分断されたときにどちらも過半数を取れません。そこでWitness(監視者)に1票を与えて総数を奇数に寄せます。Microsoft Learnはクォーラムモードを次のように整理しています。

ベストプラクティスは明快で、「投票要素の総数を奇数にせよ」です。偶数ノードならディスクWitnessかファイル共有Witnessを足す。これで「もう1ノードの障害」に耐えられ、半数のノードが同時に落ちても稼働を継続できます。

2ノードクラスタ:Witnessの有無で分断耐性が変わるWitnessなし(総票2 → 動的に1票へ)Node A1票Node B0票(zeroed)投票側が落ちると 0/1 で停止Witnessあり(総票3)Node A1票Node B1票Witness1票どちらのノードが落ちても 2/3 で継続結論2ノードでWitnessなしは、投票ノードの突然死でクラスタが停止する(50/50)。2ノード構成ではWitnessは「必須」。S2Dならクラウド/ファイル共有Witnessを選ぶ。
図:2ノードでのWitnessの有無と分断耐性(Microsoft Learn「Understand cluster and pool quorum」の投票モデルに基づく)

03Witnessの三種 — ディスク/ファイル共有/クラウド

Microsoft LearnはWitnessを3種類に分類しています。それぞれ「クラスタデータベースのコピーを持つか」で性格が分かれる点が実務上の勘所です。

現場のコツ:ファイル共有/クラウドWitnessはクラスタDBの最新コピーを持たないため、全ノードをメンテで停止する前に「最後まで生きていたノードでクラスタサービスを再起動してから」落とすこと。これを怠ると起動時にEvent 1561で不整合エラーが出ます。Learnにもわざわざ注記されている、ハマりどころです。

04動的クォーラムと動的Witness — 総票を自動で奇数に

ここがWindows Server 2012 R2以降の白眉です。動的クォーラムは、生存ノードが「自分たちが過半数だ」と確認できるたびに、過半数の定義を生存者だけで数え直します。これにより4ノードクラスタが、1台、また1台と順に落ちても、最後の1台(last-man standing)まで生き延びられます。

これと連携するのが動的Witnessです。Microsoft Learnの記述はシンプルで、「動的Witnessは総票が奇数になるようにWitnessの票をトグルする。票が奇数ならWitnessは投票せず、偶数ならWitnessが投票する」。整理するとこうなります。

  • 偶数ノード+Witnessなし → 1ノードの票がゼロ化され総票が奇数に。
  • 奇数ノード+Witnessなし → 全ノードが投票。
  • 偶数ノード+Witness → Witnessが投票して総票が奇数に。
  • 奇数ノード+Witness → Witnessは投票しない

あるノードの票が実際に有効かは、Get-ClusterNodeDynamicWeightプロパティで確認できます。値1なら投票あり、0なら票がゼロ化されている、という具合です。ここを見ずに「なんとなく冗長なはず」と思い込むのが一番危ない。

現場のコツ:動的クォーラムは万能ではありません。Learnは「投票メンバーの過半数が同時に失われる障害は救えない」と釘を刺しています。順に落ちる分には最後の1台まで粘れますが、一度に半数超が落ちればアウト。そしてS2D有効クラスタはノード障害を最大2台までしか許容しません——ここはプール(記憶域)側のクォーラムが効く別レイヤーの制約です。

05ノード数別・耐障害マトリクス

Microsoft Learnの表を、実設計の判断材料として噛み砕くとこうなります。「1台落ちた後さらにもう1台」に耐えるか、「2台同時」に耐えるかを分けて考えるのがポイントです。

  • 2ノード:Witnessなしは1台目の障害で50/50(投票側が落ちると停止)。Witnessありなら1台目はYes、ただし連続2台目はNo。2ノードはWitness必須
  • 3ノード:Witnessなしでも1台目はYes、2台目は50/50。Witnessありなら連続2台目までYes(=2ノード+Witnessの局面に落ちる)。
  • 4ノード:Witnessなしは2台同時が50/50。Witnessありなら2台同時障害までYes
  • 5ノード以上:Witnessは不要(追加の耐性を生まない)。ただしS2Dはそもそも2台超の障害を扱えない。

推奨は明確です。2ノードはWitness必須、3〜4ノードは強く推奨、5ノード以上は不要。インターネットがあるならクラウドWitness、社内にファイルサーバーがあるならファイル共有Witnessを選びます。

06CSVの仕組み — 所有権(コーディネーターノード)と同時読み書き

ここからHyper-V基盤の心臓部、CSVです。CSV(クラスター共有ボリューム)は、複数ノードが同一LUNに同時に読み書きできる仕組みで、これにより仮想マシンのフェイルオーバー時にボリュームの所有権変更やアンマウント/再マウントが不要になり、切り替えが速くなります。VHD/VHDXの置き場所として、Hyper-Vクラスタでは事実上の標準です。

ただし「所有権」の概念は残ります。任意の時点で1つのノードだけがLUNに紐づく物理ディスクリソースを所有し、これをコーディネーターノードと呼びます。所有者はFailover Cluster ManagerのOwner NodeGet-ClusterSharedVolumeで確認できます。通常のデータI/Oは各ノードがSAN等を通じて直接ストレージと通信しますが(Direct I/O)、ファイルシステムのメタデータ変更——VMの作成・削除・起動・マイグレーションなど——は、全ノードで同期する必要があり、これがSMB 3.0でコーディネーターノードを介して並列に同期されます。

Windows Server 2012 R2以降、CSVの所有権は各ノードが持つCSV数に基づいて自動で均等分散され、フェイルオーバーやノードの再参加・再起動、クラスタ起動時に自動リバランスされます。つまり「1台に所有権が偏ってメタデータ処理がボトルネックになる」状況は、放っておいても是正される設計です。

07Direct I/OとI/Oリダイレクト — ReFSとSANの落とし穴

CSVで最も誤解されやすいのがI/Oモードです。Microsoft Learnはフォーマット指針を明確に分けています。

  • SANボリュームNTFSでフォーマットしてからCSVに追加する。NTFSがSAN接続でのDirect I/Oを有効にし、性能が出る。
  • S2DボリュームReFSでフォーマットする。ReFSはデータ整合性、ブロッククローン、S2D向け最適化を備える。

落とし穴はここです。SAN上でReFSフォーマットのCSVは、他の条件を満たしていてもDirect I/Oを使わず、リダイレクトI/Oモードで動作します。「ReFSは新しくて良さそうだから」とSAN構成でReFSを選ぶと、知らぬ間に全書き込みがコーディネーターノード経由になり性能が落ちる。SAN=NTFS、S2D=ReFS、と機械的に覚えておくのが安全です。

また、あるノードがストレージへ直接到達できなくなると、そのノードはI/Oをクラスタネットワーク経由でコーディネーターノードへリダイレクトします。リダイレクトにはボリューム単位のファイルシステムリダイレクトと、ブロック単位でより高速なブロックリダイレクトがあり、状態はGet-ClusterSharedVolumeStateで「Direct/Redirected/理由」まで確認できます。SMB 3.0のMultichannel/SMB Directに統合されているため、リダイレクトI/Oも複数ネットワークやRDMAに載せられます。CSVをクォーラムのWitnessディスクに流用できない点も、あわせて押さえておきましょう。

CSV:Direct I/O と リダイレクトI/ONode Aコーディネーター(所有者/Owner)Node B直接接続OKNode C直接接続 切断共有ストレージ / LUN (CSVFS)\ClusterStorage\Volume1Direct I/ODirect I/OリダイレクトI/O (SMB 3.0)コーディネーター経由メタデータ更新(VM作成/移行等)は全ノードでSMB 3.0同期
図:CSVのコーディネーターノードとI/O経路。直接到達できるノードはDirect I/O、切断されたノードはSMB 3.0でコーディネーター経由にリダイレクトする

08優先所有者・フェイルバックとクラスタネットワーク/ハートビート

VMやCSVといったリソースには優先所有者(Preferred Owner)を設定でき、フェイルオーバー先の順序や、障害復旧後に元ノードへ戻すフェイルバックの挙動を制御します。フェイルバックを「即時」にすると、復旧直後のノードにVMが殺到して二次障害を招くことがあるため、業務時間外の時間帯指定にするのが定石です。

そして見落とされがちなのがハートビートです。クラスタは常時ノード間の到達性を監視しており、規定回数のハートビートが連続で欠落するとそのノードをメンバーシップから除外します。Microsoft Learnによれば、現行のWindows ServerではSameSubnetThresholdの既定値は10SameSubnetDelay1000ミリ秒。つまり同一サブネットで約10秒到達性が途切れるとノードが除外され、Error 1135が記録されリソースが別ノードへ移動します。マルチサイトではCrossSubnetThresholdCrossSubnetDelayを別に持ち、WANの遅延を吸収します(同一サブネット値がクロスサブネット値を超えてはいけません)。

現場のコツ:既定の閾値は「高度にチューニングされたオンプレネットワーク」前提で厳しめです。仮想化基盤や広域の間で瞬断が拾われ不要なフェイルオーバーが起きるなら、閾値を緩める。ただしライブマイグレーション用ネットワーク、CSV/SMBトラフィック、クライアント通信は物理的にも論理的にも分離し、iSCSIネットワークはクラスタ通信から除外する——これが安定運用の基本線です。ライブマイグレーションやそのためのAD設計はHyper-Vライブマイグレーション設計クラスタリング/ライブマイグレーションのためのADで別途詳説します。

まとめ

フェイルオーバークラスタリングは、突き詰めれば「投票総数を常に奇数に保ち、分断時に生き残る側を1つに絞る」ための精密な多数決システムです。偶数ノードにはWitness、その票は動的Witnessが自動でトグルし、動的クォーラムが生存者だけで過半数を数え直す。CSVは同時読み書きを実現しつつ所有権(コーディネーターノード)とメタデータ同期を残し、SAN=NTFSでDirect I/O、S2D=ReFS、という原則を外すとリダイレクトで性能を落とす。ハートビート閾値は既定で約10秒——このあたりの「数え方」を理解しているかどうかで、基盤の安定は大きく変わります。

そして、このオンプレHyper-V/S2Dで培った可用性設計の勘所は、そのままAWS移行の武器になります。クォーラムとWitnessの多数決モデルはマルチリージョンDRのRPO/RTO設計の考え方に通じ、オンプレADの理解はAWS Managed Microsoft ADへの移行で効いてきます。EMWは実際にS2D(Windows Server 2025 Datacenter)とHyper-V基盤を構築した上で、その資産を活かしたクラウド移行まで一気通貫でご支援しています。導入事例もあわせてご覧ください。

参考(一次情報)

オンプレHyper-V/S2Dの構築から、その資産を活かしたAWS移行までご相談ください。お問い合わせはこちらから。

相談する
← ブログ一覧へ戻る