How To Assess and Migrate Hyper-V Virtual Machines Using Azure Migrate Service

12 min read


When considering a migration from on-premises to Azure, there are several stages you should consider. The first stage, assessment, is key to the success of your migration. You need to have a good understanding of what you have within your environment and how it all interconnects. There are various tools available that can help you do the discovery piece of your migration journey; Microsoft’s offering is called Azure Migrate.

Azure Migrate is a new service from Microsoft that helps you discover and assess your on-premises workloads for migration to Azure. The service assesses the migration suitability of on-premises machines, provides performance-based sizing, and cost estimations for running your on-premises machines in Azure. In the first release, Microsoft enabled support for on-premises VMware VMs and physical servers for migration to Azure VMs. The user’s voice was very active in the previous months to add Hyper-V support as well. And today, Microsoft released Azure Migrate version 2 which is an update to the existing Azure Migrate service with new enhancement and functionalities as follows:

  1. Enhanced assessment and migration capabilities:
    • Hyper-V assessments: Get Azure suitability analysis, right-sizing recommendations and cost estimates for migration of Hyper-V virtual machines to Azure.
    • Improved VMware assessment capabilities: Greater assessment scale that can incorporate your entire datacenter.
    • Agentless migration of VMware virtual machines to Azure.
  2. Unified assessment, migration, & progress tracking
    • A single centralized user experience to track your migration journey using Microsoft and ISV tools.
  3. Extensible approach with partner integration

How does Azure Migrate Works for Hyper-V

The discovery and assessment in Azure Migrate are agentless and do not have any impact on the on-premises environment. For Hyper-V, the discovery is done using a migration appliance deployed on any server (VM) on-premises that communicates with the Hyper-V hosts using remote WMI calls and collects configuration and performance data about the VMs running on the hosts. There is no write involved here (only reads) so the environment does not have any impact.

Azure Migrate Service [image credit: Microsoft]

In the scenario where you have a Hyper-V cluster, you need to deploy the appliance only on one node and then you need to log on to the appliance and specify the IP address/FQDN of the nodes/clusters you want to discover along with a credential that can be used to access these nodes. If you add a node that is part of a cluster, the appliance identifies the cluster and all the nodes that are part of the cluster will be discovered. The migration appliance collects metadata about the on-premises VMs that help you in assessing the VMs for migration to Azure. The complete list of metadata collected by the appliance is listed below: Configuration data of the VM

  • VM display name
  • IP address
  • MAC address
  • Operating system
  • Number of cores, disks, NICs
  • Memory size, Disk sizes

Performance data of the VM

  • CPU usage
  • Memory usage
  • For each disk attached to the VM:
    • Disk read throughput
    • Disk writes throughput
    • Disk read operations per sec
    • Disk writes operations per sec
  • For each virtual network adapter attached to the VM:
    • Network In
    • Network Out

In this blog, I will show you how to discover and assess Hyper-V virtual machine using Azure Migrate service version 2 so you can plan and prepare your migration to Microsoft Azure.


The following prerequisites are required to discover and assess a Hyper-V environment:

  • Azure subscription: If you do not have an Azure account, you can start with a free trial.
  • Azure AD user privileges: You will be required to log in to Azure when setting up the migration appliance. The Azure user used requires the following permissions:
    • Permission to register subscription with Azure Migrate resource providers: It is required the user has at least Contributor role at the subscription level. This permission is required to be able to create Azure resources necessary to set up Azure Migrate in your subscription.
    • Permission to create an Azure Active Directory (AAD) apps: Azure Migrate creates two AAD applications. One app is used for communication between Azure Migrate agents on the appliance and Azure Migrate services; this app is used purely for identity purposes. The other app is used by the appliance to create an Azure Key Vault.
    • Please note that this privilege is required only at the time of setting up discovery for the migration appliance and can be revoked once discovery is set up.
  • Hyper-V host requirements:
    • At the time of this writing, the Hyper-V scenario supports the discovery of hosts running Windows Server 2012 R2 or Windows Server 2016, Windows Server 2019 is NOT supported yet. However, based on my testing, I did not face any issue with Windows Server 2019.
    • You need to have a single user with administrator privilege, you can create a domain user or a local user with administrator privileges on the hosts and clusters running the VMs you wish to discover.
    • You need to enable PowerShell Remoting on all hosts by running the following command in a PowerShell console as Administrator: Enable-PSRemoting –force this is required for WMI calls.
  • Hyper-V host for the appliance: As mentioned earlier, the discovery is done using an appliance deployed on-premises. The VM appliance can be set up on a host running Windows Server 2012 R2 or above. The appliance VM provided is Hyper-V VM version 5.0. You need permissions to import a VM on this host. Please make sure you have enough capacity to allocate 16 GB RAM, 4 vCPUs and 1 external virtual switch for this VM. It is required that the appliance VM has a static or a dynamic IP and is able to access the internet.
  • Hyper-V integration services: Please make sure that Hyper-V Integration Services is enabled and updated on the virtual machines you wish to assess. This is necessary to ensure that Server Assessment is able to capture the OS information of the virtual machines.
  • CredSSP authentication for the appliance: This step is only required if you are hosting the virtual hard disks (VHDXs) on SMB file share in your on-premises environment. This could be if you are using a Scale-Out File Server (SOFS) or Azure Stack HCI in a converged model (formerly known as Storage Spaces Direct). In this scenario, it is required you enable delegation of credentials from the VM appliance to the Hyper-V hosts being discovered. If you add new hosts to the cluster, then make sure that CredSSP authentication is enabled for the newly added Hyper-V hosts as well. For more information on how to enable CredSSP authentication, please check the following article.
  • Whitelisting URLs for internet connection: The migration appliance VM needs connectivity to the internet to be able to discover VMs. The appliance checks and validate the internet by connecting to a list of URLs listed below. If you are using any URL-based firewall proxy to control outbound connectivity, please make sure to whitelist the following required URLs:
    • *
    • *
    • *
    • *

