Azure VM 上の SQL Server に可用性グループを移行する

この記事では、Azure Migrate: Server Migration ツールを使用して、SQL Server Always On 可用性グループを Azure VM 上の SQL Server に移行する方法について説明します。 移行ツールを使用すると、SQL Server をホストしている Azure VM に、可用性グループ内の各レプリカをクラスター メタデータ、可用性グループ メタデータ、その他の必要な高可用性コンポーネントと共に移行できます。

この記事では、次の方法について説明します。

  • Azure とソース環境を移行に向けて準備します。
  • サーバーのレプリケートを開始します。
  • レプリケーションを監視します。
  • 完全なサーバーの移行を実行します。
  • AlwaysOn 可用性グループを再構成します。

このガイドでは、任意のサーバーまたは仮想マシンを物理サーバーとして扱う Azure Migrate のエージェントベースの移行アプローチを使用します。 物理マシンを移行するとき、Azure Migrate: Server Migration では、Azure Site Recovery サービスのエージェントベースのディザスター リカバリーと同じレプリケーション アーキテクチャが使用されており、一部のコンポーネントでは、同じコード ベースが共有されています。 一部のコンテンツは、Site Recovery のドキュメントにリンクされている場合があります。

前提条件

このチュートリアルを開始する前に、以下の前提条件を完了している必要があります。

  1. Azure サブスクリプション。 必要に応じて、無料アカウントを作成します。
  2. Azure PowerShell モジュールをインストールします。
  3. GitHub リポジトリから PowerShell サンプル スクリプトをダウンロードします。

Azure を準備する

Server Migration ツールを使用した移行に向けて Azure を準備します。

タスク 詳細
Azure Migrate プロジェクトの作成 Azure アカウントには、新規プロジェクトを作成するために共同作成者または所有者のアクセス許可が必要です。
Azure アカウントのアクセス許可の確認 Azure アカウントでは、Key Vault を作成し、VM を作成し、Azure マネージド ディスクに書き込むために、Azure サブスクリプションに対する共同作成者または所有者のアクセス許可、Azure Active Directory (AAD) アプリを登録するためのアクセス許可、Azure サブスクリプションに対するユーザー アクセス管理者のアクセス許可が必要になります。
Azure Virtual Network の設定 Azure Virtual Network (VNet) を設定します。 Azure にレプリケートすると、Azure VM が作成され、移行の設定時に指定した Azure VNet に参加させられます。

適切なアクセス許可を持っているか確認するには、次の手順に従います。

  1. Azure portal でサブスクリプションを開き、[アクセス制御 (IAM)] を選択します。
  2. [アクセスの確認] で関連するアカウントを探し、それを選択してアクセス許可を表示します。
  3. 共同作成者または所有者のアクセス許可を持っている必要があります。
    • 無料の Azure アカウントを作成したばかりであれば、自分のサブスクリプションの所有者になっています。
    • サブスクリプションの所有者でない場合は、所有者と協力してロールを割り当てます。

アクセス許可を割り当てる必要がある場合は、「Azure ユーザー アカウントを準備する」の手順に従います。

移行を準備する

サーバーの移行を準備するには、物理サーバーの設定を確認し、レプリケーション アプライアンスをデプロイする準備を行います。

マシンの要件を確認する

Azure に移行するための要件がソース マシンで満たされていることを確認します。 次の手順に従います。

  1. サーバーの要件を確認します。
  2. Azure にレプリケートするソース マシンが、Azure VM の要件に準拠していることを確認します。
  3. 一部の Windows ソースでは、いくつかの追加の変更が必要です。 これらの変更を行う前にソースを移行すると、VM が Azure で起動しなくなる可能性があります。 一部のオペレーティング システムでは、これらの変更が Azure Migrate によって自動的に行われます。

レプリケーションの準備

Azure Migrate: Server Migration では、レプリケーション アプライアンスを使用してマシンを Azure にレプリケートします。 レプリケーション アプライアンスは、次のコンポーネントを実行します。

  • 構成サーバー: 構成サーバーは、オンプレミスと Azure の間の通信を調整し、データのレプリケーションを管理します。
  • プロセス サーバー: プロセス サーバーはレプリケーション ゲートウェイとして機能します。 レプリケーション データを受信し、それをキャッシュ、圧縮、暗号化によって最適化して、Azure のキャッシュ ストレージ アカウントに送信します。

