🧑‍💻

Hyper-V VM を Azure に移行するラボをやってみた

2024/02/25に公開

はじめに

Hyper-Vの仮想サーバーをAzureに移行する方法を調べていたところ、公式のラボがありました。

https://microsoftlearning.github.io/AZ-801-Configuring-Windows-Server-Hybrid-Advanced-Services.ja-JP/Instructions/Labs/LAB_07_Implementing_migration_in_hybrid_scenarios.html

実際にやってみたところ、若干違う点や手間取った点ありましたので、注意点などを挙げていこうと思います。

概要

このラボでは以下の事をやります。

  • 移行対象:Hyper-V上で起動している仮想サーバー
    • Hyper-Vを実行しているホスト機は、Azureに作成します
  • 移行先:Azure上に仮想サーバーとして作成

簡単な構成を以下に図示します。

アカウントの制限と、構築リージョンについて

私は30日の無料アカウントで行いました。無料アカウントだと1つのリージョンにvCPUが4つまでの制限があります。
この制限のため、公式ラボの通りに移行対象/移行先両方ともEast USリージョンで動かすことができません。
そのため、移行対象をEast USに、移行先をJapan Eastにしました。

作業注意点

手順はラボのページにある流れになりますので、注意点等を記述していきます。

おすすめのやり方

ラボのページの中に、画面操作を体験できる対話型シミュレートのURLがあります。

Azureの画面、ラボのページ、対話型シミュレートの3画面を表示しながら進めると楽です。

また待ち時間が度々入りますので、時間をつぶす方法を用意しておくと良いです。



以下より、ラボのページのセクションごとに、注意点/気になった点を記載していきます。

演習 1: ラボ環境を準備する

  • タスク 1: Azure Resource Manager クイックスタート テンプレートを使用して Azure VM をデプロイする
    • GitHubにアクセスして、テンプレートからDeploy to Azureで作成します。
      • ここで作るRGのリージョンはEast USにします。
      • 13分ほどかかりました。
  • タスク 2: Azure Bastion をデプロイする
    • ホストのサーバーに接続するための踏み台を作成します。
    • 先ほどVMを作成した仮想ネットワーク上にサブネットとBastionを追加します。
      • 8分強かかりました。
      • Bastionは存在し続ける限り課金されますので注意ください。
  • タスク 3: Azure VM に入れ子になった VM をデプロイする
    • ホストのサーバーにBastion経由で接続します。
      • ポップアップブロックしているとNGになるので、エラーが出たら許可します。
      • クリップボードは共有しておきます
    • Edgeを起動して、移行対象のVMにするVHDファイルをダウンロードします。
      • Edgeは初回起動なので、アカウント無しで設定して使いました。
      • VHDファイルダウンロードページはシミュレーションの画面とは異なりました。
      • 下のほうにスクロールすると、WinSrv2022のVHDのダウンロードリンクがあります。
    • ダウンロード後はHyper-Vで起動・接続し、OSの初期設定を行います。
      • Bastion経由なので、画面がとても遅いです。
      • パスワードなどをHyper-Vでコピペする際は、メニューに操作があります。
      • ログインする際のAlt+Ctrl+Vも、メニューにあります。
    • ログイン後にコンピュータ名を変更するPowershellは、管理者として実行にします。
      • PowerShellのウィンドウにコマンドは直接コピペできないので、一度検索ボックスにペーストしてから再度コピーするなどします。

演習 2: Azure Migrate を使用して評価と移行の準備をする

以降は移行元ホスト機から操作します。

  • タスク 1: Hyper-V 環境を構成する
    • Azure Migrate 構成 PowerShell スクリプトをダウンロードして実行します。
      • 確認ダイアログが5回程度出てきます。yとNが混在するので注意。
  • タスク 2: Azure Migrate プロジェクトを作成する
    • 移行元ホスト機からAzureにログインします。
      • Migrateプロジェクトを作成します。
        • GeographyはJapanで作成します。
  • タスク 3: ターゲットの Azure 環境を実装する
    • マイグレーション用仮想ネットワークを、Japan Eastで作成します
    • IP addressタブに遷移し、アドレス空間10.7.0.0/16で作成します。
      • 一緒にサブネットは/24で作成します。
    • テスト用仮想ネットワークも作成します。
      • リージョンはJapan Eastです。
    • レプリケーション用ストレージアカウントを作成します。
      • リージョンはJapan Eastにします。

