「Pacemakerの苦労」を知るあなたへ。Windowsのクラスタは「魔法」か「罠」か。
こんにちは!「LINUX工房」管理人の「リナックス先生」です。
入門講座(全8回)では、Windows Serverの基本的な使い方を学びました。
今回からはステップアップして、「上級編(全12回)」をスタートします。
Linuxエンジニアにとって、「HAクラスタ(高可用性構成)」の構築は鬼門の一つですよね。
Pacemaker、Corosync、DRBD、STONITH……設定ファイルは複雑怪奇で、スプリットブレインで両系稼働してデータ破損、なんて悪夢も。
では、Windows Serverの世界ではどうやって「止まらないシステム」を作るのでしょうか?
先生、お久しぶりです!
入門編のおかげでADやIISはなんとかなるようになったんですが、今度は上司から「ファイルサーバーを冗長化して」って言われました。
LinuxならPacemakerでVIP(仮想IP)を付け替える構成にしますけど、Windowsにもそういうのあるんですか?
「WSFC」っていうのがそれらしいんですけど、ドキュメント読んでも「クォーラム」とか意味不明な単語ばかりで……。
コウ君、いい所に目をつけたわね。
WSFC (Windows Server Failover Clustering) は、Windowsにおける可用性の要よ。
SQL ServerやHyper-Vの冗長化も、すべてこのWSFCが土台になっているの。
LinuxのPacemakerと似ているけど、OSへの統合レベルが段違いよ。
今回も、あの先生に解説してもらいましょう。
ご無沙汰しております、ウィンドウズ先生です。
Linuxエンジニアの皆さんが苦労して設定ファイルを記述しているクラスタリング機能、WindowsではOS標準機能としてGUIウィザード一発で組めてしまいます。
しかし、「簡単だから」といって仕組みを知らずに組むと、Active Directoryの障害に引きずられて全滅するリスクもあります。
上級編では、GUIの裏側にあるロジックを理解し、PowerShellで制御できる「真のWindowsエンジニア」を目指しましょう。
本記事では、WSFCのアーキテクチャ、スプリットブレインを防ぐ「クォーラム」の概念、iSCSI共有ストレージの構築、そしてPowerShellによるクラスタ構築手順までを徹底解説します。
🟥 Windows Server【上級】講座(全12回)カリキュラム
現在地:【第1回】Pacemakerと何が違う?Windowsクラスタリング(WSFC)の仕組みと構築手順
- 【第1回】Pacemakerと何が違う?Windowsクラスタリング(WSFC)の仕組みと構築手順
- 【第2回】ネットワークサービスの要。DHCP冗長化とIPAMによるIPアドレス管理
- 【第3回】DNSの深淵。スプリットブレインDNS、ゾーン転送、DNSSECの構築
- 【第4回】証明書基盤 (AD CS)。OpenSSL使いが知るべきエンタープライズPKI
- 【第5回】リモートアクセスの要塞。RDS (Remote Desktop Services) とVDI入門
- 【第6回】Infrastructure as Code (IaC)。PowerShell DSCによる構成管理の自動化
- 【第7回】Software Defined Storage。記憶域スペースダイレクト (S2D) の構築
- 【第8回】バックアップと災害復旧。Windows Server BackupとVSSの深層
- 【第9回】ID連携の架け橋。AD FS (Federation Services) とSAML/OIDC連携
- 【第10回】セキュリティの硬化。AppLockerと監査ログによる要塞化
- 【第11回】ハイブリッドクラウド管理。Azure Arcによるオンプレミスサーバーのクラウド化
- 【第12回】マイグレーション戦略。FSMO移行、OSインプレースアップグレードの極意
※入門編(全8回)の復習はこちら:Windows Server入門講座 アーカイブ
第1章:WSFCとは何か? Linux用語で翻訳する
WSFCは、複数のサーバー(ノード)を束ねて1つのシステムとして動作させる機能です。
Linuxエンジニア向けに、Pacemakerスタックとの対比表を作りました。
| 機能 | Linux (Pacemaker/Corosync) | Windows (WSFC) |
|---|---|---|
| 死活監視 | Corosync (Heartbeat) | Cluster Service (ClusSvc) |
| リソース管理 | Pacemaker (CRM) | Resource Hosting Subsystem (RHS) |
| 脳死防止 | STONITH / Fencing | Quorum (クォーラム) / Isolate |
| 共有IP | IPaddr2リソース | クラスターIPアドレス |
| 設定場所 | /etc/corosync/corosync.conf | Active Directory データベース |
💡 決定的な違い:AD依存
WSFCの最大の特徴であり、最大の弱点は「Active Directoryドメイン参加が必須」であることです。
クラスタ設定情報の多くはAD上に保存され、クラスタ名自体もAD上の「コンピュータアカウント」として登録されます。
つまり、「ADが全滅すると、クラスタも全滅する」リスクがあります。
ADの冗長化が全ての前提となることを忘れないでください。
第2章:スプリットブレインを防ぐ「クォーラム (Quorum)」
クラスタリングで最も恐ろしいのは、ネットワーク分断によりサーバー同士がお互いを「死んだ」と誤認し、両系がアクティブになってデータを奪い合う「スプリットブレイン」です。
投票(Vote)システム
WSFCでは、「投票数」の過半数(50% + 1票)を持っているグループだけが生き残るルールです。
LinuxのQuorumと全く同じ考え方です。
- ノードマジョリティ(Node Majority): 奇数台構成(3ノードなど)で使用。サーバー自身が1票を持つ。
- ディスク監視(Disk Witness): 偶数台構成(2ノード)で使用。共有ディスク(わずか数百MBの領域)が1票を持つ。
- ファイル共有監視(File Share Witness): 共有ディスクがない構成(Exchange DAGやAlwaysOn AGなど)で使用。外部のファイルサーバーが1票を持つ。
ダイナミッククォーラム
Windows Server 2012 R2以降の素晴らしい機能です。
ノードが正常にダウン(メンテナンスなど)すると、そのノードの投票権を動的に剥奪し、残ったノードだけで過半数を再計算します。
これにより、「5台中3台が順次停止しても、残り2台で稼働し続ける」といった柔軟な運用が可能になります。
第3章:インフラ準備。iSCSI共有ストレージを作る
クラスタ化されたファイルサーバーを作るには、全ノードから同時にアクセスできる「共有ストレージ」が必要です。
高価なSANストレージがなくても、Windows Server自身をiSCSIターゲット(ストレージサーバー)にすることができます。
構成イメージ
- Node1 (192.168.1.11): クラスタノードA
- Node2 (192.168.1.12): クラスタノードB
- Storage1 (192.168.1.20): iSCSIターゲットサーバー
iSCSIターゲット構築(Storage1側)
Linuxなら targetcli を使うところですが、WindowsではPowerShellで一瞬です。
# 1. 機能のインストール
Install-WindowsFeature FS-iSCSITarget-Server -IncludeManagementTools
# 2. 仮想ディスクの作成(クォーラム用1GB、データ用10GB)
New-IscsiVirtualDisk -Path "C:\Storage\Quorum.vhdx" -Size 1GB
New-IscsiVirtualDisk -Path "C:\Storage\Data.vhdx" -Size 10GB
# 3. ターゲット作成と接続許可(イニシエーターIP指定)
New-IscsiServerTarget -TargetName "ClusterTarget" -InitiatorId @("IPAddress:192.168.1.11", "IPAddress:192.168.1.12")
# 4. ディスク紐付け
Add-IscsiVirtualDiskTargetMapping -TargetName "ClusterTarget" -Path "C:\Storage\Quorum.vhdx"
Add-IscsiVirtualDiskTargetMapping -TargetName "ClusterTarget" -Path "C:\Storage\Data.vhdx"
iSCSIイニシエーター接続(Node1, Node2側)
Linuxの iscsiadm に相当する操作です。
# サービスの起動 Start-Service msiscsi Set-Service msiscsi -StartupType Automatic # ターゲットへの接続 New-IscsiTargetPortal -TargetPortalAddress 192.168.1.20 Connect-IscsiTarget -NodeAddress (Get-IscsiTargetNode).NodeAddress -IsPersistent $true
第4章:PowerShellで挑む。クラスタ構築と「構成の検証」
準備が整いました。
いよいよクラスタを作成しますが、その前にWSFC最大の儀式「構成の検証(Validate Configuration)」を行います。
なぜ検証が必要なのか?
WSFCは非常に厳密です。
「OSのパッチレベル」「ネットワーク設定」「ディスクの署名」などに少しでも差異があると、構築に失敗したり、サポート対象外になったりします。
このコマンドを実行すると、数百項目のテストが走り、HTMLレポートが出力されます。
構築コマンド(PowerShell)
# 1. 機能インストール(全ノード) Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools # 2. 構成の検証(Node1だけで実行) Test-Cluster -Node "Node1", "Node2" # ※レポートを確認し、Warning/Errorを解消すること! # 3. クラスタの作成 # -Name: クラスタ名, -Node: 参加ノード, -StaticAddress: クラスタの代表IP(VIP) New-Cluster -Name "MyCluster" -Node "Node1", "Node2" -StaticAddress "192.168.1.100"
たったこれだけです。
Pacemakerの設定ファイルと格闘していたのが嘘のように、あっさりとクラスタが完成します。192.168.1.100 にPingが通ることを確認してください。
第5章:クラスター共有ボリューム (CSV) の魔法
従来のクラスタ(Active-Passive)では、待機系ノードからは共有ディスクの中身が見えませんでした。
しかしWSFCには「クラスター共有ボリューム (CSV)」という機能があります。
CSVとは?
Linuxの「GFS2」や「OCFS2」のようなクラスタファイルシステムに近い挙動を、NTFSの上で実現する技術です。
これを有効にすると、共有ディスクが C:\ClusterStorage\Volume1\ というパスにマウントされ、全ノードから同時に読み書き可能になります。
# 使用可能なディスクをCSVに追加する Get-ClusterResource | Where-Object ResourceType -eq "Physical Disk" | Add-ClusterSharedVolume
これにより、Hyper-Vのライブマイグレーションや、SQL Serverの高速フェイルオーバーが可能になります。
第6章:ファイルサーバー役割の追加(HA File Server)
最後に、このクラスタの上に「ファイルサーバー」というアプリケーションを乗せます。
構築手順
- ファイルサーバー役割のインストール: 全ノードで
Install-WindowsFeature FS-FileServerを実行。 - 役割の追加:
# 汎用ファイルサーバーの追加 Add-ClusterFileServerRole -Name "MyFileServer" -StaticAddress "192.168.1.101" -Storage "Cluster Disk 2"
- 共有フォルダの作成: フェイルオーバークラスターマネージャーから、共有フォルダを作成します。
これで、\\MyFileServer\Share というパスでアクセスできるようになります。
Node1をシャットダウンしても、自動的にNode2に引き継がれ、クライアントは数秒の瞬断だけでアクセスを継続できます。
まとめ:WSFCはWindowsインフラの「総合格闘技」
お疲れ様でした!
上級編の第1回は、Windows Server Failover Clusteringについて解説しました。
今回の重要ポイント:
- WSFCはADへの依存度が高い。DNSとADの健全性が命。
- クォーラム設定を理解し、スプリットブレインを防ぐ(2ノードならDisk Witness必須)。
- 「構成の検証(Test-Cluster)」は絶対にスキップしてはいけない。
- PowerShellを使えば、GUIを使わずに再現性のある構築が可能。
WSFCを構築できれば、Windowsエンジニアとしては中級以上の実力があると言えます。
ネットワーク、ストレージ、AD、OSの知識がすべて必要になる「総合格闘技」だからです。
この技術は、オンプレミスだけでなく、AzureやAWS上のWindowsシステムを守る上でも必須のスキルですよ。
さて、クラスタで可用性を高めても、そもそも「IPアドレスが枯渇した」「どのIPが使われているか分からない」といったネットワーク管理がお粗末では意味がありません。
Linuxエンジニアは isc-dhcp-server を使いますが、Windows Serverには冗長化機能を備えた強力なDHCPサーバーがあります。
次回、第2回は「ネットワークサービスの要。DHCP冗長化とIPAMによるIPアドレス管理」です。
スコープの冗長化、フェイルオーバー設定、そしてネットワーク全体のIP利用状況を可視化するIPAMについて解説します。お楽しみに!
▼ クラスタ環境を構築して実験しよう ▼
複数台構成で検証する
「おすすめVPS」
基盤設計のスペシャリストへ
「ITエンジニア転職」



コメント