次のようにして、アプライアンスのデプロイの準備をします。

  • レプリケーション アプライアンスをホストするように Windows Server 2016 マシンを作成します。 マシンの要件を確認します。
  • レプリケーション アプライアンスでは MySQL が使用されます。 アプライアンスに MySQL をインストールするためのいくつかの方法を確認します。
  • パブリック クラウドおよび政府機関向けクラウドにアクセスするレプリケーション アプライアンスに必要な Azure URL を確認します。
  • レプリケーション アプライアンスのポート アクセス要件を確認します。

Note

レプリケーション アプライアンスは、レプリケートまたは移行しているソース マシン以外のマシンにインストールする必要があり、Azure Migrate Discovery and Assessment アプライアンスを以前にインストールしたことのあるマシンにはインストールできません。

レプリケーション アプライアンス インストーラーをダウンロードする

レプリケーション アプライアンス インストーラーをダウンロードするには、次の手順に従います。

  1. Azure Migrate プロジェクトの >> の [Azure Migrate: Server Migration] で、[検出] を選択します。

    VM の検出

  2. [マシンの検出][マシンは仮想化されていますか?] で、[物理またはその他 (AWS、GCP、Xen など)] を選択します。

  3. [ターゲット リージョン] で、マシンの移行先にする Azure リージョンを選択します。

  4. [移行先のリージョンが <リージョン名> であることを確認してください] を選択します。

  5. [リソースの作成] を選択します。 これで、Azure Site Recovery コンテナーがバックグラウンドで作成されます。

    • Azure Migrate: Server Migration を使用した移行を既に設定してある場合は、リソースが以前に設定されているため、ターゲット オプションを構成できません。
    • このボタンの選択後は、このプロジェクトのターゲット リージョンを変更することはできません。
    • 後続のすべての移行は、このリージョンに対して行われます。
  6. [新しいレプリケーション アプライアンスをインストールしますか?] で、[レプリケーション アプライアンスのインストール] を選択します。

  7. [レプリケーション アプライアンス ソフトウェアをダウンロードしてインストールする] で、アプライアンスのインストーラーと登録キーをダウンロードします。 このキーは、アプライアンスを登録するために必要です。 キーは、ダウンロード後 5 日間有効です。

    プロバイダーのダウンロード

  8. アプライアンスの設定ファイルとキー ファイルを、アプライアンス用に作成した Windows Server 2016 マシンにコピーします。

  9. インストールが完了すると、アプライアンス構成ウィザードが自動的に起動します (アプライアンス マシンのデスクトップに作成された cspsconfigtool ショートカットを使用して、ウィザードを手動で起動することもできます)。 ウィザードの [アカウントの管理] タブを使用して、次の詳細を含むダミー アカウントを作成します。

    • フレンドリ名としての "guest"
    • ユーザー名としての "username"
    • アカウントのパスワードとしての "password"。

    このダミー アカウントは、「レプリケーションを有効にする」ステージで使用します。

  10. セットアップが完了しアプライアンスが再起動した後に、[マシンの検出][構成サーバーの選択] で新しいアプライアンスを選択し、[登録の終了処理] を選択します。 登録の終了処理では、レプリケーション アプライアンスを準備するための終了タスクがいくつか実行されます。

    登録の終了処理

Mobility Service をインストールする

移行するサーバーに Mobility Service エージェントをインストールします。 エージェント インストーラーは、レプリケーション アプライアンス上で使用できます。 適切なインストーラーを見つけて、移行したい各マシンにエージェントをインストールします。