演習 3: Azure Migrate を使用して Hyper-V の移行を評価する

Azure Migrate アプライアンスを移行元ホストにデプロイして評価します。引き続き、移行元ホスト機から操作です。

  • タスク 1: Azure Migrate アプライアンスをデプロイして構成する
    • Discover選択時はUsing applianceを選ぶ
    • ここで生成されるキーは後ほど使用するので控えておきます。
      • 3分くらいかかりました
    • Zipファイルをダウンロード・解凍して、中身をHyper-Vで起動します。
      • シミュレーションでは、セッティングからもメモリのサイズを変更しています。
      • ログイン後に検証するためのページにアクセスします。5分くらいかかります。
    • 先ほどのキーをアプライアンス機に設定します。
      • ここの検証も10分弱かかります
    • サイトの説明には、[Appliance Configuration Manager] ページの Provide Hyper-V host/cluster details セクションで、 Disable the slider if you don’t want to perform these features のトグル ボタンを有効にして、とありますが、無効にします。
      • Start discovery クリックの後も15分ほどかかります
  • タスク 2: 評価を構成、実行、表示する
    • AzureポータルのMigrateに戻って更新すると、検出結果が表示されます。
    • 評価の設定は、以下のように設定しました。移行先であるJapan Eastを指定しました。
    • 評価は以下のように表示されます。

演習 4: Azure Migrate を使用して Hyper-V VM を移行する

続けて、移行とモダナイゼーションを行います。引き続き、移行元ホスト機から操作です。

  • タスク 1: Hyper-V VM の移行を準備する
    • Discoverの設定項目について、ページにもシミュレーションにもないWhere do you want to migrate to?という項目がありました。Azure VMを指定しました。
    • ここでは2回ダウンロードを行いますが、最初のダウンロードは、ボタンではなくリンクです。
      • ダウンロードしたEXEを起動した後、ボタンのほうをダウンロードします
    • Azure Site Recovery ProviderでRegistrationが終わった後も、Azure PortalのFinalize registrationが有効化しませんでした。
      • その場合は、ブラウザを更新して再度Discoverの設定をやり直してみてください。
  • タスク 2: Hyper-V VM のレプリケーションを構成する
    • 「[レプリケート] ページの [ターゲットの設定] タブで、次の設定を指定します (他の設定は既定値のままにしておきます)。」 の個所で、入力項目Cache storage accountでストレージアカウントを選んだ際、The Azure Migrate service cannot access the cache storage account 'xxxxxxxx'. Learn how to configure the storage account for access using managed identities.というエラーがでました。
    • 数分待ってタスク2からやり直したら、エラーが出なくなりました。もしも同様の事象が起こった方はご参考にしてください。
  • レプリケート開始後はコンソールにレプリカ対象のマシンが見れるようになります。
    • これがProtectedになるまで待ちます。
  • タスク 3: Hyper-V VM の移行を実行する
    • Test migrationで続けます。
    • 成功すると、新しいVMとして動いています。
    • 先のページに戻って、テストを削除します。
    • 画面更新して、Migrateを実行します。
    • 移行中のステータスは以下になっていました。
    • 完了すると、Planned failover finishedになり、移行のページに戻るとMigrationsが1になっています。
    • 移行対象のVMは停止していました。


最終的なリソース

最終的に各リソースグループに作成されたリソースは以下になります。

AZ801-L0701-RG

AZ801-L0702-RG

AZ801-L0703-RG

片付け

公式ラボのページのコマンドであらかた削除できます。残った場合は手作業で消しました。

Get-AzResourceGroup -Name 'AZ801-L070*'
Get-AzResourceGroup -Name 'AZ801-L070*' | Remove-AzResourceGroup -Force -AsJob

おわりに

今回はラボに従い、Hyper-V上のVMをAzureに移行してみました。1から調べてトライアンドエラーするより効率的かと思いました。
ですがこのラボでも4回くらいやり直しました。本記事にある点に注意すれば、やり直してしまった点は回避できると思います。

この記事がどなたかのお役に立てれば幸いです。

Discussion