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 を使用する場合のクォーラムのベスト プラクティスに関する記事をご覧ください。
Storage
従来のオンプレミスのクラスター環境では、Windows フェールオーバー クラスターは、すべてのノードから共有ストレージとしてアクセス可能な記憶域ネットワーク (SAN) を使用します。 SQL Server ファイルは共有記憶域でホストされ、アクティブなノードだけが一度にそのファイルにアクセスできます。
Azure VM 上の SQL Server には、SQL Server フェールオーバー クラスター インスタンスをデプロイするための共有記憶域ソリューションとして、さまざまなオプションが用意されています。
Azure 共有ディスク | Premium ファイル共有 | 記憶域スペース ダイレクト (S2D) | Azure Elastic SAN | |
---|---|---|---|---|
OS の最小バージョン | All | Windows Server 2012 | Windows Server 2016 | Windows Server 2022 |
SQL Server の最小バージョン | All | SQL Server 2012 | SQL Server 2016 | SQL Server 2022 |
サポートされる VM の可用性 | Premium SSD LRS: 近接配置グループを含む、または含まない可用性セット Premium SSD ZRS: 可用性ゾーン Ultra Disks: 同じ可用性ゾーン |
可用性セットと可用性ゾーン | 可用性セット | 可用性ゾーン |
FileStream のサポート | はい | いいえ | 有効 | いいえ |
MSDTC をサポートします | はい | いいえ | 番号 | いいえ |
このセクションの残りの部分では、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) は、可用性ゾーンをサポートします。 FCI の VM 部分は、異なる可用性ゾーンに配置できます。
- Windows Server 2019 から Microsoft 分散トランザクション コーディネーター (MSDTC) がサポートされています。
Note
Azure 共有ディスクは Standard SSD サイズ もサポートしますが、パフォーマンスの制限事項があるため、SQL Server ワークロードに Standard SSD を使用することはお勧めしません。
制限事項:
- Premium SSD ディスクのキャッシュはサポートされていません。
- Ultra Disk では、可用性セットもゾーン冗長ストレージ (ZRS) もサポートされていません。
- 可用性ゾーンは Ultra Disk でサポートされていますが、すべての VM が同じ可用性ゾーンに存在する必要があるため、仮想マシンの可用性が 99.9% に低下します。
開始するには、「Azure 共有ディスクを使用したフェールオーバー クラスター インスタンスの構成」を参照してください。
記憶域スペース ダイレクト
記憶域スペース ダイレクトは、Azure Virtual Machines でのフェールオーバー クラスタリングでサポートされている Windows Server の機能です。 ソフトウェアベースの仮想 SAN が提供されます。
サポートされる OS:Windows Server 2016 以降
サポートされる SQL バージョン:SQL Server 2016 以降
メリット:
- 十分なネットワーク帯域幅があれば、堅牢で高パフォーマンスの共有記憶域ソリューションを実現できます。
- Azure BLOB キャッシュがサポートされるため、キャッシュからローカルで読み取りを行うことができます。 (更新プログラムは両方のノードに同時にレプリケートされます。)
- FileStream がサポートされます。
制限事項:
- Windows Server 2016 以降でのみ使用できます。
- 可用性ゾーンはサポートされていません。
- 両方の仮想マシンに同じディスク容量を接続する必要があります。
- 進行中のディスクのレプリケーションのため、高パフォーマンスを実現するには高いネットワーク帯域幅が必要です。
- 各 VM に記憶域が接続されるため、より大きな VM サイズと 2 倍の記憶域の料金が必要です。
- Microsoft 分散トランザクション コーディネーター (MSDTC) はサポートされていません。
開始するには、「記憶域スペース ダイレクトを使用したフェールオーバー クラスター インスタンスの構成」を参照してください。
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 はサポートされていません。
- Microsoft 分散トランザクション コーディネーター (MSDTC) はサポートされていません。
開始するには、「Premium ファイル共有を使用したフェールオーバー クラスター インスタンスの構成」を参照してください。
Azure Elastic SAN
Azure Elastic SAN は、ストレージの統合によってコストを削減することのできる、柔軟でスケーラブルなソリューションを顧客に提供する、ネットワーク接続ストレージ オファリングです。 Azure Elastic SAN は、iSCSI プロトコル経由でさまざまな Azure コンピューティング サービスに接続できる、コスト効果が高く、高パフォーマンスで信頼性の高いブロック記憶域ソリューションを提供します。 Elastic SAN を使用すると、アプリケーション アーキテクチャをリファクタリングすることなく、既存の SAN Storage 資産からクラウドにシームレスに移行できます。
Note
Azure Elastic SAN を使用したフェールオーバー クラスター インスタンスの構成は、現在、Azure VM 上の SQL Server でのプレビュー段階です。
サポートされる OS: Windows Server 2019 以降
サポートされる SQL バージョン: SQL Server 2022 以降
メリット:
- Elastic SAN は、VM ディスクのスループット制限によって制限されません。つまり、より小さな VM で目的のスループットを達成し、コストを節約できます。
- ストレージの統合と動的なパフォーマンス共有 - 記憶域プールが SAN レベルでプロビジョニングされ、パフォーマンスがワークロード間で共有されるため、低層から中間層の効率の良いワークロードをSQL Server ワークロードに統合して、コストを節約できます。
- SCSI 永続的な予約 (SCSI PR) をサポートしているため、クラスター化されたアプリケーションをそのまま Azure に移行できます。
- 1 つの共有ボリュームを使用することも、複数の共有ボリュームをストライプして共有の記憶域プールを作成することもできます。
- Elastic SAN ゾーン冗長ストレージは、可用性ゾーンをサポートします。 フェールオーバー クラスター インスタンス の VM 部分は、異なる可用性ゾーンに配置できます。
制限事項:
- クラウド監視は現在サポートされていません。
- ミリ秒未満の待機時間ワークロードはサポートされません。
- FileStream はサポートされません。
- Microsoft 分散トランザクション コーディネーター (MSDTC) はサポートされていません。
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 の相互運用性に関する記事をご覧ください。
Note
同じクラスターに複数の AG または FCI があり、DNN または VNN リスナーを使用する場合、各 AG または FCI には独自の独立したコネクション ポイントが必要です。
制限事項
制限付き拡張機能のサポート
現時点では、SQL IaaS Agent 拡張機能に登録されている Azure Virtual Machines 上の SQL Server フェールオーバー クラスター インスタンスでは エージェントを必要とする機能 (自動バックアップ、修正プログラムの適用、Microsoft Entra 認証、高度なポータル管理など) ではなく、基本的な登録で使用できる機能の数は限られています。 詳細については、「ベネフィット一覧表」を参照してください。
SQL Server VM が SQL IaaS Agent 拡張機能に既に登録されていて、エージェントを必要とする機能を有効にしている場合は、対応する VM の SQL 仮想マシン リソースを削除することによって、SQL Server VM から拡張機能を削除した後、SQL IaaS Agent 拡張機能にもう一度登録する必要があります。 Azure portal を使用して SQL 仮想マシン リソースを削除するときは、仮想マシンを削除してしまうことのないよう、正しい仮想マシンの横のチェック ボックスをオフにします。
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 ポートを処理しません。