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.
Configuring a Virtual Machine to be Highly Available
As previously mentioned, a virtual machine must be configured as highly available before it is eligible to participate in a live migration. This task is performed from within the Failover Cluster Manager (Start -> Administrative Tools -> Failover Cluster Manager).
Within the Failover Cluster Manager, select the cluster to manage and click on Services and Applications followed by the Configure a Service or Application option located in the Action pane.
An informational screen may appear. Read the information provided and click Next to proceed. On the subsequent Select Service or Application screen click Virtual Machine and then click on Next to proceed to the Virtual Machine screen. On this screen, select the check box next to the virtual machine to be configured, click Next.
On the Select Virtual Machine page, check the name of the virtual machine that you want to make highly available, and then click Next. Review the information listed on the confirmation screen and click Finish to complete the operation.
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 now initiated.
Live migrations may be initiated either from within the Failover Cluster Manager console or using Windows PowerShell.
In the Failover Cluster Manager console, select the cluster to which the source and destination Hyper-V hosts (referred to as nodes within the context of a cluster) belong. In the tree in the left hand pane of the console, select the node on which the virtual machine is currently running, right click on the virtual machine in the main pane and select Live migrate virtual machine to another node.
Finally, select the destination node to initiate the live migration. Once completed, the virtual node will be listed as being assigned to the different node to the one it was origianlly running on under 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.