次の方法で共有


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 の場合、1 つのサブネットまたは複数のサブネットに SQL Server VM をデプロイできます。

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

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

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

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

SQL Server VM を 1 つのサブネットにデプロイする場合は、 Azure Load Balancer と DNN 接続オプションの違いを確認してください。 FCI 用に環境の残りの部分を準備する前に、この情報を使用して最適なオプションを決定します。

SQL Server VM を 1 つのサブネットにデプロイする場合、それ以上のネットワーク構成は必要ありません。

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. NIC プライベート IP アドレスを書き留めます。 この値は、DNS サーバーの IP アドレスとして使用します。 この例の画像では、プライベート IP アドレスは 10.38.0.4 です。

DC-VM-1 仮想マシンの [ネットワーク] 画面のスクリーンショット。値が 10.38.0.4 の NIC プライベート IP フィールドが強調表示されています。

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

前の手順で指定した値を DNS サーバーの IP アドレスとして使用するように仮想ネットワークを構成します。

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

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

SQLHAVNET 仮想ネットワークの [DNS サーバー] 画面のスクリーンショット。[カスタム] オプションが選択され、[IP アドレス] の下で [DNS サーバーの追加] が強調表示されています。

仮想マシンの作成

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

Note

SQL Server VM をデプロイする前に、選択した FCI ストレージ オプション で 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 アドレスを割り当てる必要があります。

フェールオーバー クラスター インスタンスのネットワーク名として使用するために、各 SQL Server VM にセカンダリ IP アドレスを割り当てます。 Windows Server 2016 以前の場合は、クラスター ネットワーク名の各 SQL Server VM にもセカンダリ IP アドレスを割り当てます。 これを行うと、単一のサブネット環境での要件と同様に、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 アドレスのみを割り当てます。 仮想ネットワーク名 (VNN) を使用してクラスターを構成する場合を除き、Windows クラスター IP を割り当てる手順をスキップします。この場合、Windows Server 2016 の場合と同様に、両方の IP アドレスを各 SQL Server VM に割り当てます。

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

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

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

    SQL-VM-1 仮想マシンの [ネットワーク] 画面のスクリーンショット。[ネットワーク インターフェイス] フィールドが強調表示されています。

  3. [ネットワーク インターフェイス] ページで、 [設定] ペインの [IP 構成] を選択してから、 [+ 追加] を選択して追加の 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 構成の追加を終了します。

    [IP 構成の追加] 画面のスクリーンショット。名前は windows-cluster-ip に設定されます。割り当ては静的に設定されます。IP アドレスは '10.38.1.10' に設定され、パブリック IP アドレスは [関連付け解除] に設定されます。

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

    [IP 構成の追加] 画面のスクリーンショット。[名前] フィールドは FCI-network-name に設定されます。割り当ては静的に設定されます。IP アドレスは '10.38.1.11' に設定され、パブリック IP アドレスは関連付け解除に設定されます。

  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. Bastion を使用して仮想マシンに接続します。 Bastion を使用して仮想マシンに初めて接続するときに、ネットワーク上で PC を検出できるようにするかどうかを確認するプロンプトが表示されます。 [はい] を選択します。

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

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

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

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

  6. [ 機能の選択 ] 画面で、 データベース エンジン サービスAnalysis Servicesおよび Reporting Services - Native のすべての機能を削除します。 [共有機能] の下にあるものは何も削除しないでください。 次のスクリーンショットのようになります。

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

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

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

ファイアウォールを開く

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

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

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

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

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

使用先: ロードバランサーが単一サブネットシナリオで使用される FCI。
ファイル共有 UDP 445 ファイル共有サービスによって使用されるポート。

利用される対象: FCI の Premium ファイル共有。

ドメインに参加する

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

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

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