Windows Server 2008 R2: フェールオーバー クラスターとネットワーク

障害を許容できない場合、Windows Server でフェールオーバー クラスターを構成すると、高い可用性を実現するのに役立ちます。

John Marlin

Windows Server 2008 と Windows Server 2008 R2 のフェールオーバー クラスタリングは、すべてのクラスター ノードで行われる通信の堅牢性と信頼性を高めるので、フェールオーバー クラスタリングの効率と信頼性が大幅に向上します。また、次のような新機能もいくつか追加されています。

  • TCP と UDP ユニキャストを使用した信頼性の高い通信
  • IPv6 のサポート
  • ルーティングされる別個のサブネットへのクラスター ノードの配置
  • ネットワーク障害検出のより細やかな制御

フェールオーバー クラスター ソリューションがサポートされているのは、"Certified for Windows Server 2008" というロゴのあるネットワーク ハードウェアです。フェールオーバー クラスター ソリューションの他のコンポーネントも、同様に認定されている必要があります。iSCSI を使用する場合、ネットワーク アダプターは、ネットワーク通信と iSCSI の両方ではなくいずれか専用にする必要があります。

クラスター ノードを接続するネットワーク インフラストラクチャの設計時には、単一障害点を回避することが重要です。これには多くの方法がありますが、まず、複数の個別のネットワークを使用してクラスター ノードを接続するという方法が挙げられます。また、チーム化されたネットワーク アダプター、冗長なスイッチ、冗長なルーター、または単一障害点をなくす同様のハードウェアを使用して構築された単一のネットワークでクラスター ノードを接続するという方法もあります。これらのアーキテクチャ要件は、2 つの異なるネットワークを必要とする Windows Server 2003 のサーバー クラスターとは異なります。

クラスターの通信

Windows Server 2008 フェールオーバー クラスターでは、クラスターのノード間で通信するために、Microsoft Failover Cluster Virtual Adapter という仮想ネットワーク アダプターを使用します。これは、デバイス マネージャーの [ネットワーク アダプター] にも表示されています ([表示] メニューの [非表示のデバイスの表示] をクリックします)。また、IPCONFIG /ALL というコマンドを実行して表示することもできます。このネットワーク アダプターでは、通信や参加などのために行われる、適切なネットワークへのパケット ルーティングを処理します。

このアダプターには、169.254.0.0/16 というアドレス ブロックで定義されている APIPA アドレスがあります。IPv6 では、fe80::/10 というプレフィックスが割り当てられます。環境によっては、APIPA アドレスのあるアダプターは無効になることがあります。Microsoft Failover Cluster Virtual Adapter を無効にすると、ノード間の通信も無効になります。

目的は、ネットワーク パスのコンポーネントで障害が発生したときにも、複数のシステムで TCP/IP 接続を維持することです。したがって、代替の物理パスが必要になります。つまり、(NIC、ルーター、スイッチ、またはハブのいずれの) ネットワーク コンポーネントで障害が発生しても、通信は断絶されません。

通信は、時間どおりに継続される必要があります。応答が遅いこともありますが、代替の物理的なルートまたはリンクがある限り、通信は維持されます。これが非常に有用になるのが、別のサイトやサブネットにノードがある場合です。

Windows Server 2008 フェールオーバー クラスタリングでは、クラスター ハートビートのメカニズムも変更されました。ポート 3343 を使用する点は同じですが、UDP ブロードキャスト正常性チェック メカニズムから UDP ユニキャスト通信に変わりました。要求/応答プロセスを使用するという点では ping と似ていますが、セキュリティやシーケンス番号などのより洗練された機能を備えています。

既定の動作で変わったのは、ノードが通信不可能と見なされる応答の数です (その応答の数に達すると、新しいクラスター メンバーシップのビューを取得するために "再グループ" が開始されます)。クラスター ハートビートでは、すべてのノードに、稼働中と停止中のノードを通知します。既定では、この設定は次の値で制御されます。

  • SameSubnetDelay: 同じサブネットにあるノードのハートビートの頻度
  • SameSubnetThreshold: 同じサブネットにあるノードで遅延が発生しているかどうか判断するしきい値
  • CrossSubnetDelay: 異なるサブネットに存在するノードのハートビートの頻度
  • CrossSubnetThreshold: 異なるサブネットに存在するノードで遅延が発生しているかどうか判断するしきい値

これらの設定と、設定を変更する方法については、TechNet ライブラリの記事「複数サイトのフェールオーバーでハートビートと DNS 設定を構成する (英語)」を参照してください。たとえば、Node1 から Node2 にシーケンス番号と共にハートビートが送信されるとしましょう。Node2 は、Node1 と同じシーケンス番号で応答します。Node1 は、Node2 に同じシーケンス番号を再び送信し、Node2 は、最後にもう一度同じシーケンス番号を返します。

その後、Node1 は、このハートビートのシーケンスが完了したと判断し、別のシーケンス番号でプロセスを再開します。ハートビートのシーケンスが 1 つでも漏れたり受け取られなかったりした場合は、"応答のない" ハートビートと見なされます。既定では、これらのシーケンス 5 個のうちいずれかの応答がなかった場合、ノードは停止しているか非アクティブであると見なされます。

設定を変更して遅延やしきい値を増やすことはできますが、ネットワークの問題を回避しているに過ぎません。ネットワーク遅延に関する問題がある場合、問題を回避することはできますが、解決することはできません。したがって、遅延やしきい値の設定を変更しても、トラブルシューティングにはならない点に注意してください。

IPv6 は IPv4 よりも高速なので、ハートビートでは、既定のプロトコルとして IPv6 を使用します。IPv6 が無効になっている場合は、IPv4 を使用します。フェールオーバー クラスターでは、IPv6 と IPv4 を同時に併用することはなく、いずれか片方を使用します。

