Wednesday, 20 June 2012

Upgrade Windows Server 2008 R2 Hyper-V cluster to Windows Server 2012

With the RC version of Windows Server 2012 now available it is time to start preparing for the final version. Since the company I work for has implemented numerous Windows Server 2008 R2 Hyper-V cluster installations, one of the first tasks upon release will be to start upgrading them to 2012 version. I decided to skip extensive preparations and just start an in-place upgrade of our lab environment and see where it goes.

I've tried to do an in-place upgrade of one of the Windows Server 2008 R2 Enterprise Hyper-V cluster nodes, but I got an error message saying that I need to evict the node first and then do the upgrade. So I did just that. I've evicted the node and in-place upgrade went pretty smooth and I even did the whole process through Remote Desktop session. It took 30-45 minutes.

When the Windows Server 2012 booted up, I could not find my Failover Cluster Management Console. I needed to go to the Server Manager > Local Server > Manage > Remove Roles and Features and I removed and readded the Failover Clustering feature. The Failover Cluster Manager console was now available in Server Manager > Local Server > Tools combo box.

I've started up the Failover Cluster Manager console and I tried to connect to existing Windows 2008 R2 cluster, but I got the following message:

So my hopes that I could maybe join the Windows Server 2012 cluster node to the existing 2008 R2 cluster and just Live Migrate the virtual machines to the new node were gone. That's something that's available in VMware for some time now.

So, I had to build the entirely new cluster and import virtual machines into it. Creating Failover Cluster process is pretty much the same as the previous version. I've created a single node cluster, provisioned the 800 GB iSCSI LUN that will be my CSV disk and imported it under the Storage > Disk node in Failover Cluster Manager console and created a CSV from it.

Once I got my Windows 2012 Hyper-V cluster operational it was time to move virtual machines from old Windows Server 2008 R2 cluster to the new 2012 node. I just simply copied the VM from old CSV disk to the new CSV disk through Windows Explorer without first exporting the machine or any special preparations. Once I did that I started up Hyper-V Manager console on Windows 2012 and used the Import Virtual Machine wizard. I followed through the wizard and that was it! My VM was now imported and running on Windows Server 2012 Hyper-V.

Note: You will have to reconnect the VM network adapter of the importing machine to a valid Virtual Switch on your new 2012 Hyper-V server.

After I did that for all my VMs, now I had to make them clustered. I opened Failover Cluster Manager console, right click Roles and click Configure Role...

Choose Virtual Machine role....

Select the virtual machines that you want to make Highly Available...

And the virtual machines are now clustered.

This is excellent progress from the previous versions and pains of exporting and importing machines and using scripts to migrate clustered VMs.

Considering this procedure my guess is that I could just dismount the existing CSV LUN from the old cluster node and mount it to the new cluster node. Using Hyper-V Manager console I could simply just import the virtual machines one by one and then make them cluster aware. There is no provisioning of new LUNs, copying large amounts of data and long periods of downtime to move to the Windows Server 2012 Hyper-V cluster. So far so good from Microsoft.

Now I will dig up into SCVMM 2012 SP1 which is requirement if you want to manage Windows Server 2012 Hyper-V. SP1 has just recently been progressed to CTP2 (link). Maybe it will make the cluster migration process even easier.