次の方法で共有


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

適用対象:SQL Server

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

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

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

MultiSubnetFailover を使用したマルチサブネット アーキテクチャを示す図。

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

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

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

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

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

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

    注意

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

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

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

注意

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

IP アドレス リソースまたは依存関係に関する考慮事項

IP アドレス リソースの依存関係を OR に設定する場合は、次のフェールオーバー動作を検討することをお勧めします。

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

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

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

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

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

レガシ クライアント ライブラリまたは Microsoft 以外のデータ プロバイダーでは、接続文字列で MultiSubnetFailover パラメーターを使用することはできません。 クライアント アプリケーションが SQL Serverのマルチサブネット FCI と最適な状態で連携して動作するように、クライアント接続文字列の接続タイムアウトを追加の IP アドレスごとに 21 秒で調整を試みてください。 この構成により、マルチサブネット FCI 内のすべての IP アドレスを循環する前に、クライアントの再接続試行がタイムアウトにならないことが保証されます。

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

注意

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

Description [アーティクル]
SQL Server フェールオーバー クラスターをインストールする 新しい SQL Server フェールオーバー クラスターを作成する (セットアップ)
既存の SQL Server フェールオーバー クラスターのインプレース アップグレード SQL Server フェールオーバー クラスター インスタンスのアップグレード (セットアップ)
SQL Server フェールオーバー クラスターを維持する SQL Server フェールオーバー クラスター内のノードを追加または削除する (セットアップ)
フェールオーバー クラスター管理スナップインを使用して Windows Server フェールオーバー クラスターのイベントとログを表示する フェールオーバー クラスターのイベントとログを表示する
Windows PowerShell を使用して、Windows Server フェールオーバー クラスター内のすべてのノード (または特定のノード) のログ ファイルを作成する Get-ClusterLog フェールオーバー クラスター コマンドレット