Live migration is a hallmark of virtualization technology, allowing VMs to move dynamically between servers to...
accommodate load balancing, performance management, disaster management and data center maintenance. Hyper-V live migration in Windows Server 2012 R2 supports much of that flexibility by default, but administrators must understand some of the potential optimizations and tradeoffs available in Hyper-V environments. And while Hyper-V live migrations provide flexibility and can be extremely efficient, factors such as processor compatibility, TCP offload and backups can create Hyper-V performance issues if not taken into account.
Hyper-V uses the unique capabilities of modern Intel and AMD processors to improve the performance of VMs; Hyper-V uses as many processor performance features as possible when a VM is created. When the VM is moved to another host system, the destination system must use the same processor as the originating system. This ensures the VM will work on the destination system after the migration. Ideally, each server in the data center uses identical processors, and live migration is seamless.
But it's rare to have an entire data center -- or even a cluster -- with identical processors. Hyper-V provides a processor compatibility mode that allows VMs to migrate between systems using differing processors with the same Intel or AMD family -- but not between Intel- and AMD-based systems.
Selecting the compatibility mode requires a stop and restart of the VM, which can be disruptive for some critical workloads. However, once the VM is stopped, find Settings dialog for the VM and check the "Migrate to a physical computer with a different processor version" box located under Processor options. This forces the VM to use only the features available on both originating and destination processors. Although the processor compatibility mode has no significant impact on live migration speed, it helps prevent VM failures after migration.
TCP chimney offload is another technology that can improve network and system performance by shifting the work involved with moving network traffic from the server's processor to the network adapter. Hyper-V live migration supports TCP offload by moving the TCP stack into the VM during the migration. If the destination server is equipped with a NIC that also supports TCP offload, the feature is moved back to hardware once the migration is finished. If not, the TCP stack remains in the VM.
Hyper-V can only initiate one live migration at a time so the server can send or receive a VM. If there is a server cluster deployed, the cluster can move multiple VMs, but each node in the cluster can only send or receive the VM at any point in time. For example, if there are four servers in the cluster, then two live migrations can take place within the cluster simultaneously. System Center Virtual Machine Manager 2012 R2 can invoke the maintenance mode on a server to either put all VMs on the system into a saved state or perform an orderly migration of all VMs to other servers in the cluster.
Backups can also be tricky on migrated VMs. Normally, the VM is quiesced into a saved state, a snapshot is taken and saved to disk, and then the VM is returned to its working state. However, this disrupts the workload's availability. It's possible to initiate a backup on a running VM and use a tool like Volume Shadow Copy Service (VSS) within the VM to perform a child VM snapshot. This eliminates the need to put the VM into a saved state.
If a migration starts during a backup process, VSS will wait until the migration is finished before resuming the backup. But after the backup, the migrated VM is no longer on the server where the backup began. The backup process can still complete using files on a cluster shared volume, but this only provides a copy rather than a normal online backup. Environments with regular migration activity should stick with snapshots to ensure timely and complete VM protection. To avoid Hyper-V performance issues, don't schedule backups during very active periods.
How can I optimize Hyper-V live migrations?
How can I authenticate Hyper-V live migrations?
Virtualize your server with Hyper-V