Mobility Service をインストールするには、次の手順に従います。

  1. レプリケーション アプライアンスにサインインします。

  2. %ProgramData%\ASR\home\svsystems\pushinstallsvc\repository に移動します。

  3. マシンのオペレーティング システムとバージョンに合ったインストーラーを見つけます。 サポートされているオペレーティング システムを確認してください。

  4. 移行したいマシンにインストーラー ファイルをコピーします。

  5. アプライアンスをデプロイしたときに生成されたパスフレーズを持っていることを確認します。

    • マシン上の一時テキスト ファイルにファイルを格納します。
    • レプリケーション アプライアンスのパスフレーズを取得できます。 現在のパスフレーズを表示するには、コマンド ラインで C:\ProgramData\ASR\home\svsystems\bin\genpassphrase.exe -v を実行します。
    • パスフレーズを再生成しないでください。 そうすると接続が切断され、レプリケーション アプライアンスを再登録しなければならなくなります。
    • /Platform パラメーターで、VMware マシンと物理マシンの両方に VMware を指定します。
  6. マシンに接続し、インストーラー ファイルの内容をローカル フォルダー (c:\temp など) に抽出します。 管理者のコマンド プロンプトでこれを実行します。

    ren Microsoft-ASR_UA*Windows*release.exe MobilityServiceInstaller.exe
    MobilityServiceInstaller.exe /q /x:C:\Temp\Extracted
    cd C:\Temp\Extracted
    
  7. モビリティ サービスのインストーラーを実行します。

    UnifiedAgent.exe /Role "MS" /Platform "VmWare" /Silent
    
  8. レプリケーション アプライアンスにエージェントを登録します。

    cd C:\Program Files (x86)\Microsoft Azure Site Recovery\agent
    UnifiedAgentConfigurator.exe  /CSEndPoint <replication appliance IP address> /PassphraseFilePath <Passphrase File Path>
    

インストール後、検出されたマシンが Azure Migrate: Server Migration に表示されるまでに、いくらか時間がかかることがあります。 VM が検出されると、[検出済みサーバー] の数が増えます。

検出済みサーバー

ソース マシンを準備する

ソース マシンを準備するには、クラスター ノードで Get-ClusterInfo.ps1 スクリプトを実行して、クラスター リソースに関する情報を取得します。 スクリプトによって、ロール名、リソース名、IP、プローブ ポートが Cluster-Config.csv ファイルに出力されます。

./Get-ClusterInfo.ps1

ロード バランサーの作成

クラスターとクラスター ロールが要求に適切に応答するには、Azure ロード バランサーが必要です。 ロード バランサーを使用しない場合、VM は、ネットワークまたはクラスターに所属しているとは認識されないので、クラスター IP アドレスに到達できません。

ロード バランサーを作成するには、次の手順に従います。

  1. Cluster-Config.csv ファイルの列に入力します。
列ヘッダー 説明
NewIP CSV ファイル内の各リソースの Azure 仮想ネットワーク (またはサブネット) の IP アドレスを指定します。
ServicePort CSV ファイル内の各リソースで使用するサービス ポートを指定します。 SQL クラスター リソースの場合は、CSV のプローブ ポートと同じ値をサービス ポートに使用します。 他のクラスター ロールの場合、使用される既定値は 1433 ですが、現在のセットアップで構成されているポート番号を引き続き使用できます。
  1. 次のパラメーターを使用して、Create-ClusterLoadBalancer.ps1 スクリプトを実行して、ロード バランサーを作成します。
パラメーター Type 説明
ConfigFilePath Mandatory 前の手順で入力した Cluster-Config.csv ファイルのパスを指定します。
ResourceGroupName Mandatory ロード バランサーを作成するリソース グループの名前を指定します。
VNetName Mandatory ロード バランサーが関連付けられる Azure 仮想ネットワークの名前を指定します。
SubnetName Mandatory ロード バランサーが関連付けられる Azure 仮想ネットワークのサブネットの名前を指定します。
VNetResourceGroupName Mandatory ロード バランサーが関連付けられる Azure 仮想ネットワークのリソース グループの名前を指定します。
場所 Mandatory ロード バランサーを作成する場所を指定します。
LoadBalancerName Mandatory 作成するロード バランサーの名前を指定します。
./Create-ClusterLoadBalancer.ps1 -ConfigFilePath ./clsuterinfo.csv -ResourceGroupName $resoucegroupname -VNetName $vnetname -subnetName $subnetname -VnetResourceGroupName $vnetresourcegroupname -Location "eastus" -LoadBalancerName $loadbalancername

マシンをレプリケートする

今度は、移行の対象となるマシンを選択します。 最大 10 台のマシンをまとめてレプリケートできます。 レプリケートするマシンがそれより多い場合は、10 台をひとまとまりとして同時にレプリケートしてください。