Assess Hyper-V VMs using Azure Migrate

Open the Azure portal, click All services found in the upper left-hand corner. In the list of resources, type Azure Migrate. As you begin typing, the list filters based on your input. Select Azure Migrate to continue. You will see the “Overview” section as shown in the screenshot below. Click on “Add tool(s)” to get started with selecting tools and creating a migrate project. A “migrate project” is used to store the discovery, assessment and migration metadata reported by your on-premises environment. Specify the Azure Subscription and Resource group along with the Geography where the migrate project needs to be created. Click on Next to continue. Select the Azure Migrate: Server Assessment tool to perform an assessment of your on-premises VMware or Hyper-V environments to get a cost estimation and to determine the readiness of migrating your server workloads to Azure. Click on Next to continue.

Azure Migrate can also be integrated with Cloudamize: as a Cloud Assessment tool.

If you are planning to perform migrate of your on-premises VMware environments, select Azure Migrate: Server Migration tool. At the time of writing this article, Microsoft doesn’t have a server migration tool integrated for Hyper-V yet. However, I expect this to come in the not too distant future. For now, select Skip adding an assessment tool if it’s not already selected and click on Next to continue. Review the selected configuration and click on Add tool(s). This will kick off a job to create a migrate project and register the selected solutions to it. After the migrate project has been created, click on Servers, then choose the Subscription and Resource group in which you create the migrated project. To download the migration appliance, click on the +Discover option as shown in the screenshot below. In the Discover machines blade, in the Are your machines virtualized? select Yes, with Hyper-V instead of VMware vSphere Hypervisor. Click on Download to download the appliance. The download size of the Azure Migrate Appliance is around (9.6 GB) in zipped format. Once the download of the Azure Migrate Appliance is completed, extract the downloaded .zip file to a folder on the Hyper-V host where you will be setting up the appliance. This folder will have three folders in it named (Snapshots, Virtual Hard Disks, Virtual Machines) and its size is 20.1 GB. Open Windows PowerShell and import the virtual machine into Hyper-V by running the following commands:

$vmReport = Get-ChildItem D:\VMs\AzureMigrateAppliance -Recurse -Filter "Virtual Machines" | %{write-host "VM Name: "$_.Fullname; Get-ChildItem $_.FullName -Filter *.xml} | %{Compare-VM $_.FullName -Register}

$vmReport.Incompatibilities | FT -AutoSize

$vSwitch = Get-VMSwitch | ?{$_.SwitchType -eq "External"}

$vmReport.Incompatibilities | %{Connect-VMNetworkAdapter $_.Source -SwitchName $vSwitch.Name}

Import-VM -CompatibilityReport $vmReport -Verbose

Before you start the appliance, please note that the VM is generation 1 and it’s default settings is set with 8 vCPUs and with dynamic memory (8GB/16GB RAM). To start the virtual machine, type: Start-VM -Name AzureMigrateAppliance Once the appliance is started, right-click the VM in Hyper-V Manager and click Connect. Accept the license, and provide a complex password for the appliance. To set up the discovery, it’s required to use a web browser, but before doing so, you need to login to the appliance itself through Hyper-V console and wait until the initial configuration is completed, the web app will be automatically launched and the Azure Migrate Web Portal shortcut is placed on the desktop as shown in the following screenshot. You can now remotely access the web app from any browser in your network using the following URL https://<appliance-ip-or-name>:44368. In the web app, the first step to configure discovery is to complete the prerequisites. You need to accept the license terms, check that you are connected to the Internet. If the proxy server requires authentication, you can specify the username and password in the Set up proxy. Please note that HTTPS-based proxy servers are not supported by the migration appliance. Finally, the time sync will ensure the time on your appliance is correct. Once all the prerequisites for the appliance are completed, click on Continue to register with Azure Migrate. Click on Login. You will see a new tab open (Ensure you have disabled the pop-up blocker for the appliance IP). Log in using your Azure credentials. After logging in successfully to Microsoft Azure PowerShell application, close this tab and go back to the discovery web app. Next, choose the Subscription and Resource group. Please note that only the discovered inventory along with the metadata will be stored in the chosen location. The Auto-update agents on appliance is set to On by default. The Azure Migrate agents on the appliance will be updated automatically if auto-update is On. If you prefer to update the appliance manually, choose No. You can change this preference anytime later. Click Register. After a moment the registration will be successfully completed. Click on Continue to provide Hyper-V hosts details. In the Specify credentials to connect to Hyper-V hosts and clusters, enter the user name and password for the host/cluster account details to be used to discover the virtual machines in your environment. Then specify a friendly name for credentials. Click Save details to save these credentials. Next, click Add to enter the list of Hyper-V hosts and cluster to discover. You can add both hosts and clusters for discovery. If you add a host that is part of a cluster, the cluster is detected and added to the list. Click Validate. You can start discovery when all the added entries are successfully validated. In this example, I will be adding an Azure Stack HCI cluster with 5 VMs (formerly known as Storage Spaces Direct HCI). After you are done with the validation, click Save and start discovery. You will see Created Site and initiating discovery begin. You will get a confirmation when site creation is completed; please note that site creation takes around 15 minutes to complete. Once the site is created, you will be able to review the discovered inventory in the Azure Portal under Servers. In the Azure Migrate: Server Assessment tile, click on the VM icon that displays the count of the servers discovered. You will see now all the discovered virtual machines along with their names, IP Addresses, Cores, Memory, Disks, Storage and OS.

