次の方法で共有


FCI 用に仮想マシンを準備する (Azure VM 上の SQL Server)

適用対象: Azure VM 上の SQL Server

この記事では、Azure 仮想マシン (VM) を SQL Server フェールオーバー クラスター インスタンス (FCI) で使用するように準備する方法について説明します。 構成設定は FCI ストレージ ソリューションによって異なるため、環境やビジネスに適した構成を選択していることを確認してください。

詳細については、Azure VM 上の SQL Server を使用した FCI およびクラスターのベスト プラクティスの概要に関する記事をご覧ください。

Note

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

前提条件

  • Microsoft Azure サブスクリプションが必要です。 最初は無料の Azure アカウントを使ってください。
  • Azure 仮想マシン上の Windows ドメイン、または仮想ネットワーク ペアリングで Azure に拡張されたオンプレミスの Active Directory。
  • Azure 仮想マシンと Active Directory にオブジェクトを作成するためのアクセス許可を持つアカウント。
  • 次のコンポーネント用の十分な IP アドレス空間を持つ Azure Virtual Network と 1 つ以上のサブネット。
    • 両方の仮想マシン
    • Windows フェールオーバー クラスターの IP アドレス
    • 各 FCI の IP アドレス
  • Azure ネットワーク上で構成された、ドメイン コントローラーを指す DNS。

FCI ストレージ オプションを選択する

仮想マシンの構成設定は、SQL Server フェールオーバー クラスター インスタンスに使用する予定のストレージ オプションによって異なります。 仮想マシンを準備する前に、使用可能な FCI ストレージ オプションを確認し、環境やビジネス ニーズに最も適したオプションを選択します。 次に、ストレージの選択に基づいて、この記事全体で適切な VM 構成オプションを選択します。

VM の可用性の選択

フェールオーバー クラスター機能を使用するには、仮想マシンを可用性セットまたは可用性ゾーンに配置する必要があります。

目的のクラスター構成に適した VM 可用性オプションを慎重に選択します。

  • Azure 共有ディスク: Premium SSD または UltraDisk を使用している場合、使用可能なオプションは次のようにさまざまです。
    • Premium SSD ゾーン冗長ストレージ (ZRS) : 可用性ゾーンを別のゾーンに配置します。 Premium SSD ZRS では、選択されたリージョンにある 3 つの Azure 可用性ゾーン間で Azure マネージド ディスクを同期的にレプリケートします。 フェールオーバー クラスターの VM 部分を別の可用性ゾーンに配置できるため、99.99% の VM 可用性 SLA を提供するゾーン冗長 SQL Server FCI の実現に役立ちます。 データのクロスゾーン コピーのために、ZRS のほうがディスク待機時間が長くなります。
    • Premium SSD ローカル冗長ストレージ (LRS) : Premium SSD LRS 用の別の障害/更新ドメインに可用性セットを配置します。 VM が互いにもっと近くなるよう、近接配置グループ内に VM を配置することも選択できます。 可用性セットと近接配置グループを組み合わせると、1 つのデータセンター内でデータがローカルに複製されるため共有ディスクの待機時間が最小になり、99.95% の VM 可用性 SLA が実現します。
    • Ultra Disk ローカル冗長ストレージ (LRS): 可用性ゾーンですが、VM を同じ可用性ゾーンに配置する必要があります。 Ultra Disk はディスク待機時間が最小のため、IO 負荷の高いワークロードに最適です。 FCI の VM 部分全体が同じ可用性ゾーンに存在する必要があるため、VM の可用性は 99.9% にとどまります。
  • プレミアム ファイル共有: 可用性セットまたは可用性ゾーン
  • 記憶域スペース ダイレクト: 可用性セット
  • Azure Elastic SAN: 可用性ゾーン

重要

仮想マシンを作成した後に可用性セットを設定または変更することはできません。

サブネット

Azure VM 上の SQL Server では、SQL Server VM を 1 つのサブネットまたは複数のサブネットにデプロイするオプションがあります。

複数のサブネットに VM をデプロイすると、IP アドレスに関してクラスターの OR 依存関係が利用され、フェールオーバー クラスター インスタンスに接続するときのオンプレミス エクスペリエンスに一致します。 管理が簡素化され、フェールオーバー時間も短縮されるため、Azure VM 上の SQL Server では、マルチサブネットのアプローチをお勧めします。

