Wait a minute… Virtual Machine isn’t “highly” available though it is on a Clustered Host?

It is possible, albeit an edge case, that you have both clustered (highly available) and non-clustered virtualization farms in your data center.  You’ve got your virtual machine (VM) configurations and hard disks stored on Cluster Shared Volumes (CSV) and your non-clustered VMs stored elsewhere (potentially on SANs but just not CSV’s).  It is recommended for obvious reasons that all VMs are created through Virtual Machine Manager (VMM) though there are times when this simply isn’t feasible.  For example, you might be handed a “new” resource to host that is an exported virtual machine that you must use the Hyper-V import function to get the VM live.  In this case, you might potentially place the exported virtual machine on your CSV and your assumption might just be that Failover Clustering –or- Hyper-V –or- VMM will just make sure to spin the virtual machine up as Highly Available.  Sorry…

Virtual Machine Manager “grays” out “Make this VM highly available”

You’ve just realized that the VM isn’t “highly” available.  It could be due to the fact it couldn't be live migrated to another physical host or you’ve done your homework and reviewed the configuration.  To do this, you’ve went into Failover Cluster Manager and noticed that no VM is hosted by the name you are looking for.  You then check Virtual Machine Manager.

When the virtual machine is running…

image When the virtual machine *isn’t* running…

image But Chris, did you mean to show the same screenshot twice.  Yes, as this is the lesson to learn.  I’m sorry to say that you are stuck at this point as there is no way within VMM to natively enable high availability once the VM is placed.  This is the key – once placed on a host.  This is a read-only bit that is set at placement time as opposed as a on/off switch that allows it to dynamically change at Administrators wishes.

Your stuck then…well, kinda.  But…

Why not just delete the VM and re-create it?

As most know who use Hyper-V, it isn’t a difficult task to delete the virtual machine and re-create.  However, those folks know that this causes you to have to cleanup a few items such as the Network Adapter settings, etc. and this simply doesn’t seem fair for anyone who is like “It work fine I just want it highly available.”

The ironic thing is that you might be running on a highly available clustered host, using CSV, and *still* be non-highly available.  The beauty is…there is a way to workaround this mess without the nasty “delete” command.

Answer:  Migrate VM in VMM – VMM will make it highly available

After finding myself stuck in this weird situation, I reached out to my resident VMM expert (Michael Michael) and said “What gives…”  He of course provided me this wonderful workaround that worked like a champ and as such I thought I must share.  To “flip” the bit for highly available, do the following -

  1. Open VMM Administrator Console
  2. Right-click on the VM that you want to make highly-available, select Migrateimage
  3. In the migration wizard, select the current host from the list for migration (notice – it will say network transfer as it isn’t a part of the cluster and Live Migration isn’t available)
  4. For the prompt asking if you would like to make this VM highly available, select Yesimage
  5. If you are like me and already placed on the CSV, leave the path the same as detectedimage
  6. Select the Network (shouldn’t need changing unless your Cluster has multiple available networks for some reason)
  7. Click Move

Validating Highly Available after Move

The last thing you want to do is monitor the VMM job.  You might think that this operation should be quick & fast but a note of caution that VMM is now required to create this VM in Failover Clustering and this will take a bit more time than you might expect.  It is important to remember this isn’t necessarily the “scenario” that one had in mind when designing the Migrate feature.  Be patient…image

To check that all is well with your new highly available VM, do either of the following -

  • Open Virtual Machine Manager and select the Virtual Machine, then properties, then Advanced, Availabilityimage
  • Open Failover Cluster Manager and locate the VMM (should be something like [SCVMM] {Virtual Machine Name})

Summary

It isn’t as “straight” forward as many would like to make a virtual machine highly available.  But then again, the use of your cluster shouldn’t be something as easy as a single click as these are expensive resources for your company.  VMM places the burden on you at deployment time rather at run-time so that it can make the right decision and either talk directly to Hyper-V (non-clustered) or through the Failover Clustering APIs & Hyper-V (clustered).  The beauty of Virtual Machine Manager 2008 is where often you feel like you are done and out of options it often has one hidden.  I hope that this hidden gem helps in the future for you!

Enjoy!

Thanks,

-Chris

Digg This