マシンをレプリケートするには、次の手順に従います。

  1. Azure Migrate プロジェクト>>の [Azure Migrate: サーバー移行] で [レプリケート] を選びます。

    [移行ツール] の [Azure Migrate: Server Migration] で [レプリケート] ボタンが選択されている Azure Migrate の [サーバー] 画面のスクリーンショット

  2. [レプリケート][ソース設定][マシンは仮想化されていますか?] で、[物理またはその他 (AWS、GCP、Xen など)] を選択します。

  3. [オンプレミスのアプライアンス] で、自分が設定した Azure Migrate アプライアンスの名前を選択します。

  4. [プロセス サーバー] で、レプリケーション アプライアンスの名前を選択します。

  5. [ゲストの資格情報] で、この記事で以前に「レプリケーション インストーラーのセットアップ」で作成したダミー アカウントを選択します。 その後、[次へ: 仮想マシン] を選択します。

    [レプリケート] 画面で [ゲストの資格情報] フィールドが強調表示されている [ソースの設定] タブのスクリーンショット。

  6. [仮想マシン][評価から移行設定をインポートしますか?] は、既定の設定である [いいえ。移行設定を手動で指定します] のままにしておきます。

  7. 移行したい各 VM を確認します。 次に、[次へ: ターゲット設定] を選択します。

    VM を選択する

  8. [ターゲット設定] で、サブスクリプションと、移行先となるターゲット リージョンを選択し、移行後に Azure VM が配置されるリソース グループを指定します。

  9. [仮想ネットワーク] で、移行後に Azure VM の参加先となる Azure VNet およびサブネットを選択します。

  10. [可用性オプション] で、以下を選択します。

    • 可用性ゾーン。移行されたマシンをリージョン内の特定の可用性ゾーンにピン留めします。 このオプションを使用して、複数ノードのアプリケーション層を形成するサーバーを可用性ゾーン間で分散させます。 このオプションを選択した場合は、[コンピューティング] タブで選択した各マシンに使用する可用性ゾーンを指定する必要があります。このオプションは、移行用に選択したターゲット リージョンで Availability Zones がサポートされている場合にのみ使用できます。
    • 可用性セット。移行されたマシンを可用性セットに配置します。 このオプションを使用するには、選択されたターゲット リソース グループに 1 つ以上の可用性セットが必要です。
    • [インフラストラクチャ冗長は必要ありません] オプション (移行されたマシンに対してこれらの可用性構成がいずれも不要な場合)。
  11. [Disk encryption type]\(ディスク暗号化の種類\) で、以下を選択します。

    • プラットフォーム マネージド キーを使用した保存時の暗号化
    • カスタマー マネージド キーを使用した保存時の暗号化
    • プラットフォーム マネージド キーとカスタマー マネージド キーを使用した二重暗号化

    Note

    CMK を使用して VM をレプリケートするには、ターゲット リソース グループにディスク暗号化セットを作成する必要があります。 ディスク暗号化セット オブジェクトによって、SSE に使用する CMK を含む Key Vault にマネージド ディスクがマップされます。

  12. [Azure ハイブリッド特典] で、

    • Azure ハイブリッド特典を適用しない場合は、[いいえ] を選択します。 [次へ]を選択します。
    • アクティブなソフトウェア アシュアランスまたは Windows Server のサブスクリプションの対象となっている Windows Server マシンがあり、移行中のマシンにその特典を適用する場合は、[はい] を選択します。 [次へ]を選択します。

    ターゲット設定

  13. [コンピューティング] で、VM の名前、サイズ、OS ディスクの種類、および可用性構成 (前の手順で選択した場合) を確認します。 VM は Azure の要件に準拠している必要があります。

    • [VM サイズ]: 評価の推奨事項を使用している場合は、[VM サイズ] ドロップダウンに推奨サイズが表示されます。 それ以外の場合は、Azure Migrate によって、Azure サブスクリプション内の最も近いサイズが選択されます。 または、[Azure VM サイズ] でサイズを手動で選択します。
    • [OS ディスク]: VM の OS (ブート) ディスクを指定します。 OS ディスクは、オペレーティング システムのブートローダーとインストーラーがあるディスクです。
    • [可用性ゾーン]: 使用する可用性ゾーンを指定します。
    • [可用性セット]: 使用する可用性セットを指定します。

    コンピューティングの設定

  14. [ディスク] で、VM ディスクを Azure にレプリケートするかどうかを指定し、Azure でのディスクの種類 (Standard SSD か HDD、または Premium マネージド ディスク) を選択します。 [次へ]を選択します。

    ディスクの設定

  15. [レプリケーションの確認と開始] で設定を確認し、[レプリケート] を選択して、サーバーの初期レプリケーションを開始します。

