今回は Azure への移行サービスである Azure Migrate の検証環境を作成しました
Azure Migrate のサポート シナリオ
Azure Migrate を使うと以下の環境で動いているサーバーを Azure に移行することが可能です
- 物理サーバー
- Hyper-V
- VM ware
- AWS
- GCP
個人が機能をお試しするには やはりクラウドサービスを使うのが簡単です
なので、今回は Azure 上に Hyper-V VM を準備して Azure Migrate を試してみたいと思います
前提条件 & 作成環境
Hyper-V 環境で Azure Migrate を使うためには以下の条件が必要になります
要件 | 詳細 |
---|---|
Hyper-V ホスト | サーバーが配置されている Hyper-V ホストは、スタンドアロンでも、クラスターに含まれていてもかまいません。 ホストでは、Windows Server 2019、Windows Server 2016、または Windows Server 2012 R2 が実行されている必要があります。 Common Information Model (CIM) セッションを使用して、アプライアンスがサーバー メタデータとパフォーマンス データをプルするために接続できるように、WinRM ポート 5985 (HTTP) で受信接続が許可されていることを確認します。 |
アプライアンスのデプロイ | Hyper-V ホストには、アプライアンスにサーバーを割り当てるためのリソースが必要です。 – 16 GB の RAM、8 個の vCPU、約 80 GB のディスク記憶域。 – 外部仮想スイッチと、アプライアンスに対するインターネット アクセス (直接またはプロキシ経由)。 |
サーバー | サーバーでは、任意の Windows または Linux オペレーティング システムを実行できます。 |
Azure Migrate 検出および評価を使用して Hyper-V のサーバーを検出する - Azure Migrate | Microsoft Learn
これを見ると Windows Server 上で移行したいマシンを動かす必要があります
そのため Azure VM に Windows Server をデプロイし、その上に Hyper-V 環境を構築し Azure へ移行するサーバーを用意します
入れ子の Hyper-V (Nested Hyper-V) の環境が必要になります
Run Hyper-V in a Virtual Machine with Nested Virtualization | Microsoft Learn
入れ子の Hyper-V の前提条件は以下になります
要件 | 詳細 |
---|---|
Hyper-V ホスト | Windows Server 2016/Windows 10 or greater |
VM の構成バージョン | VM configuration version 8.0 or greater |
今回は関係ありませんが、AMD の CPU で入れ子の環境を構築したい場合は以下の前提条件が必要になります
要件 | 詳細 |
---|---|
Hyper-V ホスト | Windows Server 2022/Windows 11 or greater |
VM の構成バージョン | VM configuration version 10.0 or greater |
これらはオンプレミスで 入れ子の環境を作成する場合に必要な条件です
Azure 上で実行する場合は VM のサイズに制限があります
2017年に公開された情報では Dv3 と Ev3 で入れ子の Hyper-V がサポートされています
Introducing the new Dv3 and Ev3 VM sizes | Azure Blog | Microsoft Azure
そこで今回は以下の環境を作成することにしました
要件 | 詳細 |
---|---|
Hyper-V ホスト | Windows Server 2019 |
VM サイズ | Standard D8s v3 (8 vcpu 数、32 GiB メモリ) |
Hyper-V ゲスト | Windows Server 2022 |
Azure VM の Hyper-V 環境設定
作成した Azure VM 上の Windows Server に対して Hyper-V を有効化します
オンプレで入れ子の環境を作成する場合は有効化のコマンドが必要ですが、Azure 環境においては不要でした
有効化が完了したらHyper-V Manager を起動してゲストOSの設定を行います
わかりずらいですが、Azure VM で Hyper-V を実行している環境になります
Azure Migrate の設定
次に Azure Migrate の設定を行います
必要な権限が2つあります
- Azure サブスクリプションに対する共同作成者または所有者のアクセス許可
- Azure Active Directory (AAD) アプリを登録するためのアクセス許可
確認方法は公式 ドキュメントを確認してください
Azure Migrate 検出および評価を使用して Hyper-V のサーバーを検出する - Azure Migrate | Microsoft Learn
次に Hyper-V ホスト (Azure VM) 側の準備を行います
いくつか手順が記載されていますが、Microsoft 側でスクリプトが用意されているので それを実行するだけです
スクリプトは 手順が記載されている公式 ドキュメント内からダウンロード可能です
Azure Migrate 検出および評価を使用して Hyper-V のサーバーを検出する - Azure Migrate | Microsoft Learn
CertUtil -HashFile MicrosoftAzureMigrate-Hyper-V.ps1 SHA256
これを実行し、ハッシュ値を確認して正しいファイルかどうか確認をしておきます次に
MicrosoftAzureMigrate-Hyper-V.ps1
を実行します
何度か Yes/No を聞かれるので 内容を確認して Yes/No を選択します
Azure Migrate のデプロイ
Azure Migrate のリソースを作成します
詳しい手順は Azure Migrate 検出および評価を使用して Hyper-V のサーバーを検出する - Azure Migrate | Microsoft Learn を参考にしてください
手順の一部のスクリーンショットを記載しておきます
Azure Migrate アプライアンスの設定
移行するマシン情報を収集するアプライアンスを設定します
同じく手順は 公式ドキュメントを参考にしてください。スクリーンショットの一部を記載します
※プロジェクト キーの作成後、しばらく放置すると 応答がなかったとなってしまうので キーの作成を確認出来たら確実にメモしておきます
ダウンロードした zip ファイルのハッシュ値確認を確認します
問題なければ 仮想マシンを Hyper-V ホスト (Azure VM) にインポートします
ここで作成した アプライアンスは Azure と通信をさせる必要があります
Azure 側では設定に癖があるのでちょっと注意が必要です
簡単に説明をすると、Azure 基盤側の DHCP は 入れ子環境の VM にまで IP アドレスを渡してくれません
そのため 自前で IP アドレスを渡す環境 (手動 or DHCP) を用意する必要があります
こちらを参考にして進めていきます
Virtualization-Documentation/hyperv-tools/Nested at live · charlieding/Virtualization-Documentation · GitHub
Internal 仮想スイッチの作成
New-VMSwitch -SwitchName "InternalvSwitch" -SwitchType Internal
NAT Gatway を設定するために Internal 仮想スイッチの ifIndex を確認します
Get-NetAdapter

