JavaScriptを有効にしてください

Azure Migrate の検証環境を作成してみる!

 ·   7 分で読めます  ·   Kento

今回は 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) の環境が必要になります

migrate01
入れ子の 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 環境においては不要でした

migrate02
入れ子の Hyper-V の有効化:

有効化が完了したらHyper-V Manager を起動してゲストOSの設定を行います
わかりずらいですが、Azure VM で Hyper-V を実行している環境になります

migrate03
入れ子の 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 を参考にしてください
手順の一部のスクリーンショットを記載しておきます

migrate04
Azure Migrate の作成01:

migrate05
Azure Migrate の作成02:

migrate06
Azure Migrate の作成03:

Azure Migrate アプライアンスの設定

移行するマシン情報を収集するアプライアンスを設定します
同じく手順は 公式ドキュメントを参考にしてください。スクリーンショットの一部を記載します
※プロジェクト キーの作成後、しばらく放置すると 応答がなかったとなってしまうので キーの作成を確認出来たら確実にメモしておきます

migrate07
アプライアンスの作成01:

migrate08
アプライアンスの作成02:

ダウンロードした zip ファイルのハッシュ値確認を確認します

migrate09
アプライアンスの作成03:

問題なければ 仮想マシンを Hyper-V ホスト (Azure VM) にインポートします

migrate10
アプライアンスの作成04:

migrate11
アプライアンスの作成05:

ここで作成した アプライアンスは 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
migrate12
アプライアンスの作成06:

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..
画面に従って、設定名、アドレス範囲を指定します。今回は例外のアドレスは設定しません
一部の手順のみ スクリーンショットを記載します

migrate13
DHCP の設定01:

migrate14
DHCP の設定02:

migrate15
DHCP の設定03:

migrate16
DHCP の設定04:

migrate17
DHCP の設定05:

migrate18
DHCP の設定06:

作成した Internal 仮想スイッチを アプライアンス VM に設定すると外部と通信ができるようになります
(長かった。。。)

次にアプライアンスが Hyper-v ホスト (Azure VM) と通信ができるように設定をしておきます
※ホスト側の操作になります
Control Panel > Network and Internet > Network Connections
コマンドで作成した仮想スイッチのプロパティを開きます

migrate19
ホストの通信設定01:

Internet Protocol Version 4 (TCP/IPv4) を選択し、Properties を選択します
Use the following IP address に適当な IP アドレスを入力します
このアドレスは Hyper-v ホスト (Azure VM) がアプライアンスと通信するときに使います

migrate20
ホストの通信設定02:

それでは アプライアンスに接続をして設定をします
アプライアンスを起動すると以下の画面が自動で表示され、Azure との通信確認を行います
ここまでの設定ができていれば緑のチェックマークがつきます

migrate21
アプライアンスの設定01:

スクロールすると 少し前の手順で作成した キーを入力する画面があります
入力して [Log in] をクリックします
画面に従って Azure AD の資格情報を入力して Azure Migrate への登録を行います

migrate22
アプライアンスの設定02:

migrate23
アプライアンスの設定03:

登録が完了するとこのように表示されます

migrate24
アプライアンスの設定04:

続いて 移行したい ゲストOSを発見できるように ホストの credential 情報を入力します

migrate25
アプライアンスの設定05:

次に 移行するゲストOSの検出を行うため、Hyper-v ホスト (Azure VM) の情報を入力します
今回の場合は 192.168.0.1 でアクセスが可能です
無事に検証が完了したら Start discovery を選択します

migrate26
アプライアンスの設定06:

完了すると Azure Portal で確認をするように記載が出てきます
表示がされていない場合は 更新してみてください(
環境構築に手間取ってアプライアンスが2つになってしまっています。。。)

migrate27
アプライアンスの設定完了:

まとめ

今回は Azure Migrate の検証環境を構築してみました
Windows Server 上で動かす必要があったため Hyper-v の入れ子環境を作成しました
非常にややこしかったですが うまくできてよかったです

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中