1 つのサブネットに VM を デプロイする場合、トラフィックを FCI にルーティングするために、Azure Load Balancer または分散ネットワーク名 (DNN) への追加の依存関係が必要になります。

複数のサブネットに SQL Server VM をデプロイする場合は、このセクションの手順に従って、追加のサブネットを持つ仮想ネットワークを作成し、SQL Server VM が作成されたら、それらのサブネット内のセカンダリ IP アドレスを VM に割り当てます。 1 つのサブネットに SQL Server VM をデプロイする場合、追加のネットワーク構成は必要ありません。

両方の仮想マシンと、最終的にクラスターにインストールする可能性があるすべての FCI のための十分な IP アドレスがある 1 つのサブネットに、両方の仮想マシンを配置します。 このアプローチでは、Azure Load Balancer や分散ネットワーク名 (DNN) など、FCI に接続をルーティングするための追加のコンポーネントが必要になります。

1 つのサブネットに SQL Server VM を デプロイすることを選択した場合は、環境のその他の部分を FCI のために準備する前に、Azure Load Balancer オプションと DNN 接続オプションの違いについて確認し、どちらのオプションが最適であるかを判断してください。

1 つのサブネットに SQL Server VM を配置する場合、追加のネットワーク構成は不要です。

DNS を構成する

DNS サーバーを使用するように仮想ネットワークを構成します。 まず、DNS の IP アドレスを特定して仮想ネットワークに追加します。

DNS IP アドレスの特定

DNS サーバーの IP アドレスを特定して、仮想ネットワーク構成に追加します。 ここでは、DNS サーバーが Azure の仮想マシンにある場合に DNS の IP アドレスを特定する方法を示します。

Azure portal で DNS サーバー VM の IP アドレスを特定するには、次の手順に従います。

  1. Azure portal で、リソース グループに移動して、DNS サーバー VM を選択します。
  2. VM ページで、 [設定] ペインの [ネットワーク] を選択します。
  3. これは DNS サーバーの IP アドレスであるため、NIC の プライベート IP アドレスをメモしておいてください。 この例の画像では、プライベート IP アドレスは 10.38.0.4 です。

[DC-VM-1] ページの [設定] ペインで [ネットワーク] を選び、NIC のプライベート IP アドレスをメモします。この IP アドレスは、他の仮想マシンの DNS サーバーとして使用します。

仮想ネットワーク DNS の構成

これを DNS サーバーの IP アドレスとして使用するように仮想ネットワークを構成します。

DNS 用に仮想ネットワークを構成するには、次の手順に従います。

  1. Azure portal で、リソース グループに移動して、仮想ネットワークを選択します。
  2. [設定][DNS サーバー] を選択してから、[カスタム] を選択します。
  3. 以前に特定した (10.38.0.4 などの) プライベート IP アドレスを [IP アドレス] フィールドに入力するか、内部 DNS サーバーの内部 IP アドレスを入力します。
  4. [保存] を選択します。

Azure portal の設定で選択された DNS サーバーを示すスクリーンショット。

仮想マシンの作成

VM の仮想ネットワークを構成して VM の可用性を選択したら、仮想マシンを作成する準備が整います。 SQL Server が既にインストールされている、またはインストールされていない、Azure Marketplace のイメージを使用できます。 ただし、Azure VM に SQL Server が付属するイメージを選択する場合は、フェールオーバー クラスター インスタンスを構成する前に、仮想マシンから SQL Server をアンインストールする必要があります。

Note

SQL Server VM を配置する前に選択した FCI Storage オプションでサポートされている SQL Server のバージョンを必ず確認してください。

NIC に関する考慮事項

Azure VM ゲスト フェールオーバー クラスターでは、サーバー (クラスター ノード) ごとに 1 つの NIC を推奨しています。 Azure ネットワークは物理的な冗長性を備えているので、Azure IaaS VM ゲスト クラスターで NIC を追加する必要はありません。 クラスター検証レポートでは、1 つのネットワークでしかノードに到達できないという警告が出ますが、Azure IaaS VM ゲスト フェールオーバー クラスターではこの警告を無視しても安全です。

両方の仮想マシンを配置します。

  • 可用性セットを使用している場合は、可用性セットと同じ Azure リソース グループ内。
  • ドメイン コントローラーおよび DNS サーバーと同じ仮想ネットワーク上、またはドメイン コントローラーへの適切な接続がある仮想ネットワーク上。
  • Azure 可用性セット内または可用性ゾーン内。