NAT Gateway の設定 (確認した ifIndex を使用します)
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 13
Gateway の追加設定
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24
次に DHCP サーバーの役割をホストの Azure VM にインストールします
インストールが完了したら DHCP の管理コンソールを起動します
DHCP で付与するアドレス範囲を指定します
IPv4 で右クリック > New Scopre..
画面に従って、設定名、アドレス範囲を指定します。今回は例外のアドレスは設定しません
一部の手順のみ スクリーンショットを記載します
作成した Internal 仮想スイッチを アプライアンス VM に設定すると外部と通信ができるようになります
(長かった。。。)
次にアプライアンスが Hyper-v ホスト (Azure VM) と通信ができるように設定をしておきます
※ホスト側の操作になります
Control Panel > Network and Internet > Network Connections
コマンドで作成した仮想スイッチのプロパティを開きます
Internet Protocol Version 4 (TCP/IPv4) を選択し、Properties を選択します
Use the following IP address に適当な IP アドレスを入力します
このアドレスは Hyper-v ホスト (Azure VM) がアプライアンスと通信するときに使います
それでは アプライアンスに接続をして設定をします
アプライアンスを起動すると以下の画面が自動で表示され、Azure との通信確認を行います
ここまでの設定ができていれば緑のチェックマークがつきます
スクロールすると 少し前の手順で作成した キーを入力する画面があります
入力して [Log in] をクリックします
画面に従って Azure AD の資格情報を入力して Azure Migrate への登録を行います
登録が完了するとこのように表示されます
続いて 移行したい ゲストOSを発見できるように ホストの credential 情報を入力します
次に 移行するゲストOSの検出を行うため、Hyper-v ホスト (Azure VM) の情報を入力します
今回の場合は 192.168.0.1 でアクセスが可能です
無事に検証が完了したら Start discovery を選択します
完了すると Azure Portal で確認をするように記載が出てきます
表示がされていない場合は 更新してみてください(
環境構築に手間取ってアプライアンスが2つになってしまっています。。。)
まとめ
今回は Azure Migrate の検証環境を構築してみました
Windows Server 上で動かす必要があったため Hyper-v の入れ子環境を作成しました
非常にややこしかったですが うまくできてよかったです