Virtualization: Hyper-V and High Availability
Using Hyper-V with Windows Server failover clustering gives you a high-availability cluster of physical and virtual machines.
Adapted from “Microsoft Virtualization” (Syngress, an imprint of Elsevier)
In a nutshell, high availability (HA) means making a service available to users with the expectation that they’ll be able to access that service at all times, usually because some effort has been made to ensure continuous operation.
When someone says HA, they usually mean some form of server clustering. Server clusters are a collection of two or more servers configured and managed as a single resource. You can have a load-balancing cluster, where physical server resources are utilized based on client need, or a failover cluster, using a single cluster member (or “node”) at a time and reserving the other until the primary fails.
Microsoft Windows Server provides “traditional” host-based clustering with options Hyper-V makes available for failover and load balancing. There are also some unique considerations Hyper-V brings to building highly available services.
Failover clusters consist of a single node that typically handles all of the client requests, called the Primary node. There are also one or more nodes that are largely inactive unless the Primary node goes offline. These are called Secondary nodes.
In a load-balanced cluster, all nodes participate actively in serving client requests. In most cases, a load-balanced cluster can also serve as a failover cluster. One or more nodes of the load-balanced cluster can typically fail without the other nodes being impacted.
In any cluster, a major challenge is determining the status of a node member (particularly in failover clusters), and determining which node of a cluster currently controls a clustered application and its data. You will most often use a heartbeat network (typically a physically separate set of network cards that communicate a signal, or heartbeat) to determine the status of each node.
Since Windows Server 2000, Microsoft has built in the ability to create a failover cluster in the Enterprise and Datacenter editions. The process is greatly simplified in Windows Server 2008. It uses a wizard-based approach to node validation and configuration.
The validation portion of the setup wizard checks your nodes, as well as the available storage and network connections to ensure the infrastructure will support the cluster. It also checks applications to ensure they can support a clustered environment. It will confirm that the server hardware is sufficient to support a clustered environment before performing the steps necessary to set up and configure the cluster.
Microsoft Network Load Balancing (NLB) allows multiple network resources to be part of a pool with a common network name. When clients request that network resource, one of the nodes responds. The server that responds is determined by an algorithm that selects servers so that each one processes a certain percentage (that you can configure) of client requests.
Defining HA for Hyper-V
With Hyper-V clustering, it’s important to determine which layer of the virtualization stack is being clustered. Assuming that the physical computer meets the necessary requirements (access to attached storage, a dedicated network interface for heartbeat and so on), the host can be in a cluster.
You can also cluster the virtual machines (VMs) themselves (“guests”) on a single host. Using virtual networks for heartbeat and virtual iSCSI for the quorum and other attached storage lets you create guest clusters, even if the host hardware wouldn’t normally support it. You can also host Hyper-V guests as nodes across multiple physical hosts, provided all of the hosts are capable of being clustered.
With Hyper-V virtualization, you can create extremely robust failover solutions. Each physical host can contain multiple VMs, each a member node of a failover cluster. Physical hosts can also be part of a failover cluster. It’s important, therefore, to keep storage and resources in mind when placing VMs.
You can monitor each VM separately, so you have the option of spreading your VMs out across the physical nodes of your cluster. This will give you increased performance, but may make it more challenging to plan your storage-capacity needs.
Another advantage that NLB clustering VMs provides is the ability to make your services highly available—NLB can be used within a single host or across multiple hosts to provide service availability. In addition to load balancing, NLB allows member nodes to be removed from the cluster for maintenance or in case of failure.
VMs that are nodes in a failover cluster through the NLB feature gain HA for their workloads during VM maintenance. If the VM requires updating or other forms of maintenance, you can transfer the workload to another VM on the host, or on a different host altogether.
Thomas Olzak is the director of information security at HCR ManorCare, an Ohio-based short- and long-term rehabilitation and medical care provider with more than 500 locations spread throughout 32 states. Jason Boomer, Robert Keefer and James Sabovik also contributed to this article and the book from which it is excerpted.
©2011 Elsevier Inc. All rights reserved. Printed with permission from Syngress, an imprint of Elsevier. Copyright 2011. “Microsoft Virtualization” by Thomas Olzak. For more information on this title and other similar books, please visit elsevierdirect.com.