One of server virtualization's most prominent features is the ability to instantaneously migrate virtual machines...
(VMs) between cluster hosts and reduce server or application downtime. Even though every major hypervisor has this capability, each vendor arranges clusters in a different manner.
In my experience with Microsoft Hyper-V, I have saved countless hours of server downtime by using a clustered host environment. But this technology poses some problems. Here I cover the top three pros and cons of clustered virtual host environments.
Advantage no. 1: Proactive risk avoidance
I believe that a clustered host server's greatest advantage is its ability to proactively move VMs from one host to another, which allows you to improve server and application uptime.
In my environment, I receive alerts when memory is low, CPU load is high, or virtual hosts experience an elevated I/O occurrence. If I can't determine the root cause or the system requires a restart, I can proactively migrate VMs to another host cluster.
If this were a standalone host, on the other hand, VMs would shut down during the host reboot. If the problem persisted after restart, I would likely extend VM downtime until I had diagnosed the issue. With virtual host clusters, however, VMs can reside on other available nodes until the issue is resolved.
Advantage no. 2: Reactive fault tolerance
Because a clustered host is aware of all VM activity, it directs workloads to alternative hosts when a node fails. If the problem takes a considerable amount of time to resolve, VM workloads can function on healthy hosts as long as sufficient resources are available.
In my environment, if a host fails, VMs automatically migrate to another cluster node. While the migration process isn't graceful, the workload shifts automatically with little or no downtime.
Advantage no 3: Proactive manageability
I work in a 24/7 organization, so implementing patches and updates has to be closely managed. Normally, coordinating the downtime of one or two physical servers is difficult, but bringing down 30-plus VMs that reside on a single host is exponentially more complicated.
Since making the switch to standalone hosts, and I can tell you that my wife enjoys having me home between 1 a.m .and 6 a.m. on Sundays instead of patching virtual host servers. Now, with clustered virtual hosts, VMs are moved to alternate nodes while a host is patched and restarted. Once finished, VMs are then moved back to their original host. This allows us update the cluster without taking down the entire system during the wee hours of the morning.
Cons of clustered host environments
While the pros of clustered host environments are compelling, there are some implementation and management drawbacks.
Disadvantage no 1: Implementation and configuration complexity
Configuration complexity may the top disadvantage of cluster hosts. Creating the clustering framework, managing the connectivity among hosts and configuring the shared storage are not easy tasks and can involve multiple teams, depending on the organization. You should not be scared by the added complexity, however. For the most part, the technology works; but with added complexity, there is an increased chance of overlooking something that could jeopardize system stability.
Disadvantage no. 2: Update and upgrade factors
Upgrades to newer product versions and hardware components can cause difficulties as well. Because a virtual host cluster connects multiple systems, there are numerous, complex interactions that occur between components.
Simply updating the multipath I/O (MPIO) drivers on one host, for example, affects the entire cluster. First, it affects how efficiently the other nodes pass off logic unit numbers to one another. Also, before updating the MPIO drivers, the firmware for all the host bus adapter (HBA) cards across the entire cluster need to be up to date. If this is not the case, the HBA driver must be installed first.
With standalone hosts, this can be addressed with one or two reboots. In a clustered environment, however, the coordination across many virtual host servers is difficult. Upgrading the actual virtual host software, however, can be an even greater challenge because of cluster node interactions and the different supporting software versions (i.e., System Center Virtual Machine Manager, Data Protection Manager, etc.).
Generally, vendors provide detailed, step by step instructions for many of these complex updates; and, for the most part, they go smoothly.
Disadvantage no. 3: Cluster cost factors
Cost is another major consideration. To implement a clustered virtual host environment, you need to duplicate parts of the infrastructure and maintain the same VM-to-host ratios at times. Also, most vender implementations require a storage area network or separate disk subsystem. An open source iSCSI or cheaper disk array would be more prudent, but these options come with performance and stability issues.
In my experience, selecting the cheap route on important infrastructure components creates problems down the road. Just because you can get a particular configuration to work does not mean it will meet the project goals. If management is apprehensive about the costs, explain that clustered virtual host environments provide better service by increasing uptime. In my opinion, this configuration is well worth the costs if implemented correctly.
Ultimately, each organization has to determine whether a clustered virtual host environment is the right virtualization architecture for its business model. While virtual host clusters involve additional configuration complexity, upgrading issues and potentially additional costs, your environment can benefit from enhanced server or application availability and improved management. Despite the potential pitfalls, I believe this setup is worth the effort and costs.
Keep the conversation alive, however, by weighing in on why you did or did not implement virtual host clusters.
About the expert
Rob McShinsky is a senior systems engineer at Dartmouth Hitchcock Medical Center in Lebanon, N.H., and has more than 12 years of experience in the industry -- including a focus on server virtualization since 2004. He has been closely involved with Microsoft as an early adopter of Hyper-V and System Center Virtual Machine Manager 2008, as well as a customer reference. In addition, he blogs at VirtuallyAware.com, writing tips and documenting experiences with various virtualization products.