The require agent installation under Dependencies column is not a prerequisite for performing either discovery or assessment. The agent dependency allows you to create high-confidence groups for migration assessments. Using dependency visualization you can view network dependencies of machines and identify related machines that needed to be migrated together to Azure. To use dependency visualization, you need to download and install agents on each on-premises machine that you want to analyze. The Microsoft Monitoring agent (MMA) needs to be installed on each machine, as well as the Dependency agent needs to be installed on each machine. The dependency visualization functionality in Azure Migrate is free for the first 180 days. More information can be found in the following document.

Please note that it is recommended to wait for at least one day before you start creating performance-based assessments.

You can sign-off here and then come back tomorrow to continue with the Hyper-V VMs assessment.

Once the VMs are discovered, you can create assessments in the Azure portal. Assessments are created on a group of machines that you plan to migrate together. Assessments are point in time snapshot of the data available with Azure Migrate. Please note that Server Assessment is NOT automatically updated with the latest data. If you want to update an assessment with the latest data, you can do so by Recalculating the assessment. To create an assessment take the following steps: In the Azure Migrate dashboard, in the context of the Azure Migrate: Server Assessment solution click on +Assess option. Click View all to review the assessment properties, close the page. To create a group of VMs, specify a group name. Select the virtual machines that you want to add to the group. For example, you might group VMs that run the same application. Click Create Assessment, to create the group and the assessment. After the assessment is created, click on Overview in Azure Migrate: Server Assessment solution. In the Azure Migrate: Server Assessment blade, click on the assessment name and then click Export assessment, to download it as an Excel file. Finally, review the assessment report which includes information about whether the on-premises Hyper-V VMs are compatible for Azure, what would be the right VM size for running the VM in Azure and the estimated monthly Azure costs for running the VMs in Azure.


Azure Migrate helps you discover, assess and migrate your on-premises workloads for migration to Azure. The service assesses the migration suitability of on-premises machines, provides performance-based sizing, and cost estimations for running your on-premises Hyper-V and VMware machines in Azure. The Azure readiness view in the assessment report shows the readiness status of each VM. Depending on the properties of the VM, each VM can be marked as:

  • Ready for Azure
  • Ready for Azure with Conditions
  • Not ready for Azure
  • Readiness unknown

For VMs that are ready for migration, the Azure Migrate: Server Assessment recommends a VM size in Azure. The size recommendation done by the service depends on the sizing specified in the assessment properties. If the assessment is ‘performance-based‘ sizing, the size recommendation is done by considering the performance history of the VMs (CPU and memory) and disks (IOPS and throughput). If the assessment is ‘as on-premises‘, Azure Migrate: Server Assessment does not consider the performance data for the VM and disks. The recommendation for the VM size in Azure is done by looking at the size of the VM on-premises and the disk sizing is done based on the Storage type specified in the assessment properties (the default is premium disks).

You can find more information about the Azure Migrate capabilities on Microsoft Docs here.

Thank you for reading my blog.

If you have any questions or feedback, please leave a comment.

-Charbel Nemnom-

About Charbel Nemnom 559 Articles
Charbel Nemnom is a Cloud Architect, ICT Security Expert, Microsoft Most Valuable Professional (MVP), and Microsoft Certified Trainer (MCT), totally fan of the latest's IT platform solutions, accomplished hands-on technical professional with over 17 years of broad IT Infrastructure experience serving on and guiding technical teams to optimize the performance of mission-critical enterprise systems. Excellent communicator is adept at identifying business needs and bridging the gap between functional groups and technology to foster targeted and innovative IT project development. Well respected by peers through demonstrating passion for technology and performance improvement. Extensive practical knowledge of complex systems builds, network design, business continuity, and cloud security.

Be the first to comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.