SQL Server がプレインストールされているまたはいないイメージを使用して、Azure 仮想マシンを作成できます。 SQL Server イメージを選択した場合は、フェールオーバー クラスター インスタンスをインストールする前に、手動で SQL Server インスタンスをアンインストールする必要があります。

セカンダリ IP アドレスの割り当て

1 つのサブネットに SQL Server VM をデプロイした場合は、この手順をスキップしてください。

FCI への接続性を向上させるために SQL Server VM を複数のサブネットにデプロイした場合は、各 VM にセカンダリ IP アドレスを割り当てる必要があります。

フェールオーバー クラスター インスタンスのネットワーク名に使用するセカンダリ IP アドレスを各 SQL Server VM に割り当てます。Windows Server 2016 およびそれ以前の場合は、クラスターのネットワーク名のセカンダリ IP アドレスも各 SQL Server VM に割り当てます。 これを行うと、単一のサブネット環境での要件と同様に、Azure Load Balancer の必要性がなくなります。

Windows Server 2016 以前では、クラスターで Windows Server 2019 で導入された既定の分散ネットワーク名 (DNN) ではなくクラスター ネットワーク名が使用されるため、Windows クラスター IP に使用する各 SQL Server VM に追加のセカンダリ IP アドレスを割り当てる必要があります。 DNN を使用すると、クラスター名オブジェクト (CNO) がクラスターのすべてのノードの IP アドレスに自動的に登録されるため、専用の Windows クラスター IP アドレスは不要になります。

Windows Server 2016 以前を使用している場合は、このセクションの手順に従って、FCI ネットワーク名 "および" クラスターの "両方" の各 SQL Server VM にセカンダリ IP アドレスを割り当てます。

Windows Server 2019 以降を使用している場合は、FCI ネットワーク名のセカンダリ IP アドレスのみを割り当て、Windows クラスター IP を割り当てる手順をスキップします。ただし、仮想ネットワーク名 (VNN) を使用してクラスターを構成する予定がない場合は、Windows Server 2016 の場合と同様に両方の IP アドレスを各 SQL Server VM に割り当てます。

追加のセカンダリ IP を VM に割り当てるには、次の手順を実行します。

  1. Azure portal で、リソース グループに移動して、最初の SQL Server VM を選択します。

  2. [設定] ペインで [ネットワーク] を選択してから、 [ネットワーク インターフェイス] を選択します。

    [設定] ペインで [ネットワーク] を選択してから [ネットワーク インターフェイス] を選択する

  3. [ネットワーク インターフェイス] ページで、 [設定] ペインの [IP 構成] を選択してから、 [+ 追加] を選択して追加の IP アドレスを追加します。

    IP 構成

  4. [IP 構成の追加] ページで、次の操作を行います。

    1. Windows 2016 およびそれ以前の場合、Windows クラスター IP アドレスの [名前]windows-cluster-ip のように指定します。 Windows Server 2019 以降を使用している場合は、この手順をスキップします。
    2. [割り当て][静的] に設定します。
    3. SQL Server VM と同じサブネット (SQL-subnet-1) 内の未使用の IP アドレス (10.38.1.10 など) を入力します。
    4. [パブリック IP アドレス] は既定値の [関連付けの解除] のままにします。
    5. [OK] を選択して、IP 構成の追加を終了します。

    最初の SQL Server VM のサブネット内の未使用 IP アドレスを入力してクラスター IP を追加する

  5. もう一度 [+ 追加] を選択して、(FCI-network-name のような名前の) FCI ネットワーク名に対する追加の IP アドレスを構成します。ここでも、SQL-subnet-1 内の未使用の IP アドレス (10.38.1.11 など) を指定します。

    もう一度 [+ 追加] を選択して、(availability-group-listener のような名前の) 可用性グループ リスナーに対する追加の IP アドレスを構成する。ここでも、SQL-subnet-1 内の未使用の IP アドレス (10.31.1.11 など) を指定する

  6. 2 番目の SQL Server VM について、以上の手順をもう一度繰り返します。 SQL-subnet-2 内の未使用のセカンダリ IP アドレスを 2 つ割り当てます。 IP 構成を追加するには、次の表の値を使用します (ただし、IP アドレスは単なる例であり、環境によって異なる場合があります)。

    フィールド 入力 入力
    名前 windows-cluster-ip FCI-network-name
    Allocation 静的 静的
    IP アドレス (IP address) 10.38.2.10 10.38.2.11

SQL Server のアンインストール

