Info2softは、ウェブサイトでより快適で適切な閲覧体験を提供するためにCookieを使用しています。 プライバシーポリシー
Loading...
計画外のサービス停止は多大な経済的損失を引き起こします。基幹アプリケーションが1時間停止するだけで、企業は売上損失、生産性低下、信用失墜により数千~数百万ドルの損害を被る可能性があります。このため、高可用性(HA)は現代のITインフラにおける必須要件となっています。
サーバーでWindows Serverを運用している場合、マイクロソフトのWindows Serverフェイルオーバークラスタリング(WSFC)を活用できます。WSFCは独立した複数のサーバー(ノード)で構成されるグループであり、クラスターロールと呼ばれるアプリケーションやサーバーの可用性・スケーラビリティを高めます。
1台または複数のノードにハードウェアまたはソフトウェア障害が発生した場合、残りのノードがフェイルオーバーという処理により自動的に業務を引き継ぎ、サービスの停止時間を最小限に抑えます。
WSFCは単なる「予備サーバー」の組み合わせではなく、複数の独立したシステム間のリソースを統制する高度なオーケストレーションエンジンです。
WSFCクラスターを構成する各サーバーをノードと呼び、物理マシンまたは仮想マシンのいずれでも構成可能です。ノード同士はネットワークを介して通信し、既定ではすべてのネットワークでハートビート信号(UDP 3343番ポートを使用する134バイトの小型パケット)を送受信します。従来のような「公開網」「プライベート網」といった役割区分はなく、クラスター用に有効化されたすべてのネットワークでハートビートやその他クラスター通信が伝送されます。
それでもマイクロソフトや熟練した管理者が推奨するベストプラクティスとして、内部クラスター通信用に少なくとも1系統の専用ネットワークを用意することが挙げられます。このネットワークでは死活監視、クラスター共有ボリューム(CSV)のリダイレクト、管理コマンドが伝送され、クライアント向けアプリ通信と分離されます。
これらの通信に低遅延で安定した接続を確保することで、誤った障害検知のリスクを大幅に低減できます。ただし、このネットワークは「ハートビート専用」ではなく、ノード間の重要なクラスター通信すべてを処理する点に注意してください。
WSFCノードは主に2つの構成モードで導入されます。
分散システムにおける最大のリスクはスプリットブレイン現象です。ノード同士の通信が遮断され、各ノードが自身のみが稼働中のクラスターと認識することでデータ破損が発生する状態を指します。WSFCはクォーラム機構によりこの問題を回避します。
クォーラムとは、クラスターが稼働状態を維持するために必要なクラスターメンバーの最小投票数のことです。ネットワーク分割が発生した場合、クォーラムを満たしたグループのみが業務を継続し、残りのノードは停止してデータの整合性を保護します。
Windows Serverは複数のクォーラムタイプに対応しています。
Windows Server 2012 R2以降のバージョンには動的クォーラムが標準で有効化されています。動的クォーラムはノードの追加・削除に応じて各ノードとウィットネスの投票数を自動調整します。例えばノードが正常にシャットダウンした場合、クラスターは投票数を再計算し、残りのノードに追加の重みを付与してクォーラムを維持します。手動操作なしでクラスターの耐障害性を大幅に向上させる機能です。
本章ではWindows Server 2008/2012/2016/2019/2022/2025におけるフェイルオーバークラスターの詳細設定手順を解説します。
方法A:サーバーマネージャー(GUI)でインストール
1. 各ノードでサーバーマネージャーを起動します。
2. 「管理」>「役割と機能の追加」>「機能」を開きます。
3. 「リモートサーバー管理ツール」>「機能管理ツール」>「フェイルオーバークラスタリング」にチェックを入れ、インストールを完了させます。すべてのノードで同じ作業を実施します。
方法B:PowerShellでインストール
各ノードでPowerShellを管理者として起動し、以下のコマンドを実行します。
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
-IncludeManagementToolsパラメータを指定することで、機能本体とフェイルオーバークラスターマネージャーのスナップインが同時にインストールされます。
本手順ではハードウェア、ネットワーク、ストレージ、システム構成の互換性テストを実施します。
1. フェイルオーバークラスターマネージャー(またはWindows管理センター)を起動します。
2. 中央ペインの「構成の検証」をクリックします。
3. クラスターノードとして使用するすべてのサーバー名を追加します。
4. 「すべてのテストを実行」(推奨)を選択し、結果を慎重に確認します。
5. 続行する前に、すべてのエラーと関連する警告を解消してください。
Windows管理センターを使用する場合:
1. Windows管理センターからクラスターマネージャーに移動します。
2. サーバーをノードとして追加し、ネットワーク設定(クラスター名、IPアドレス、サブネットマスク、VLAN ID)を構成して「次へ」をクリックします。
3. クラスター作成画面で一意のクラスター名と静的IPアドレスを入力し、「クラスターの作成」をクリックします。
4. DNSの伝播遅延により「DNS経由でクラスターに到達できません」エラーが発生した場合は、「接続チェックを再試行」をクリックします。
PowerShellを使用する場合:
# Server1、Server2でMyClusterという名前のクラスターを作成、静的IPを指定
New-Cluster -Name MyCluster -Node Server1, Server2 -StaticAddress 192.168.1.100
ストレージを後から追加する場合は、-NoStorageパラメータを末尾に追加します。
作成完了後、ナビゲーションツリーにクラスター名が表示されるか確認します。DNSにクラスター名が反映され、サーバーマネージャーの「すべてのサーバー」画面でオンライン状態と表示されるまで時間を要する場合があります。
2ノードクラスターではウィットネスが必須です。ノード台数が偶数の大規模クラスターでも強く推奨されます。クラウドウィットネスの設定手順は以下の通りです。
事前に有効なAzureサブスクリプション、汎用ストレージアカウントを用意し、すべてのクラスターノードの443番ポートを開放してAzureストレージREST APIと通信できるようにします。
1. フェイルオーバークラスターマネージャーでクラスターを右クリック>「その他のアクション」>「クラスタークォーラム設定の構成」を選択します。
2. ウィザードに従い、「クォーラムウィットネスの選択」を選びます。
3. クォーラムウィットネス選択画面では「クラウドウィットネスの構成」を選択することを推奨します。
4. Azureストレージアカウント名とアクセスキーを入力します。ウィザードは投票調停用のBLOBファイルを格納するmsft-cloud-witnessコンテナを自動作成します。(補足:Windows Server 2025はマネージドIDに対応しており、アクセスキーの管理が不要になります。)
CAUはクラスターロールの停止時間をゼロに保ちながら、クラスターノードにWindows更新プログラムを適用する機能です。1台のノードからロールを退避させ、更新適用・再起動後にノードをオンラインに戻し、次のノードへ順次処理を実行します。
1. フェイルオーバークラスターマネージャーのコンソールツリーから対象クラスターを選択し、アクションペインまたはメイン画面の「クラスター対応更新」をクリックします。
2. クラスター対応更新画面で「クラスター自動更新オプションの構成」をクリックします。
3. クラスターロール追加画面で「CAUクラスターロールを追加、自動更新モードを有効にする」にチェックを入れます。ADに事前作成したコンピューターオブジェクトが存在する場合は「CAUクラスターロールの事前作成オブジェクトがある」にもチェックし、オブジェクト名を入力します。
4. 更新元とスケジュールを設定します。
5. 必要に応じて「詳細オプション」を開きます。
設定完了後、「次へ」→「適用」でウィザードを終了します。
フェイルバックとは、障害から復旧した優先所有者ノードにクラスターロールが自動的に戻る動作のことです。多くの本番環境では自動フェイルバックは推奨されません。午前2時にノード障害が発生し午前10時に復旧した場合、ユーザーの利用が多い時間帯に即時フェイルバックが実行されると再度短時間のサービス遮断が発生するためです。
手動または時間指定のフェイルバックを設定する手順は以下の通りです。
1. フェイルオーバークラスターマネージャーのコンソールツリーからクラスターを展開し、左ペインの「ロール」をクリックします。
2. 対象のクラスターロール(仮想マシン、SQL Serverインスタンス、ファイルサーバーロールなど)を右クリックし「プロパティ」を選択します。
3. 「全般」タブの優先所有者欄に、優先順にノードを選択します。
4. 「フェイルオーバー」タブを開き、フェイルバック項目からいずれかを選択します。
5. 「OK」をクリックして設定を反映します。
フェイルオーバークラスターモジュールのPowerShellコマンドレットで優先所有者とフェイルバックポリシーを設定することも可能です。
# ロールの現在の優先所有者を確認
Get-ClusterOwnerNode -Cluster MyCluster -Group "SQL Server (MSSQLSERVER)"
# 優先所有者を優先順に設定
Set-ClusterOwnerNode -Cluster MyCluster -Group "SQL Server (MSSQLSERVER)" -Owners Node1, Node2
# フェイルバック動作の設定
# パラメータ:-FailbackType Immediate | Prevent | Policy; Policyの場合は-FailbackWindowStart/Endを指定
Set-ClusterGroup -Cluster MyCluster -Name "SQL Server (MSSQLSERVER)" -FailbackType Prevent
# 特定時間帯のみフェイルバックを許可する場合
Set-ClusterGroup -Cluster MyCluster -Name "SQL Server (MSSQLSERVER)" `
-FailbackType Policy `
-FailbackWindowStart 1 `
-FailbackWindowEnd 4
主要パラメータ解説
綿密に設計されたクラスターでも設定の見落としにより障害が発生します。実際の障害事例から頻出する要因を紹介します。
課題:クラスター通信とアプリ通信を同一NICで処理し、遅延の急増やパケットロスが発生する。DNS設定の不備、またはUDP 3343番ポート(クラスターサービス通信用)を遮断するファイアウォールルールが存在する。
解決策:クラスター通信用に専用のネットワークインターフェース(またはチーミング)を用意し、クライアントアクセス通信と分離する。全ノードでクラスター名のDNS解決が正常に行えるか確認し、ファイアウォールルールでUDP 3343番ポートの通信を許可する。パフォーマンスモニターでパケットロスを監視する。ネットワークの不安定さは不要なフェイルオーバー、またはフェイルオーバーが必要な状況で切り替えに失敗する主な原因です。
課題:2ノードクラスターに適切なウィットネスを設定していない。単なるネットワーク遮断で、両方のサーバーが正常稼働しているにもかかわらず、どちらもクォーラムを満たせずクラスター全体が完全停止する。
解決策:ノード台数が偶数のクラスターには必ずウィットネスを構成する。ディスク、ファイル共有、Azure BLOBなどのウィットネスリソースがすべてのノードからアクセス可能か確認する。動的クォーラムは既定で有効で投票数を自動調整しますが、基礎となるクォーラム設定が正しく構成されていることが前提となります。
課題:各ノード間でドライブ文字またはマウントポイントが不一致。レプリケーション型クラスターの場合、本番稼働前にボリュームの完全同期が完了していない。ストレージレプリケーション通信に十分な帯域幅が確保されていない。
解決策:各ノードのローカルディスクでドライブ文字とマウントポイントが統一されているか確認する。共有ストレージを使用する場合は、クラスター作成前にすべてのノードが全LUNにアクセスできるか検証する。ストレージスペースダイレクト(S2D)を使用する場合は、すべてのディスクがハードウェア要件を満たし、正しく初期化されているか確認します。
診断ツール
トラブルシューティング時は以下のツールを活用してください。
長所を持つ一方、Windows Serverフェイルオーバークラスタリングは万能なソリューションではありません。正しく設定するには高度な知識が必要で、共有ストレージに依存し、Windows以外のシステムに跨って高可用性を提供できないという制限があります。
また、標準のフェイルオーバー機構はストレージ中心の設計でありアプリケーション単位の監視に対応していないため、障害検知と切り替え完了までに時間を要する場合があります。
ここで活用できるのがInfo2soft開発のi2Availabilityです。i2Availabilityはバイト単位のリアルタイムレプリケーションとアプリ単位の死活監視を統合したサードパーティ製HA・災害復旧プラットフォームで、Windows、Linux、各種仮想化基盤上で稼働する基幹アプリを保護します。
i2AvailabilityはWSFCの課題を直接解消する以下の特長を備えています。
i2Availabilityによる堅牢な高可用性構築のデモ動画を参照できます。
下記ボタンから60日間無料トライアルを申し込めます。
Windows ServerフェイルオーバークラスタリングはMicrosoft環境における基盤的な高可用性技術です。本ガイドではWindows Serverにおけるフェイルオーバークラスターの段階的な設定手順を解説しました。
また、より柔軟でアプリ単位の監視、クロスプラットフォーム対応の高可用性基盤を必要とする企業には、Info2softのi2Availabilityが強力な代替策となります。標準搭載のリアルタイムレプリケーション、1秒未満のフェイルオーバー、統合管理画面により、標準WSFCで課題となる複雑な設定、ストレージ依存、プラットフォーム制限を解消します。