About a month back, Duncan Epping brought up a point around vSphere HA that seems quite relevant in many different environments, and is something that I semi-frequently discuss with administrators and engineers. High Availability (HA) is a great tool, but the priority feature that controls restart order – high, medium, low, and disabled – is concerned with ensuring resources are available for higher priority virtual machines. From a application restart order perspective, it is a best effort. The chance that VMs will be brought online in the specified order with their applications ready for use is coincidence at best. vSphere HA just keeps plowing through power on operations without waiting on VMware tools or some sort of time value.
Perhaps this could be improved? Two different future states for vSphere HA are discussed, one being priority buckets and another virtual machine dependency chains. In my mind a blended solution would be best, with priority buckets acting similar to the Start Order in a vApp but with a twist.
Let’s take this three tier application stored inside of a vApp as an example:
Imagine if vSphere HA could handle the startup order like this – neat?
In order for my ideal version of vSphere HA to support virtual machine dependencies, an additional option would be available as a startup action: “Virtual machine(s) are ready.” This option would enable you to specifically pick a VM from the hierarchy in the same or higher tier, and readiness would be determined by a set time or if VMware tools were running (or better yet, when a service started). As an example, I may have some reason for wanting Web-1 to start before Web-2 and should be able to choose Web-1 as a dependency for Web-2.
VMware has spent a lot of effort tweaking and introducing a vast quantity of features that rarely get used – perhaps some attention could be put on a very common feature that nearly all vSphere admins enable? I sure hope so! 🙂