SQL Server マルチサブネット クラスタリング (SQL Server)

適用対象:yesSQL Server (サポートされているすべてのバージョン)

複数SQL Serverフェールオーバー クラスターの 1 つの例は、各フェールオーバー クラスター ノードが別のサブネットまたは異なるサブネット のセットに接続されている構成です。 これらのサブネットには、同じ場所や地理的に分散したサイトを指定できます。 地理的に分散したサイトのクラスタリングは、拡張クラスターと呼ばれることがあります。 すべてのノードがアクセスできる共有ストレージがないため、複数のサブネットのデータ ストレージ間でデータをレプリケートする必要があります。 データをレプリケートすることで、使用可能なデータのコピーが複数存在することになります。 そのため、マルチサブネット フェールオーバー クラスターによって、高可用性に加えてディザスター リカバリー ソリューションも実現します。

SQL Server マルチサブネット フェールオーバー クラスター (2 ノード、2 サブネット)

次の図は、2 つのノード (2 つのサブネット フェールオーバー クラスター インスタンス (FCI) を表SQL Server。

Multi-Subnet Architecture with MultiSubnetFailover

マルチサブネット フェールオーバー クラスター インスタンス構成

複数のサブネットを使用する FCIs SQL Server例を次に示します。

  • SQL Server FCI SQLCLUST1 には Node1 と Node2 が含まれています。 Node1 は Subnet1 に接続されています。 Node2 は Subnet2 に接続されています。 SQL Serverセットアップでは、この構成がマルチサブネット クラスターと見なされ、IP アドレス リソースの依存関係が OR に設定されます

  • SQL Server FCI SQLCLUST1 には、Node1、Node2、Node3 が含まれています。 Node1 および Node2 は Subnet1 に接続されています。 Node 3 は Subnet2 に接続されています。 SQL Serverセットアップでは、この構成がマルチサブネット クラスターと見なされ、IP アドレス リソースの依存関係が OR に設定されます。 Node1 と Node2 が同じサブネット上にあるため、この構成ではローカルでの可用性が強化されます。

  • SQL Server FCI SQLCLUST1 には Node1 と Node2 が含まれています。 Node1 は Subnet1 に接続されています。 Node2 は Subnet1 および Subnet2 に接続されています。 SQL Serverセットアップでは、この構成がマルチサブネット クラスターと見なされ、IP アドレス リソースの依存関係が OR に設定されます

  • SQL Server FCI SQLCLUST1 には Node1 と Node2 が含まれています。 Node1 は Subnet1 および Subnet2 に接続されています。 Node2 も Subnet1 および Subnet2 に接続されています。 IP アドレス リソースの依存関係は、セットアップ時に AND SQL Serverされます。

    注: クラスター ノードが同じサブネットのセットに含まれているため、この構成はマルチサブネット フェールオーバー クラスター構成と見なされません。

IP アドレス リソースに関する考慮事項

マルチサブネット フェールオーバー クラスター構成では、IP アドレスはフェールオーバー クラスター内のすべてのノードによって所有されるのではなく、SQL Server 起動時にすべてオンラインになる可能性があります。 2012 SQL Server (11.x) から、IP アドレス リソースの依存関係を OR に設定できます。 これにより、SQL Server有効な IP アドレスが少なくとも 1 つある場合に、このアドレスをオンラインにできます。

Note

  • SQL Server 2012 (11.x) より前の SQL Server バージョンでは、マルチサイト クラスター構成でストレッチ V-LAN テクノロジを使用して、サイト間のフェールオーバー用に単一の IP アドレスを公開しました。 異なるサブネット間で SQL Server ノードをクラスター化する新しい機能により、ストレッチ V-LAN テクノロジを実装することなく、複数のサイトにわたって SQL Server フェールオーバー クラスターを構成できます。

IP アドレス リソースの OR 依存関係に関する考慮事項

IP アドレス リソースの依存関係を ORに設定する場合、次のフェールオーバーの動作を考慮してください:

  • 現在 SQL Server クラスター リソース グループを所有しているノードの IP アドレスの 1 つで障害が発生した場合、そのノードで有効なすべての IP アドレスが失敗するまで、フェールオーバーは自動的にはトリガーされません。

  • フェールオーバーが発生すると、現在SQL Server有効な少なくとも 1 つの IP アドレスにバインドできる場合、フェールオーバーはオンラインになります。 起動時にグループにバインドされていない IP SQL Server、エラー ログに一覧表示されます。

SQL Server FCI が SQL Server データベース エンジン のスタンドアロン インスタンスとサイド バイ サイドでインストールされている場合は、IP アドレスでの TCP ポート番号の競合を避けるように注意してください。 競合は通常、既定の TCP ポート (1433) を使用するようにデータベース エンジンの 2 つのインスタンスが構成されている場合に発生します。 競合を回避するには、一方のインスタンスが既定以外の固定ポートを使用するように構成します。 通常、固定ポートの構成は、スタンドアロン インスタンスに対して行うのが最も簡単です。 異なるポートデータベース エンジン使用するために データベース エンジン を構成すると、予期しない IP アドレス/TCP ポートの競合が発生し、SQL Server FCI がスタンバイ ノードに障害が発生した場合にインスタンスの起動がブロックされます。

フェールオーバー中のクライアント回復待機時間

複数サブネットの FCI 既定で RegisterAllProvidersIP のクラスター リソースのネットワーク名を有効にします。 マルチサブネット構成では、ネットワーク名のオンラインおよびオフライン両方の IP アドレスが DNS サーバーに登録されます。 クライアント アプリケーションは、すべての登録済み IP アドレスを DNS サーバーから取得し、受信した順序または並列で使用してアドレスへの接続を試みます。 つまり、マルチサブネット フェールオーバーのクライアント回復時間は DNS 更新の待機時間に依存しません。 既定では、クライアントは IP アドレスを順番に試行します。 クライアントが新しいオプションの MultiSubnetFailover=True パラメーターを接続文字列で使用している場合、IP アドレスを同時に試し、最初に応答したサーバーに接続します。 これにより、フェールオーバー発生時のクライアント回復待機時間を最小限に抑えることができます。 詳細については、「 AlwaysOn クライアント接続 (SQL Server) 」および「 可用性グループ リスナーの作成または構成 (SQL Server)」を参照してください。

レガシ クライアント ライブラリまたはサードパーティ データ プロバイダーでは、接続文字列に MultiSubnetFailover パラメーターを使用できません。 クライアント アプリケーションが SQL Server のマルチサブネット FCI で最適に動作するには、追加の IP アドレスごとにクライアント接続文字列の接続タイムアウトを 21 秒調整してみてください。 これにより、クライアントの再接続の試みは、マルチサブネット FCI のすべての IP アドレスへの切り替えができるまでタイムアウトしません。

sqlcmd と sqlcmd の既定のクライアント接続のSQL Server Management Studioは 15 秒です。

Note

  • 複数のサブネットを使用していて、静的 DNS がある場合は、フェールオーバーを実行する前にリスナーに関連付けられている DNS レコードを更新するためのプロセスを、用意する必要があります。そうしないと、ネットワーク名がオンラインになりません。

関連コンテンツ

コンテンツの説明 トピック
SQL Server フェールオーバー クラスターのインストール 新しい SQL Server フェールオーバー クラスターの作成 (セットアップ)
既存の SQL Server フェールオーバー クラスターのインプレース アップグレード SQL Server フェールオーバー クラスター インスタンスのアップグレード (セットアップ)
既存の SQL Server フェールオーバー クラスターのメンテナンス SQL Server フェールオーバー クラスターでのノードの追加または削除 (セットアップ)
フェールオーバー クラスターの管理スナップインを使用した WSFC のイベントおよびログの表示 フェールオーバー クラスターのイベントおよびログを表示する
Windows PowerShell を使用した WSFC フェールオーバー クラスターのすべてのノード (または特定のノード) のログ ファイルの作成 Get-ClusterLog フェールオーバー クラスター コマンドレット