クラスターの作成

Windows Server 2008 と Windows Server 2008 R2 でクラスターを作成するとき、クラスター ネットワーク ドライバーでは、アダプターにデフォルト ゲートウェイがあるかどうかに基づいて、ネットワークを検出および作成します。クラスター ネットワーク ドライバーでデフォルト ゲートウェイが検出されると、クライアントがそのゲートウェイに接続してクラスター通信に使用できるようにネットワークが設定されます。

これにより、クラスター IP アドレスとクライアント アクセス ポイント (ネットワーク名) がネットワークを使用できるようになります。また、クラスター ネットワーク ドライバーでは、10,000 から始まるメトリック値もネットワークに提供します。ネットワークにデフォルト ゲートウェイがない場合は 1,000 から始まるメトリック値が提供され、クラスター通信にのみ使用されます。検出された各ネットワークには、100 単位でインクリメントされたメトリックが提供されます。

現在、"パブリック ネットワーク" と "プライベート ネットワーク" という概念はなくなりました。このため、Windows Server 2003 クラスタリングについての Microsoft サポートの記事「クラスター サーバーでのプライベート "ハートビート" の推奨構成」は参考にすることができません。クラスター通信は、すべてのネットワークを経由します。

以前のバージョンでは、クラスター通信に使用するネットワークを定義していました。定義したネットワークが利用可能な限り、クラスターでは、そのネットワークだけを使用しました。これに対し、Windows Server 2008 と Windows Server 2008 R2 はすべてのネットワークを使用します。使用中のネットワークに問題があれば、別のネットワークに自動的に切り替わります。

クラスター ネットワーク ドライバーでは内部のメトリック値を使用し、一般的な TCP/IP メトリック値は使用しません。次の Windows PowerShell コマンドを実行すると、メトリック値を確認できます。

Get-ClusterNetwork | FT Name, Metric

メトリック値は、可用性の高い仮想マシン (VM) があり、クラスターの共有ボリュームを使用しているクラスターがある場合に便利します。

たとえば、次のネットワーク構成で、このコマンドを実行したとします。

名前

--------------------------------------------------

iSCSI Network
Backup Network
Host Access
CSV Network
Live Migration Network

メトリック

--------------------------

1000
1100
10000 <<-- デフォルト ゲートウェイあり
1200
1300

クラスターの共有ボリュームを使用している場合、CSV トラフィックやリダイレクト モード アクセスには、メトリック値が最小のネットワークが使用されます。フェールオーバー クラスタリングのライブ マイグレーション機能を使用している場合、2 番目にメトリック値が小さいネットワークが使用されます。

この例では、CSV トラフィックは iSCSI ネットワークを経由し、ライブ マイグレーションのトラフィックは、バックアップに使用されるネットワークを経由します。VM のバックアップを作成するとき、クラスターの共有ボリュームは、リダイレクト モード アクセスに移行します。その結果、iSCSI ネットワークの接続が妨害されるので、ディスクの障害を引き起こすことがあります。Node1 のローカル ドライブのデータ バックアップとライブ マイグレーションは、相互に妨害します。

この状況を回避するには、ネットワークを再構成する必要があります。ライブ マイグレーション ネットワークでは、いずれか 1 台の VM のプロパティで、設定を変更できます。[ライブ マイグレーション用ネットワーク] タブで、現在の設定をライブ マイグレーション クラスター ネットワークに変更します。この変更は、すべての VM のグローバル設定なので、1 台の VM で実行するだけでかまいません。

CSV ネットワークについては、Windows PowerShell を使用して、この変更を行う必要があります。ネットワークを降順にするには、次のコマンドを使用します。

Get-ClusterNetwork "CSV Cluster" | %{$_.Metric=800} Get-ClusterNetwork "LM Cluster" | %{$_.Metric=900} Get-ClusterNetwork "Backup Network" | %{$_.Metric=1000} Get-ClusterNetwork "ISCSI Storage Network" | %{$_.Metric=1100}

メトリックを確認するためにコマンドを実行すると、結果は次のようになります。

名前

--------------------------------------------------

iSCSI Network
Backup Network
Host Access
CSV Network
Live Migration Network

メトリック

------------------------

1100
1000
10000 <<-- デフォルト ゲートウェイあり
800
900

CSV クラスター ネットワークのメトリック値は 800 に設定されます。既定のゲートウェイがない新しいネットワークを追加すると、そのネットワークのメトリック値の方が高くなります。メトリックが適切に構成されたので、ネットワークで競合が発生することなく、VM のバックアップを作成したり、ライブ マイグレーションを行ったりできるようになりました。

最後に、クラスター検証について言及しておきます。ネットワーク検証テストをいくつか実行すれば、接続の問題やネットワーク構成などを特定できます。このテストは、運用環境に影響を与えることなく、いつでも実行できます。

クラスター検証テストには次のものがあります。

  • クラスターの構成
  • クラスター ネットワークの情報の一覧表示
  • ネットワーク
  • ネットワーク バインド順の一覧表示
  • クラスター ネットワーク構成の検証
  • IP 構成の検証
  • 複数サブネットのプロパティの検証
  • ネットワーク通信の検証

クラスターの検証テストの詳細については、TechNet ライブラリの記事「クラスターの検証テストについて」を参照してください。テストが追跡するものや実行することについて明確に理解できます。

John Marlin

John Marlin は、マイクロソフトの Commercial Technical Support Group でシニア サポート エスカレーション エンジニアとして働いています。勤続 19 年で、14 年前からクラスター サーバーを担当しています。

関連コンテンツ