An Overview of Hyper-V Live Migration
In the previous chapter we looked at the the migration of Hyper-V virtual machines that required the virtual machine to be powered off or placed into a saved state. The downside to this approach is that it is a manual process and any service provided by the virtual machine is interrupted during the migration process, hardly an acceptable solution in mission critical and enterprise level environments.
Fortunately Hyper-V 2008 R2 introduced a feature called Live Migration whereby a running virtual machine can be migrated from one host system to another with no interruption in service.
In this chapter we will look in detail at the system requirements and steps in involved in performing a live migration using Hyper-V 2008 R2.
Hyper-V Live Migration Configuration Requirements
Before a running virtual machine can be migrated from one host to another there are some mandatory requirements thant must first be met:
- Hyper-V 2008 R2 must be deployed on both hosts. The first version of Hyper-V does not support live migration.
- Source and destination Hyper-V hosts must be configured as a Failover cluster with shared storage enabled.
- Source and destination systems must be using shared storage (i.e. via SAN or iSCSI configurations)
- Source and destination systems must be running processors from the same manufacturer. It is not, for example, possible to migrate a virtual machine from an Intel based host to one containing an AMD CPU.
- The virtual machine on which the migration is to be performed must be configured as Highly Available and to use Cluster Shared Volumes.
- All Hyper-V hosts in the Failover cluster must be configured to boot from the same drive letter. In other words, a host that boots from the C drive cannot perform a live migration to host that boots from the D drive.
The Live Migration Process
The live migration process performs the following tasks:
- Configuration transfer - The source host transfers the configuration data for the virtual machine to the destination host.
- Destination VM creation - Based on the configuration data the destination host creates a new virtual machine and allocated adequate memory.
- Transfer of memory pages - The memeory pages used by the virtual machine on the source host are transferred to the destination host. During this process, the source host monitors the memory and records any changes that take place after each page is transferred. Modified pages are then resent to the destination host.
- Transfer of state - Register and device state are sent to the destination server.
- Transfer of storage - The source host transfers the shared storage handle to the destination host where it is used to access the virtual hard disks (VHDs) and passthrough disks required by the virtual machine.
- VM brought online - The migrated virtual machine is brought online on the destination host.
- Network Re-direction - The network environment is modified to direct traffic intended for the virtual machine to the destination host.
Performing a Live Migration using the Failover Cluster Manager
Assuming that the system requirements outlined earlier in this chapter have been met and a virtual machine is running on a host within such an environment, a live migration can be initiated.
Live migrations may be initiated either from within the Failover Cluster Manager console or using Windows PowerShell. A migration may be performed using the manager as follows:
In the Failover Cluster Manager snap-in, if the cluster that you want to configure is not displayed, in the console tree, right-click Failover Cluster Manager, click Manage a Cluster, and then select or specify the cluster that you want.
In the console tree (on the left), select the node under which you want to move a clustered virtual machine using live migration.
Right-click the virtual machine resource displayed in the center pane (not on the left), and then click Live migrate virtual machine to another node.
Select the node that you want to move the virtual machine to. When migration is complete, the virtual machine is running on the new node.
To verify that the virtual machine successfully migrated, you will see the virtual machine listed under the new node (in Current Owner).
Performing a Live Migration using Windows PowerShell
For a command-line or script based method of performing live migrations, the Windows PowerShell environment may be used as follows:
Open PowerShell. Click Start, point to All Programs, click Windows Powershell 2.0, and then click Windows Powershell 2.0.
The Failover Clustering feature must be installed on the computer on which you are starting the PowerShell session.
To install the Failover Clustering feature, type:
Get-Cluster “<Cluster Name>” | Move-ClusterVirtualMachineRole -Name “<VM group name>” -Node “<Destination node name>”
<Cluster Name> is the name of the cluster that the virtual machine is included in.
<VM group name> is the virtual machine resource group.
<Destination node name> is the name of the destination node to which you would like to move the virtual machine using live migration.