Implement Virtualization for Application High-Availability

Alone, the term ‘high availability‘ does not mean your application never goes down, that would be ‘always on‘, but highly available applications require some simple things you might already have within your infrastructure. If you run a virtual environment, then achieving application high availability is just a few clicks or scripts away, if you choose to roll-your-own, but there are also products that one can purchase to do similar things such as Symantec’s Application HA package, a scaled down version of Veritas Cluster Server. But if what you need is “protection right now, today” then you can get started by using built-in technologies for a given hypervisor.

HA Process

Regardless of type of hypervisor you can enable guest failover, moving, takeover, replication, etc and can be done through a series of different steps and mostly involves mild scripting.

For all VM hosts there is some kind of scripting hook that can be used to achieve the following series of steps:

  1. Verify whether or not the Guest VM is on-line and booted
  2. Verify VM related settings and store/export them if needed
  3. Control the VM (quiesce, freeze, power-off, shutdown, etc) to prepare for movement
  4. Backup or copy the VM to new storage or a new host
  5. Restore VM related settings/import them if needed
  6. Spin up the VM
  7. Verify whether or not the Guest VM is on-line, booted, and active on the new host or location

These are the basic steps that can be achieved through scripting either by utilizing APIs for each hypervisor or manually performing each and every step through the use of standard OS level scripting automation. (logging in as a user, executing a power off or other set of commands to prepare the VM and logging in after the VM has been powered on again to validate it is up and running properly and start applications)

Developing this type of capability can be pretty easy but does take some time so be aware of any tools you might need but simply because the VMs exist in containers able to be moved pretty much anywhere on the same network segment or route, that is all that is required so long as the guest VM can run on the target platform. You of course may need to integrate your host monitoring software in order to execute the scripts automatically, but if you don’t have that level of monitoring in your environment you can script that too and all with assets you already own. The main investment is time and testing to ensure the environment is sound after a move/failover.

Express your thoughts and leave a comment!