Azure VM でのSQL Serverへの適用
この記事では、SQL Server on Azure Virtual Machines (VM) のフェールオーバー クラスター インスタンス (FCI) を使用する場合の機能の違いについて説明します。
開始するには、 仮想マシンを準備します。
概要
Azure VM 上のSQL Serverは、Windows Server フェールオーバー クラスタリング (WSFC) 機能を使用して、サーバー インスタンス レベルでの冗長性を通じてローカルの高可用性を実現します。フェールオーバー クラスター インスタンスです。 FCI は、WSFC (または単にクラスター) ノード全体にインストールされ、場合によっては複数のサブネットにまたがってインストールされるSQL Serverの単一インスタンスです。 ネットワーク上では、FCI は 1 台のコンピューターで実行されているSQL Serverの単一インスタンスと見なされます。 ただし、現在の WSFC ノードが使用できなくなった場合、FCI によって 1 つのノードから別のノードへのフェールオーバーが提供されます。
この記事の残りの部分では、フェールオーバー クラスター インスタンスが Azure VM でSQL Serverと共に使用される場合の違いについて説明します。 フェールオーバー クラスタリング テクノロジの詳細については、次を参照してください。
注記
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 ファイル共有 | Storage Spaces Direct (S2D) | Azure Elastic SAN | |
|---|---|---|---|---|
| OS の最小バージョン | すべて | Windows Server 2012 | Windows Server 2016 | Windows Server 2022 |
| 最小 SQL Server バージョン | すべて | 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 Managed Disksの機能です。 Windows Serverフェールオーバークラスタリングでは、Azure共有ディスクをフェールオーバークラスターインスタンスで使用できます。
サポートされる OS:All
サポートされる SQL バージョン:All
利点:
- 高可用性とディザスター リカバリー (HADR) アーキテクチャをそのまま維持しながら、Azureに移行するアプリケーションに役立ちます。
- SCSI 永続予約 (SCSI PR) のサポートにより、クラスター化されたアプリケーションをそのままAzureに移行できます。
- 共有Azure Premium SSD、Premium SSD v2、および Azure Ultra Disk ストレージをサポートします。
- 1 つの共有ディスクを使用することも、複数の共有ディスクをストライプして共有記憶域プールを作成することもできます。
- FILESTREAM がサポートされます。
- Premium SSD は、可用性セットをサポートしています。
- Premium SSD のゾーン冗長ストレージ (ZRS) は、可用性ゾーンをサポートします。 FCI の VM 部分は、異なる可用性ゾーンに配置できます。
- Windows Server 2019以降の Microsoft 分散トランザクション コーディネーター (MSDTC) をサポートします。
注記
Azure共有ディスクでは Standard SSD サイズもサポートされていますが、パフォーマンスの制限があるため、SQL Serverワークロードには Standard SSD を使用しないことをお勧めします。
制限事項:
- Premium SSD キャッシュはサポートされていません。
- Ultra Disks では、可用性セットまたはゾーン冗長ストレージ (ZRS) はサポートされていません。
- 可用性ゾーンは Ultra Disk でサポートされていますが、すべての VM が同じ可用性ゾーンに存在する必要があるため、仮想マシンの可用性が 99.9% に低下します。
開始するには、「共有ディスクを使用したフェールオーバー クラスター インスタンスの構成Azureを参照してください。
Storage Spaces Direct
Storage Spaces Direct は、Azure Virtual Machinesでのフェールオーバー クラスタリングでサポートされるWindows Server機能です。 ソフトウェアベースの仮想 SAN が提供されます。
Supported OS: Windows Server 2016 以降
Supported SQL バージョン: SQL Server 2016 以降
メリット:
- 十分なネットワーク帯域幅があれば、堅牢で高パフォーマンスの共有記憶域ソリューションを実現できます。
- Azure BLOB キャッシュがサポートされているため、読み取りはキャッシュからローカルに提供できます。 (更新プログラムは両方のノードに同時にレプリケートされます。)
- FileStream がサポートされます。
Limitations:
- Windows Server 2016以降でのみ使用できます。
- 可用性ゾーンはサポートされていません。
- 両方の仮想マシンに同じディスク容量を接続する必要があります。
- 進行中のディスクのレプリケーションのため、高パフォーマンスを実現するには高いネットワーク帯域幅が必要です。
- 各 VM に記憶域が接続されるため、より大きな VM サイズと 2 倍の記憶域の料金が必要です。
- Microsoft 分散トランザクション コーディネーター (MSDTC) はサポートされていません。
開始するには、 Storage Spaces Direct を使用したフェールオーバー クラスター インスタンスの構成に関する記事を参照してください。
Premium ファイル共有
Premium ファイル共有 は、Azure Files の機能です。 Premium ファイル共有は SSD ベースであり、待ち時間が一貫して低くなります。 Windows Server 2012以降の SQL Server 2012 以降のフェールオーバー クラスター インスタンスでの使用は完全にサポートされています。 Premium ファイル共有を使用すると柔軟性が向上しまず。ダウンタイムなしでファイル共有のサイズを変更したりスケーリングしたりできるためです。
Supported OS: Windows Server 2012以降
サポートされている SQL バージョン: SQL Server 2012 以降
メリット:
- 複数の可用性ゾーンに分散している仮想マシンの共有ストレージ ソリューション。
- 1 桁の待ち時間とバースト可能な I/O パフォーマンスを備えたフル マネージド ファイル システム。
- TABLOCK を使用しないデータベース スナップショット、ファイルストリーム、CHECKDB など、すべてのSQL Server機能がサポートされているわけではありません。 詳細については、「制限事項」を参照してください。
Limitations:
- Windows Server 2012以降でのみ使用できます。
- FileStream はサポートされていません。
- Microsoft 分散トランザクション コーディネーター (MSDTC) はサポートされていません。
開始するには、「Premium ファイル共有を使用したフェールオーバー クラスター インスタンスの構成」を参照してください。
Azure Elastic SAN
Azure Elastic SAN は、ストレージの統合によってコストを削減する可能性のある柔軟でスケーラブルなソリューションを顧客に提供するネットワーク接続ストレージ オファリングです。 Azure Elastic SANは、iSCSI プロトコルを介してさまざまなAzure コンピューティング サービスに接続する、コスト効率が高く、パフォーマンスが高く、信頼性の高いブロック ストレージ ソリューションを提供します。 Elastic SAN を使用すると、アプリケーション アーキテクチャをリファクタリングすることなく、既存の SAN Storage 資産からクラウドにシームレスに移行できます。
Supported OS: Windows Server 2019以降
サポートされている SQL バージョン: SQL Server 2022 以降
メリット:
- Elastic SAN は、VM ディスクのスループット制限によって制限されません。つまり、より小さな VM で目的のスループットを達成し、コストを節約できます。
- 記憶域の統合と動的なパフォーマンス共有 - 記憶域プールは SAN レベルでプロビジョニングされ、パフォーマンスがワークロード間で共有されるため、SQL Server ワークロードを使用してパフォーマンスの低いワークロードから中間層のワークロードを統合することで、コストを節約できます。
- SCSI 永続予約 (SCSI PR) をサポートします。つまり、クラスター化されたアプリケーションをそのままAzureに移行できます。
- 1 つの共有ボリュームを使用することも、複数の共有ボリュームをストライプして共有の記憶域プールを作成することもできます。
- Elastic SAN ゾーン冗長ストレージは、可用性ゾーンをサポートします。 フェールオーバー クラスター インスタンス の VM 部分は、異なる可用性ゾーンに配置できます。
Limitations:
- クラウド監視は現在サポートされていません。
- ミリ秒未満の待機時間ワークロードはサポートされません。
- FileStream はサポートされません。
- Microsoft 分散トランザクション コーディネーター (MSDTC) はサポートされていません。
パートナー
サポートされている記憶域に対応するパートナー提供のクラスタリング ソリューションがあります。
サポートされる OS:All
サポートされる SQL バージョン:All
1 つの例では、記憶域として SIOS DataKeeper が使用されます。 詳細については、フェールオーバー クラスタリングと SIOS DataKeeper に関するブログ記事を参照してください。
iSCSI と ExpressRoute
Azure ExpressRoute経由で iSCSI ターゲット共有ブロック ストレージを公開することもできます。
サポートされる OS:All
サポートされる SQL バージョン:All
たとえば、NetApp プライベート ストレージ (NPS) は、Equinix を使用して ExpressRoute 経由で iSCSI ターゲットをAzure VM に公開します。
Microsoft パートナーの共有記憶域とデータ レプリケーション ソリューションの場合、フェールオーバーでのデータ アクセスに関する問題についてはベンダーにお問い合わせください。
接続
フェールオーバー クラスター インスタンスに接続するためのオンプレミス のエクスペリエンスに合わせて、SQL Server VM を同じ仮想ネットワーク内複数のサブネットにデプロイします。 複数のサブネットを使用すると、トラフィックを FCI にルーティングするために、Azure Load Balancerまたは分散ネットワーク名 (DNN) に対する追加の依存関係が不要になります。
SQL Server VM を 1 つのサブネットにデプロイする場合は、仮想ネットワーク名 (VNN) とAzure Load Balancer、または分散ネットワーク名 (DNN) を構成して、フェールオーバー クラスター インスタンスにトラフィックをルーティングできます。 この 2 つの違いを確認してから、フェールオーバー クラスター インスタンスに対して分散ネットワーク名または仮想ネットワーク名をデプロイします。
可能であれば、分散ネットワーク名を使用することをお勧めします。これにより、フェールオーバーが高速になり、ロード バランサーの管理にかかるオーバーヘッドとコストが削減されます。
ほとんどのSQL Server機能は、DNN を使用する場合に FCI で透過的に動作しますが、特別な考慮事項が必要な特定の機能があります。 詳細については、FCI と DNN の相互運用性に関する記事をご覧ください。
注記
同じクラスターに複数の可用性グループまたは FCI があり、DNN または VNN リスナーを使用する場合は、各可用性グループまたは FCI に独自の独立した接続ポイントが必要です。
制限事項
制限付き拡張機能のサポート
現時点では、
SQL Server VM が既に SQL IaaS Agent 拡張機能に登録されていて、エージェントを必要とする機能を有効にしている場合は、対応する VM の
MSDTC
Azure Virtual Machines は、クラスター化された共有ボリューム (CSV) のストレージを使用する Windows Server 2019、または Azure 共有ディスクを使用する SQL Server VM 上で、Microsoft 分散トランザクション コーディネーター (MSDTC) と Azure Standard Load Balancer をサポートします。
Azure Virtual Machinesでは、次の理由により、MSDTC はクラスター化された共有ボリュームを使用したWindows Server 2016以前ではサポートされていません。
- クラスター化された MSDTC リソースは、共有ストレージを使用するように構成することはできません。 Windows Server 2016では、MSDTC リソースを作成した場合、ストレージが使用可能な場合でも、使用可能な共有ストレージは表示されません。 この問題は、Windows Server 2019で修正されました。