Azure Virtual Machines 上の SQL Server を使用したフェールオーバー クラスター インスタンス

適用対象:Azure VM 上の SQL Server

この記事では、Azure Virtual Machines (VM) 上の SQL Server に対してフェールオーバー クラスター インスタンス (FCI) を使用する場合の機能の違いについて説明します。

開始するには、VM を準備します

概要

Azure VM 上の SQL Server では、Windows Server フェールオーバー クラスタリング (WSFC) の機能を使用して、サーバー インスタンス レベルでの冗長性によるローカル高可用性を実現します。すなわち、フェールオーバー クラスター インスタンスです。 FCI は、WSFC (または単にクラスター) ノード全体に、場合によっては複数のサブネットにまたがってインストールされる SQL Server の 1 つのインスタンスです。 ネットワーク上では、FCI は 1 台のコンピューター上で実行されている SQL Server の単一インスタンスのように見えます。 ただし、現在の WSFC ノードが使用できなくなった場合、FCI によって 1 つのノードから別のノードへのフェールオーバーが提供されます。

この記事の残りの部分では、Azure VM 上の SQL Server と共に使用する場合のフェールオーバー クラスター インスタンスの違いに焦点を当てます。 フェールオーバー クラスタリング テクノロジの詳細については、次を参照してください。

Note

これで Azure Migrate を使用して、フェールオーバー クラスター インスタンス ソリューションを Azure VM 上の SQL Server にリフト アンド シフトできるようになりました。 詳細については、フェールオーバー クラスター インスタンスの移行に関するページを参照してください。

Quorum

Azure Virtual Machines 上の SQL Server を使用するフェールオーバー クラスター インスタンスでは、クラスター クォーラム用のディスク監視、クラウド監視、またはファイル共有監視の使用がサポートされています。

詳細については、Azure で SQL Server VM を使用する場合のクォーラムのベスト プラクティスに関する記事をご覧ください。

ストレージ

従来のオンプレミスのクラスター化環境では、Windows フェールオーバー クラスターによって、両方のノードから共有記憶域としてアクセス可能な記憶域ネットワーク (SAN) が使用されます。 SQL Server ファイルは共有記憶域でホストされ、アクティブなノードだけが一度にそのファイルにアクセスできます。

Azure VM 上の SQL Server には、SQL Server フェールオーバー クラスター インスタンスをデプロイするための共有記憶域ソリューションとして、さまざまなオプションが用意されています。

Azure 共有ディスク Premium ファイル共有 記憶域スペース ダイレクト (S2D)
OS の最小バージョン All Windows Server 2012 Windows Server 2016
SQL Server の最小バージョン All SQL Server 2012 SQL Server 2016
サポートされる VM の可用性 Premium SSD LRS: 近接配置グループを含む、または含まない可用性セット
Premium SSD ZRS: 可用性ゾーン
Ultra Disks: 同じ可用性ゾーン
可用性セットと可用性ゾーン 可用性セット
FileStream のサポート はい いいえ はい
Azure BLOB キャッシュ いいえ 番号 はい

このセクションの残りの部分では、Azure VM 上の SQL Server で使用できる各記憶域オプションの利点と制限事項を一覧表示します。

Azure 共有ディスク

Azure 共有ディスクAzure マネージド ディスクの機能です。 Windows Server フェールオーバー クラスタリングでは、フェールオーバー クラスター インスタンスでの Azure 共有ディスクの使用がサポートされています。

サポートされる OS:All
サポートされる SQL バージョン:All

利点:

  • 高可用性とディザスター リカバリー (HADR) のアーキテクチャをそのまま維持しながら Azure に移行することを検討しているアプリケーションに役立ちます。
  • SCSI 永続的な予約 (SCSI PR) のサポートにより、クラスター化されたアプリケーションをそのまま Azure に移行できます。
  • 共有された Azure Premium SSD と Azure Ultra Disk storage がサポートされます。
  • 1 つの共有ディスクを使用することも、複数の共有ディスクをストライプして共有記憶域プールを作成することもできます。
  • FILESTREAM がサポートされます。
  • Premium SSD では、可用性セットがサポートされています。
  • Premium SSD のゾーン冗長ストレージ (ZRS) では、Availability Zones がサポートされています。 FCI の VM 部分は、異なる可用性ゾーンに配置できます。

