Hyper-V VM を Azure に移行するラボをやってみた
はじめに
Hyper-Vの仮想サーバーをAzureに移行する方法を調べていたところ、公式のラボがありました。
実際にやってみたところ、若干違う点や手間取った点ありましたので、注意点などを挙げていこうと思います。
概要
このラボでは以下の事をやります。
- 移行対象: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分ほどかかりました。
- GitHubにアクセスして、テンプレートからDeploy to Azureで作成します。
- タスク 2: Azure Bastion をデプロイする
- ホストのサーバーに接続するための踏み台を作成します。
- 先ほどVMを作成した仮想ネットワーク上にサブネットとBastionを追加します。
- 8分強かかりました。
- Bastionは存在し続ける限り課金されますので注意ください。
- タスク 3: Azure VM に入れ子になった VM をデプロイする
- ホストのサーバーにBastion経由で接続します。
- ポップアップブロックしているとNGになるので、エラーが出たら許可します。
- クリップボードは共有しておきます
- Edgeを起動して、移行対象のVMにするVHDファイルをダウンロードします。
- Edgeは初回起動なので、アカウント無しで設定して使いました。
- VHDファイルダウンロードページはシミュレーションの画面とは異なりました。
- 下のほうにスクロールすると、WinSrv2022のVHDのダウンロードリンクがあります。
- Edgeは初回起動なので、アカウント無しで設定して使いました。
- ダウンロード後はHyper-Vで起動・接続し、OSの初期設定を行います。
- Bastion経由なので、画面がとても遅いです。
- パスワードなどをHyper-Vでコピペする際は、メニューに操作があります。
- ログインする際のAlt+Ctrl+Vも、メニューにあります。
- Bastion経由なので、画面がとても遅いです。
- ログイン後にコンピュータ名を変更するPowershellは、管理者として実行にします。
- PowerShellのウィンドウにコマンドは直接コピペできないので、一度検索ボックスにペーストしてから再度コピーするなどします。
- PowerShellのウィンドウにコマンドは直接コピペできないので、一度検索ボックスにペーストしてから再度コピーするなどします。
- ホストのサーバーにBastion経由で接続します。
演習 2: Azure Migrate を使用して評価と移行の準備をする
以降は移行元ホスト機から操作します。
- タスク 1: Hyper-V 環境を構成する
- Azure Migrate 構成 PowerShell スクリプトをダウンロードして実行します。
- 確認ダイアログが5回程度出てきます。yとNが混在するので注意。
- Azure Migrate 構成 PowerShell スクリプトをダウンロードして実行します。
- タスク 2: Azure Migrate プロジェクトを作成する
- 移行元ホスト機からAzureにログインします。
- Migrateプロジェクトを作成します。
- GeographyはJapanで作成します。
- Migrateプロジェクトを作成します。
- 移行元ホスト機からAzureにログインします。
- タスク 3: ターゲットの Azure 環境を実装する
- マイグレーション用仮想ネットワークを、Japan Eastで作成します
-
IP address
タブに遷移し、アドレス空間10.7.0.0/16
で作成します。- 一緒にサブネットは
/24
で作成します。
- 一緒にサブネットは
- テスト用仮想ネットワークも作成します。
- リージョンはJapan Eastです。
- リージョンはJapan Eastです。
- レプリケーション用ストレージアカウントを作成します。
- リージョンは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分ほどかかります
- Discover選択時は
- タスク 2: 評価を構成、実行、表示する
- AzureポータルのMigrateに戻って更新すると、検出結果が表示されます。
-
評価の設定
は、以下のように設定しました。移行先であるJapan Eastを指定しました。 - 評価は以下のように表示されます。
- AzureポータルのMigrateに戻って更新すると、検出結果が表示されます。
演習 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の設定をやり直してみてください。
- その場合は、ブラウザを更新して再度Discoverの設定をやり直してみてください。
- 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