At Black Marble, we’re in the process of migrating some of our virtual machines to a Windows Server 2008 R2 Hyper-V cluster. The process of migrating machines from a single Hyper-V host to a Hyper-V cluster is not quite as straightforward as migration of a machine from one single host to another. In addition, our migrations are made slightly more interesting as our Hyper-V cluster is built on Server 2008 R2 Core machines, so no GUI interface on those machines to help us!
Due to our cluster being Server 2008 R2 Core machines, we do all of our administration remotely. Once the cluster is built, we rarely spend much time directly connected to the cluster machines. Most of the administration for virtual machines is done from the Failover Cluster Manager on another server we use as an application server. While the Failover Cluster Manager allows us to create new virtual guests directly from the interface, there is no apparent way to import virtual machines that already exist onto the cluster directly from the interface.
Importing pre-existing virtual guests onto the cluster therefore becomes a two stage process; firstly import the machine using Hyper-V Manager, then make them highly available.
To import the virtual machine, the following steps need to be taken:
- On the Hyper-V host running the machine you wish to migrate, export the virtual guest. In the case of a few of our machines, they were built using differencing disks and we took the decision to merge the disks so we didn’t have base disk stacks littered all over the place. As our virtual machines were hosted on Windows Server 2008 Hyper-V, this meant that we had to delete any snapshots we had as well and then switch off the machines and allow the background disk merge required in these circumstances to finish before we could merge the differencing disk stack we’d created.
- Once the export had completed, copy the resultant files to an appropriate location on the CSV disk on the new Windows Server 2008 R2 Hyper-V cluster. The use of a CSV location is required to allow us to make the virtual guest highly available later.
- Using Hyper-V manager connected to the specific virtual host in the new cluster the migrated machine should run on initially, import the virtual machine. Note that with Hyper-V R2, you can choose to duplicate the files so that the virtual machine can be imported again should you need to.
- Once the virtual machine has been imported, you’ll need to check the settings and may need to connect the network adaptor(s) to the appropriate virtual network(s). Note that the required virtual networks need to be created individually on each of the Hyper-V cluster nodes.
At this point, you have a virtual guest that has been migrated to its new host, but has not been made highly available. To achieve this, the following steps need to be taken:
- Connect to the Windows Server 2008 R2 Hyper-V cluster using Failover Cluster Manager.
- Right-click on the ‘Services and applications’ header in the left pane of the Cluster Manager and select ‘Configure a Service or Application…’
- A new window, the High Availability Wizard, will open. Click next on the first page, then select ‘Virtual Machine’ from the list of available service and application types on the next screen and click next
- The imported virtual machines that have not been made highly available will be presented as a list with checkboxes beside them. Select the virtual machines you wish to make highly available and click next
- Click next on the confirmation screen and wait until the wizard completes. Click finish on the summary page, unless you wish to vie the more detailed report (if for example an issues were encountered during the HA wizard).
Your migrated, highly available virtual machines should now be available via the Failover Cluster Manager. You may wish to modify the properties of the migrated high availability virtual machines to set items such as preferred owner and failover/failback settings before starting them.