Note

Azure 共有ディスクは Standard SSD サイズ もサポートしますが、パフォーマンスの制限事項があるため、SQL Server ワークロードに Standard SSD を使用することはお勧めしません。

制限事項:

  • Premium SSD ディスクのキャッシュはサポートされていません。
  • Ultra Disk では、可用性セットもゾーン冗長ストレージ (ZRS) もサポートされていません。
  • 可用性ゾーンは Ultra Disk でサポートされていますが、すべての VM が同じ可用性ゾーンに存在する必要があるため、仮想マシンの可用性が 99.9% に低下します。

開始するには、Azure 共有ディスクを使用した SQL Server フェールオーバー クラスター インスタンスに関する記事をご覧ください。

記憶域スペース ダイレクト

記憶域スペース ダイレクトは、Azure Virtual Machines でのフェールオーバー クラスタリングでサポートされている Windows Server の機能です。 ソフトウェアベースの仮想 SAN が提供されます。

サポートされる OS:Windows Server 2016 以降
サポートされる SQL バージョン:SQL Server 2016 以降

メリット:

  • 十分なネットワーク帯域幅があれば、堅牢で高パフォーマンスの共有記憶域ソリューションを実現できます。
  • Azure BLOB キャッシュがサポートされるため、キャッシュからローカルで読み取りを行うことができます。 (更新プログラムは両方のノードに同時にレプリケートされます。)
  • FileStream がサポートされます。

制限事項:

  • Windows Server 2016 以降でのみ使用できます。
  • 可用性ゾーンはサポートされていません。
  • 両方の仮想マシンに同じディスク容量を接続する必要があります。
  • 進行中のディスクのレプリケーションのため、高パフォーマンスを実現するには高いネットワーク帯域幅が必要です。
  • 各 VM に記憶域が接続されるため、より大きな VM サイズと 2 倍の記憶域の料金が必要です。

開始するには、記憶域スペース ダイレクトを使用した SQL Server フェールオーバー クラスター インスタンスに関する記事をご覧ください。

Premium ファイル共有

Premium ファイル共有Azure Files の機能です。 Premium ファイル共有は SSD ベースであり、待ち時間が一貫して低くなります。 これらは、Windows Server 2012 以降での SQL Server 2012 以降のフェールオーバー クラスター インスタンスとの使用が完全にサポートされています。 Premium ファイル共有を使用すると柔軟性が向上しまず。ダウンタイムなしでファイル共有のサイズを変更したりスケーリングしたりできるためです。

サポートされる OS:Windows Server 2012 以降
サポートされる SQL バージョン:SQL Server 2012 以降

メリット:

  • 複数の可用性ゾーンに分散している仮想マシンの共有ストレージ ソリューション。
  • 1 桁の待ち時間とバースト可能な I/O パフォーマンスを備えたフル マネージド ファイル システム。
  • データベース スナップショット、filestream、TABLOCK を使用しない CHECKDB など、SQL Server のすべての機能がサポートされているわけではありません。 詳細については、「制限事項」を参照してください。

制限事項:

  • Windows Server 2012 以降でのみ使用できます。
  • FileStream はサポートされていません。

開始するには、Premium ファイル共有を使用した SQL Server フェールオーバー クラスター インスタンスに関する記事をご覧ください。

Partner

パートナー クラスタリング ソリューションとサポートされている記憶域があります。

サポートされる OS:All
サポートされる SQL バージョン:All

1 つの例では、記憶域として SIOS DataKeeper が使用されます。 詳細については、フェールオーバー クラスタリングと SIOS DataKeeper に関するブログ記事を参照してください。

iSCSI と ExpressRoute

