Many modern data centers are based on virtualization, and high availability is used to ensure the availability of virtual machines within a virtualized environment. Many data center managers are using vSphere High Availability or Citrix XenServer high-availability features for virtual machines. However, using high availability for your virtual environment doesn't guarantee that vital services, such as a Web server or an Oracle database, will be available at all times, which makes an excellent case for virtualizing the operating system (OS) as well. Pacemaker is a common resource manager that is used for OS-level high availability. This tip is the first in a series about high availability in the data center, and it explains how to increase the availability of vital services by using methods that go beyond what you can do from a virtualization platform.
The benefits and drawbacks of high availability in the data center
In many data centers, virtualization, or a private cloud, is used as the foundation of the IT infrastructure. Instead of running multiple applications and processes on a server, servers are often used like appliances, offering one service and occasionally supporting other services. There is one important drawback to that approach though--if the service goes down while the virtual server keeps running, the high availability offered by your virtualization software or hardware won't detect anything. High-availability features from virtualization platforms monitor the availability of VMs and not the availability of services. But it is the availability of services, not VMs, that is important in the data center. Therefore, high availability at the OS level is an important consideration.
A typical high-availability cluster, offered at the OS level, is responsible for providing services. That means the cluster, and not individual servers, are also responsible for starting the services. The cluster also decides which node will offer the service. While doing this, the cluster can consider other factors, such as a specific load order between different services, time constraints or other rules that determine which node will offer the service.
Using high-availability in your virtual environment does not provide you with the best possible protection in the data center, as it does lack the capability to handle specific services individually. Using high availability at the OS level ensures that if a monitored device or system goes down, the service will start on another node in the high-availability cluster, or even on the same node if that makes sense from the perspective of the cluster.
Another important capability that the OS high-availability cluster brings that isn't available from the VM high-availability cluster is service dependencies. Let's take the simple example of a Web server that is configured in a high-availability environment. Typically, some dependencies are involved when working with a Web server, such as the availability of the storage hosting the document root offered by that Web server, or the database that contains the records that have to be offered by the Web server. In an OS high-availability solution, it is fairly easy to define these kinds of dependencies. When using high-availability features from virtualization platforms, you don’t have the same insight and control over the OS and services.
In larger enterprise environments, high availability from the OS level has never really disappeared. For these environments, which are often complex and scalable Unix environments, the high availability offered by the virtualization software or hardware is just not enough. Recently, many companies have started realizing this and are now adding OS-level high availability to protect their mission-critical services. High-availability software is available for all major OSes, including all Unix, Linux and Windows platforms. Among the most-used solutions are Pacemaker for Linux and Veritas for Unix environments. In the next tip in this series, you'll read how to improve availability of vital services in your data center by deploying high-availability solutions.
Sander van Vugt is an independent trainer and consultant living in the Netherlands. Van Vugt is an expert in Linux high availability, virtualization and performance and has completed several projects that implement all three. Sander is also a regular speaker on many Linux conferences all over the world. He is also the writer of various Linux-related books, such as Beginning the Linux Command Line, Beginning Ubuntu Server Administration and Pro Ubuntu Server Administration.