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

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

  • Comments 11
  • Likes

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
Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Just wanted to say thank you for this article. It just saved my life!

  • How to make the machine NOT highly available when the checkbox "Make this VM highly available" is grayed out ?

  • Hi Greg-

    In VMM, you can't unfortunately demote a highly available virtual machine.  You can attempt to migrate that virtual machine, though, and select a non-highly available host and VMM will ask if you are sure you would like to do this.  It will then migrate the virtual machine to the non-highly available host.

    But to specifically asnwer your question, you cannot using the Admin Console simply un-select Highly Available.  This is considered a "migration" and not a binary-like configuration such as on/off.

    Hope this helps!

    Thanks,

    -Chris

  • Hi

    Great article but I cannot seem to get this working on my cluster.

    I've got 3 hosts and all my vm's are stored on a csv but I cannot get them to be in High Availibilty mode. The option is always greyed out.

  • Hi Steven-

    Thanks for the comment.  If I understand you correctly, it sounds like you had VMs running locally on the Hyper-V hosts prior to clustering.  Is this a correct assumption?

    In either event, VMM 2008 R2 requires that you decide whether to make highly available at creation time, or through the migration process.

    Do you by chance have another CSV presented to this cluster?  I *know* for a fact that if you were to choose migrate and you had another CSV target to land it on that VMM detects the host is clustered and asks if you would like to make it highly available.  

    Have you perform the steps above (I assume yes?) -- what happens when you select the host that is part of the cluster?  Do you not get the popup shown?

    Let me know... I think we can get you squared away one way or another.

    Thanks,

    -Chris

  • Hi Chris

    Thanks for your feedback.

    Yes, I had my vm's running on a single host. I then built another 2 hosts and then clustered all 3 and added a csv. Unfortunately I dont have another csv.

    The strange thing is if I create a new vm I can select the high available option but when I try to place the new vm on one of my clustered hosts it comes up with the following error "The virtual machine ITTest is configured as highly available but the selected host is not a highly available host", I do have a few cluster errors but nothing that should prevent the cluster from working.

    Any ideas?

  • Hi Chris

    I resolved my problem. When I built my cluster I did not refresh the Hosts Groups in VMM so my hosts were not acting in a cluster.

    All working perfect now.

  • Hey Steven-

    Well, well ... that was easy!  To close the loop, is there a step I might should add to help others in the future?  Maybe a step to refresh the cluster?  Thoughts?

    Thanks,

    -Chris

  • Hi there,

    For 4 of my VMs with this issue, the method per your article worked for two of them (where I got the pop-up option to make them an HA) but strangly for the other two it didn't give me that option. All VMs were created the same way with a single syspreped VHD.

    Later, I used cluster manager and put the other two in the cluster and tested a live migration w/o any issue - but VMM is still showing that both are not an HA.

    My understanding is that if one of the host will fail (goes down or reboots) then this VM will automatically be moved to the 2nd node of the cluster (Isn't it High Availability ?).

    Is there a registry entry or stored-procedure for SQL that Microsoft suggests (or any other hotfix) to take care of this VMM bug ?

    with best regards,

    Hamsaffar.

  • Although this procedure does work (and I do use it) keep in mind that it actually copies the vhds. So two things happen during this process: (1). All the VHDs get copied to the new location/CSV. (2) if you choose to keep the VM on the same CSV, VMM will create a new folder with "-1" added to the end. This will result in two folders there... servername and servername-1 on the CSV. I do not like this since it now looks messy. Also, you need double the space (a VM is taking) free on the SAN + a huge amount of time in case your vhds are large. Hence, keep this in mind before you go this route...although there is really no other option :-(

  • Actually I found a solution to this problem………..making VMs HA……
    Inside FCM 2012 go to Roles >> Configure Role >> Next >> Select “Virtual Machine” >> Next >> Select whatever VMs you would like to make HA , you can select all if you want (that is what I did)>> Next >> (Almost instantly it finishes and shows a report.)

    I did have a problem with 1 of the 16 VMs I tried to make HA this way but that is another story. At least I was able to make 15 VMs HA almost immediately!
    I hope this helps someone.

    [Credit for letting me know this procedure goes to AJ]