Azure ExpressRoute を介して iSCSI ターゲットの共有ブロック記憶域を公開することもできます。

サポートされる OS:All
サポートされる SQL バージョン:All

たとえば、NetApp Private Storage (NPS) は、ExpressRoute と Equinix を使用して iSCSI ターゲットを Azure VM に公開します。

Microsoft パートナーの共有記憶域とデータ レプリケーション ソリューションの場合、フェールオーバーでのデータ アクセスに関する問題についてはベンダーにお問い合わせください。

接続

フェールオーバー クラスター インスタンスに接続するためのオンプレミス エクスペリエンスに一致するよう、SQL Server VM を同じ仮想ネットワーク内の複数のサブネットにデプロイします。 複数のサブネットを使用すると、トラフィックを FCI にルーティングするための分散ネットワーク名 (DNN) や Azure Load Balancer への追加の依存関係が不要になります。

SQL Server VM を 1 つのサブネットにデプロイする場合、仮想ネットワーク名 (VNN) と Azure Load Balancer を構成するか、または分散ネットワーク名 (DNN) を構成してフェールオーバー クラスター インスタンスにトラフィックをルーティングできます。 この 2 つの違いを確認してから、フェールオーバー クラスター インスタンスに対して分散ネットワーク名または仮想ネットワーク名をデプロイします。

可能であれば、分散ネットワーク名を使用することをお勧めします。これにより、フェールオーバーが高速になり、ロード バランサーの管理にかかるオーバーヘッドとコストが削減されます。

DNN を使用すると、ほとんどの SQL Server 機能は FCI に対して透過的に機能しますが、特定の機能については、特別な考慮が必要となる場合があります。 詳細については、FCI と DNN の相互運用性に関する記事をご覧ください。

制限事項

Azure Virtual Machines 上の SQL Server を使用するフェールオーバー クラスター インスタンスについて、次の制限事項を考慮してください。

拡張機能のサポートの制限

現時点では、SQL IaaS Agent 拡張機能に登録されている Azure 仮想マシン上の SQL Server フェールオーバー クラスター インスタンスは、限られた数の機能のみをサポートしています。 利点の表を参照してください。

SQL Server VM が SQL IaaS Agent 拡張機能に既に登録されていて、エージェントを必要とする機能を有効にしている場合は、対応する VM の ‭‬SQL 仮想マシン‭‬ リソースを削除することによって拡張機能から‭‬登録を解除‭‬した後、SQL IaaS Agent 拡張機能にもう一度登録する必要があります。 Azure portal を使用して SQL 仮想マシン リソースを削除するときは、仮想マシンを削除してしまうことのないよう、正しい仮想マシンの横のチェック ボックスをオフにします。

SQL IaaS Agent 拡張機能に登録された SQL Server FCI では、自動バックアップ、修正プログラムの適用、Microsoft Entra 認証、高度なポータル管理など、エージェントを必要とする機能はサポートされません。 詳細については、「ベネフィット一覧表」をご覧ください。

MSDTC

Azure Virtual Machines では、クラスター共有ボリューム (CSV) と Azure Standard Load Balancer 上のストレージを使用する Windows Server 2019、または Azure 共有ディスクを使用する SQL Server VM で、Microsoft 分散トランザクション コーディネーター (MSDTC) がサポートされます。

Azure Virtual Machines では、次の理由により、クラスター共有ボリュームを使用する Windows Server 2016 以前では、MSDTC はサポートされません。

  • クラスター化された MSDTC リソースは、共有ストレージを使用するように構成することはできません。 Windows Server 2016 では、MSDTC リソースを作成した場合、ストレージが使用可能であっても、使用可能な共有ストレージは 1 つも表示されません。 この問題は、Windows Server 2019 で修正済みです。
  • Basic Load Balance は、RPC ポートを処理しません。

Azure Elastic SAN

Azure Elastic SAN は現在、Windows Server フェールオーバー クラスターではサポートされていないため、SQL Server フェールオーバー クラスター インスタンス (FCI) はサポートされていません。