Note

レプリケーションが開始される前であれば、[管理][マシンのレプリケート] でレプリケーションの設定をいつでも更新できます。 レプリケーションの開始後は、設定を変更することができません。

追跡して監視する

レプリケーションは、次の順序で進められます。

  • [レプリケート] を選択すると、"レプリケーションの開始" ジョブが開始されます。
  • "レプリケーションの開始" ジョブが正常に終了すると、マシンで Azure への初期レプリケーションが開始されます。
  • 初期レプリケーションが完了すると、差分レプリケーションが開始されます。 オンプレミスのディスクに対する増分変更は、Azure のレプリカ ディスクに定期的にレプリケートされます。

ジョブの状態は、ポータルの通知で追跡できます。

レプリケーションの状態を監視するには、[Azure Migrate: Server Migration] 内で [レプリケート中のサーバー] を選択します。 レプリケーションの監視

VM の移行

マシンがレプリケートされると、移行の準備が整います。 サーバーを移行するには、次の手順に従います。

  1. Azure Migrate プロジェクト>>> [>] で、 [サーバーのレプリケート] を選択します。

    サーバーのレプリケート

  2. 移行されたサーバーが移行元サーバーと同期されるようにするには、SQL データをホストしているディスクがオンラインになっていることを確認しながら、可用性グループのすべてのレプリカで SQL Server サービスを停止します ([SQL Server 構成マネージャー][サービス] の場合)。

  3. [コンピューターのレプリケート] サーバー名の選択 >> で、次の手順に進む前に、移行するサーバーで SQL Server サービスを停止してから、最後に同期されたタイムスタンプが設定されていることを確認します。 わずか数分で完了します。

  4. [マシンのレプリケート] で VM を右クリック [移行] を選択します。

  5. [移行][仮想マシンをシャットダウンし、データ損失のない計画された移行を実行しますか] で、[いいえ][OK] の順に選択します。

    Note

    物理サーバーを移行する場合、ソース マシンのシャットダウンは自動的にはサポートされません。 移行期間の一環としてアプリケーションを停止させ (アプリケーションが接続を受け付けないようにして)、移行を開始することをお勧めします (移行の完了前に残りの変更を同期できるように、サーバーは動作させ続けておく必要があります)。

  6. VM に対して移行ジョブが開始されます。 Azure 通知でジョブを追跡します。

  7. ジョブが完了したら、[仮想マシン] ページで VM を表示して管理できます。

クラスターを再構成する

VM を移行し終えたら、クラスターを再構成します。 次の手順に従います。

  1. Azure で移行されたサーバーをシャットダウンします。

  2. 移行したマシンをロード バランサーのバックエンド プールに追加します。 [ロード バランサー][バックエンド プール] に移動 バックエンド プールを選択 >>します。 3. Azure で移行したサーバーを起動し、任意のノードにログインします。

  3. ClusterConfig.csv ファイルをコピーし、CSV をパラメーターとして渡して Update-ClusterConfig.ps1 スクリプトを実行します。 これにより、クラスターが Azure で動作するための新しい構成でクラスター リソースが更新されます。

    ./Update-ClusterConfig.ps1 -ConfigFilePath $filepath
    

Always On 可用性グループの準備が整いました。

移行を完了する

  1. 移行が完了したら、VM を右クリックして、>> を選択します。 次の処理が実行されます。
    • オンプレミス マシンのレプリケーションを停止します。
    • Azure Migrate: Server Migration の [サーバーをレプリケートしています] 数からマシンを削除します。
    • マシンのレプリケーション状態情報をクリーンアップします。
  2. Azure VM の Windows エージェントを、移行するマシンにインストールします。
  3. データベース接続文字列、および Web サーバー構成の更新など、移行後のアプリの微調整を実行します。
  4. Azure で現在実行されている移行後のアプリケーション上で、最終的なアプリケーションと移行の受け入れのテストを実行します。
  5. 移行された Azure VM インスタンスにトラフィックを切り替えます。
  6. ローカル VM インベントリからオンプレミスの VM を削除します。
  7. ローカル バックアップからオンプレミスの VM を削除します。
  8. Azure VM の新しい場所と IP アドレスを示すように内部ドキュメントを更新します。

移行後のベスト プラクティス

次のステップ

Azure クラウド導入フレームワークでのクラウド移行の工程を調査します。