FCI 作成プロセスの一環として、SQL Server をクラスター化されたインスタンスとしてフェールオーバー クラスターにインストールします。 "SQL Server のない Azure Marketplace イメージを使用して仮想マシンをデプロイした場合は、このステップを省略できます。 " SQL Server がプレインストールされたイメージをデプロイした場合は、SQL Server VM から拡張機能を削除し、SQL Server をアンインストールする必要があります。

SQL IaaS Agent 拡張機能を削除する

Azure Marketplace の SQL Server VM イメージは、SQL IaaS Agent 拡張機能に自動的に登録されます。 プレインストールされている SQL Server インスタンスをアンインストールする前に、まず SQL Server VM から拡張機能を削除する必要があります。

Azure PowerShell を使用して、SQL Server VM から拡張機能を削除するには次のサンプル コードを使用します。

Remove-AzSqlVM -ResourceGroupName <resource_group_name> -Name <SQL VM resource name>

SQL Server のアンインストール

拡張機能を削除した後、SQL Server をアンインストールできます。 各仮想マシンで、次の手順のようにします。

  1. RDP または Bastion を使用して、仮想マシンに接続します。 RDP または Bastion を使用して最初に仮想マシンに接続する際、PC をネットワーク上で検出可能にするかどうかを確認するプロンプトが表示されます。 [はい] を選択します。

  2. [コントロール パネル][プログラムと機能] を開きます。

  3. [プログラムと機能][Microsoft SQL Server 201_ (64 ビット)] を右クリックし、 [アンインストールと変更] を選択します。

  4. [削除] を選択します。

  5. 既定のインスタンスを選択します。

  6. [データベース エンジン サービス][Analysis Services][Reporting Services - ネイティブ] のすべての機能を削除します。 [共有機能] の下にあるものは何も削除しないでください。 次のスクリーンショットのように表示されます。

    SQL Server をアンインストールするために選択する機能を示すスクリーンショット。

  7. [次へ][削除] の順に選択します。

  8. インスタンスが正常に削除されたら、仮想マシンを再起動します。

ファイアウォールを開く

各仮想マシンで、SQL Server で使用されている Windows ファイアウォール TCP ポートを開きます。 SQL Server では既定でポート 1433 を使用しますが、環境でこれを変更した場合は、SQL Server インスタンスで使用するように構成したポートを開いてください。 ポート 1433 は、Azure Marketplace からデプロイされた SQL Server イメージでは自動的に開かれます。

1 つのサブネットのシナリオでロード バランサーを使用する場合は、正常性プローブで使用されるポートも開く必要があります。 正常性プローブでは既定でポート 59999 を使用しますが、ロード バランサーの作成時に指定する任意の TCP ポートにすることもできます。

次の表では、FCI の構成に応じて、開くことが必要になる場合があるポートについて詳しく説明します。

目的 Port Notes
SQL Server TCP 1433 SQL Server の既定のインスタンスの通常のポートです。 ギャラリーからイメージを使用した場合、このポートが自動的に開きます。

使用元: すべての FCI 構成。
正常性プローブ TCP 59999 開いている任意の TCP ポートです。 このポートを使用するように、ロード バランサーの正常性プローブとクラスターを構成します。

使用元: サブネットが 1 つの場合の Load Balancer を使用する FCI。
ファイル共有 UDP 445 ファイル共有サービスによって使用されるポート。

使用元: プレミアムファイル共有を利用する FCI。

ドメインに参加する

また、仮想マシンをドメインに参加させる必要があります。 クイックスタート テンプレートを使用して、それを行うことができます。

ストレージの構成を確認する

Azure Marketplace から作成された仮想マシンには、アタッチされたストレージが付属しています。 Premium ファイル共有または Azure 共有ディスクを使用して FCI ストレージを構成する場合は、ローカル ストレージはフェールオーバー クラスター インスタンスに使用されないため、アタッチされたストレージを削除してコストを節約できます。 ただし、アタッチされたストレージは記憶域スペース ダイレクトの FCI ソリューションに使用できるので、その場合は削除しても役に立たない可能性があります。 お使いの FCI ストレージ ソリューションを確認して、アタッチされたストレージの削除がコストの節約に最適かどうかを判断します。

次のステップ

仮想マシン環境の準備ができたので、フェールオーバー クラスター インスタンスを構成できる状態になりました。

次のいずれかのガイドを選択して、ビジネスに適した FCI 環境を構成します。

詳細については、以下をご覧ください。