The journey to the cloud offers multiple routes, but they all fall into one of three categories: rehost, replatform, or refactor. Rehosting, also referred to as “lift and shift,” is the path of least resistance to the cloud. The process involves moving existing on-premises environments to Infrastructure as a Service (IaaS) servers.
In most scenarios, refactoring applications is the most desirable path to the cloud. Refactoring takes advantage of cloud scalability. However, legacy applications that cannot take advantage of cloud-native services or other factors, such as regulatory requirements, may prevent replatforming or refactoring. This article focuses on rehosting servers. Specifically, it discusses migrating servers from an on-premises data center to Azure, using Azure Migrate.
Azure Migrate ^
Azure Migrate supports assessing and migrating on-premises databases and web apps to Azure; it is not limited to server migration. It also supports offline data migration to Azure with the Data Box family of products.
At the center of Azure Migration management is a portal focused on assessments and migration. The Assessment portal facilitates the discovery and planning of migrations. Assessments are conducted as-is; alternatively, they may be performance-based. An as-is assessment matches the destination Azure servers as closely as possible to the on-premises settings. The performance-based option examines trends in performance data to determine the best sizing for the destination servers. This takes more time, but it also correctly sizes the Azure servers, potentially saving money on Azure VMs.
The migration portal provides for enabling and monitoring the replication of on-premises VMs to Azure as well as conducting test failovers to validate that VMs and applications will work properly in Azure. Server migration is triggered from the portal once the environment is tested and ready.
The steps below walk through deploying, analyzing, and migrating VMs from a Hyper-V environment to Azure.
Deploying Azure Migrate ^
The process starts by logging into the portal and navigating to Azure Migrate. Once you are in Azure Migrate, the page displays.
There are options to assess and migrate servers, databases, and web apps, as well as an option to migrate data into Azure with Data Box. Select Assess and migrate servers to continue.
With Servers selected under Migration goals, click Getting Started to begin the process.
Adding a tool starts the migration project. Select the required Subscription and select or create a Resource Group. Give the project a name and select the relevant region for Geography. Click Next when finished.
The next option is to select an assessment tool. Notice the options are not limited to Azure products; third-party assessment tools can be chosen as well. For this example, we use Azure Migrate: Server Assessment. Select that option and click Next.
Similar to assessment tools, migration tools offer both Azure and third-party options. This example uses Azure Migrate: Server Migration. Select that option and click Next.
Verify the selected options at the Review + add tool(s) screen and click Add tool(s) to finish adding the assessment and migration tool. This starts the Azure Migrate deployment.
Deploying the Assessment Appliance ^
The Assessment tools and Migration tools options are displayed once the deployment is finished. The next step is to deploy the assessment appliance into the on-premises environment. Start by clicking Discover in Assessment tools.
Clicking Discover starts a three-step process for deploying the Migrate appliance. At the top of the Discover Machines window, there is a drop-down to select whether the virtualization environment is running on Hyper-V or VMware. This example uses Hyper-V. The steps for VMware are similar.
Once the virtualization environment is selected, download the VHD file.
Once downloaded, verify the virtualization host meets the prerequisites listed in the second step. If it does, unzip and deploy the virtual appliance using the VHD or OVA file.
Once the Azure Migrate appliance has started, accept the license terms and create a new password to finish the installation.
All configurations can be set from the web interface once the appliance has started. Connect to the appliance from a web browser. The appliance is available on port 44368 using Administrator as the user; the password set up in the previous step.
Password: Set up in the previous step
Once logged in to the Microsoft Azure Appliance Configuration Manager, start Set up prerequisites by accepting the license terms. Set a proxy if in use, and then verify the time is in sync and the latest Azure Migrate updates are installed. Click Continue once complete.
On the Register with Azure Migrate screen, click Login to log into the Azure subscription used to set up Azure Migrate. Select the required options for Subscription and Migrate Project, and enter an Appliance Name. When you are finished, the Register with Azure Migrate screen will look similar to the image below. Click Register and Continue to move to the last step.
The last step provides host information and credentials for the virtualization environment (Hyper-V in this example). Enter a user name, password, and a friendly name for the credentials. Once the credentials are saved, add the server or cluster to the list of discovered hosts and validate it.
When discovery has finished, the host name and number of VMs is displayed along with the status, as shown below. Click Save and start discovery to continue.
The Azure Migrate Appliance initiates discovery of VMs on the host and configures the appliance. The time it takes to finish depends on the number of VMs. Wait for the process to finish before moving on to the next step.
Server Assessment ^
Back in the Azure Migrate portal, the Assess and Overview option is now available in the Assessment tool, and the number of discovered servers is displayed. If these options are not shown, click Refresh at the top of the window.
The Server Assessment tool makes recommendations and calculates pricing based on the size and performance data collected from the discovered VMs. The assessment properties are used as the basis for the sizing and pricing information. Click Assess to start an assessment.
Begin by giving the assessment a name. Next, go to View all in Assessment properties. The steps below walk through each section of the assessment properties.
Set the Target location, which is the region to which the VMs will be migrated. Select the Storage type if you have a preferred type, or leave on Automatic and the assessment will make a recommendation based on performance data.
Reserved instances provides a significant discount on the price of VMs with a one- to three-year spending commitment. If the VMs will be in use for longer than a year, select the applicable reserved instance option. Otherwise, select No reserved instances.
There are two types of assessments: performance-based and as-is on-premises. The performance-based option makes an assessment based on performance data that the appliance collects, such as CPU, memory utilization, and disk IOPS. The as-is on-premises option makes a recommendation on the size of the on-premises VM. A performance-based assessment helps ensure the destination VM is the correct size. It prevents over-sizing and overpaying for VMs or under-sizing VMs, which can impact performance.
Leave the Sizing criterion option set to Performance-based and select All under VM series.
The pricing options are dependent on organization-specific information. If the VMs do not run 24 hours a day, 7 days a week, the VM uptime can be modified to match your environment. For example, if moving lab VMs to Azure that only run 8 hours a day, the Hour(s) per day option would change from 24 to 8.
Leave Azure Hybrid Benefit set to Yes if the organization's licensing supports hybrid benefits; otherwise, select No.
Once finished, click Save to continue.
Back on the Assess Servers page, create a new group under Select or create a group. Give the group a name. Notice you can select all discovered VMs or filter them as necessary. Select the VMs for your assessment and click Create Assessment at the bottom of the screen.
The Assessment overview shows the new group and assessment. Notice the low confidence rating for the assessment. The confidence rating increases over time as more performance data is collected.
The Server Assessment can be changed by going into the Assessment and clicking Edit Properties. Servers can also be added or removed from the assessment by going into Groups and selecting the group that was created. The options to Add or Remove machines are at the top of the window.
Reviewing Assessments ^
Once an assessment is complete, the overview tab shows details about the computers inventoried, the number of assessments, and groups. A second assessment was added to the example below. As previously mentioned, the confidence rating increases for performance-based assessments as more data is collected. As-is assessments do not require confidence ratings.
Next, select an assessment to view Azure Readiness and Cost Details.
The Assessment Overview shows Azure readiness, the monthly cost assessment, and the storage cost assessment. Assessment Details can be found under Overview on the left side of the portal. Select Azure Readiness to review readiness details.
Notice the four different states of readiness. The VMs selected for this example are Hyper-V Generation 2, which uses the EFI boot type. Clicking the warning message next to the VM displays a web page that indicates the VM will be converted to a BIOS-based boot during migration.
Next, go to Cost Details. This displays estimated costs for computing and storage based on the assessment.
The details can be modified to compare different migration scenarios. For example, the disk type can be changed to faster SSD drives by going into Edit Properties and changing the storage type to Premium managed disks.
The changes are reflected in a new monthly cost estimate.
Server Migration ^
Go back to the Azure Migrate portal, go to Servers and click Discover under Migration Tools.
Select the virtualization type and the region, and confirm the target region. Click Create resources to continue.
Next, download the Hyper-V Replication Provider and install it on the source Hyper-V servers. Once installed, download the registration key and register the provider with Azure Migrate. Note that the link for the Replication Provider and the registration key are found in step 1, shown below.
Browse and select the registration key to register the Replication Provider. Add proxy information if required and finish the installation.
Once the Replication Provider is installed, go back to the portal. You will see an option to finalize registration. Select that to continue. If you do not see it, close the Discover machines tab and go back to Discover from the Migration Tools.
Once the registration is finished, go to Azure Migrate: Server Migration and select Replicate. Select your virtualization source (Hyper-V for this example) and click Next.
In Virtual machines, there is an option to select a previous assessment or to specify migration settings manually. Select Yes, apply migration settings from an Azure migration assessment. After that, select the assessment to use for the migration. Select the Group and Assessment to use for the migration. Next, select the servers to migrate. For this example, the servers 2019Svr04 and 2019Svr05 are migrated.
In Target settings, select a Resource Group, Replication Storage Account, Virtual Network, and Subnet to replicate the VMs. Also indicate whether the VMs will use Windows Server Hybrid benefits.
Verify the settings for the Azure VM size under Compute. Set the OS type and add an availability set if needed. Click Next to continue.
Next, select the disks to replicate. This example uses only one OS disk for each virtual machine.
Replicate Disks Settings
Click Review + Start replication, and Replicate to start the replication process.
Once replication has started, the number of servers is displayed under Replicating Servers (as shown below).
Click Replicating servers to view the details, including the progress of the servers. The status is shown as Protected once the initial synchronization has finished, and the health is shown as Healthy.
The following steps test a migration to verify it runs successfully. This is important to run prior to the actual migration to ensure it will be successful without impacting production servers. Start by navigating to Azure Migrate and select Replicating servers under Migration tools.
Click a server to view its migration status. At the top, select Test migration to start the test.
Select a Virtual Network for the test. Microsoft recommends selecting a non-production network to isolate traffic and not impact production workloads. Click Test migration to run the test.
The status of the test can be monitored by clicking the Replicating Machine in Azure Migrate and clicking Initiating test failover under Status.
Once successful, a new virtual machine with the server name and -test appended to it will show in Virtual machines.
The VM is now available for testing. A test can be run on multiple VMs if necessary. Once testing is finished, go back into the VM in Azure Migrate > Migration tools > Replicating servers and click the server to view its properties. At the top of the window is an option to Clean up test migration. Run this process to remove the test VM.
There are also options to add notes, indicate the test is complete, and delete the VM. Check the box and click Cleanup Test.
The status changes to Completing test failover cleanup. Click the status to view the progress.
Once the cleanup has finished, the status of the tested server shows the date of the last migration test.
Virtual Machine Migration ^
Now that the test migration is completed, the next step is to run the migration. This finalizes the migration by shutting down the on-premises VM and bringing the VM online in Azure. Start by going to Migration tools > Replicating servers and select the server to migrate.
Verify the health and replication are healthy and click Migrate at the top of the window.
Next is the option to shut down the VM prior to migration. This prevents data loss between the time of the final sync and when it is brought online in Azure. Shutting the server down also causes downtime as the server is migrated. If uptime is more important than data loss, leave it running. This example will shut the VM down for the migration. Click Migrate to continue.
Verify replication has started by going to Replicated machines and verifying the status.
Click the status to see the progress of the migration.
Once all steps are successful, the migrated server is running in Azure and the source VM is shut down.
Azure Migrate offers a comprehensive solution for moving both Hyper-V or VMware on-premises virtual machines into Azure. It is also extensible, providing connectivity for add-in third-party application integrations for both Azure assessments and migrations. It also provides a migration framework for SQL databases, web applications, and data migration. This makes Azure Migrate a flexible solution for any environment moving to Azure.