Table of Contents
In this article I will give you a brief overview on understanding different kinds of clustering techniques and their architecture. But before we start with the different kinds of clustering let us first understand about the basic terminology in Clustering where one of the most used variant is High Availability Cluster. In the upcoming articles I will share the steps to configure High Availability Cluster, creating and configuring resource in your Cluster and all about creating resource group, constraints and assigning score with various examples.
What is High Availability?
High availability in IT refers to a system that is continuously operational and available for the delivery of services it provides for end users. The key point when talking about IT systems is the availability to deliver services to end users, since a system can be up-and-running from the IT administrator's perspective but can fail to provide services for end users, which makes it useless. There are a number of factors that can lead to service downtime, mainly because there are so many different layers that must work together to provide service availability.
What are Computer clusters?
A computer cluster is a group of computers joined to work together in order to provide high availability of some services. The services are usually built with a number of applications operating in the so-called application layer. Single points of failure are spread across all layers of a system design, and the application layer is one of the critical layers. It is usual for an application to encounter an error, or bug, and stop responding or crash. Such a situation will lead to service downtime and probably financial loss as well, so it is necessary to provide redundancy on the application layer also. This is the reason we need to implement a computer cluster solution into our high-availability system design.
Different Kinds of Clustering
Three different kinds of cluster can be distinguished, and all of these three types can be installed on Linux servers.
- High performance: Different computers work together to host one or more tasks that require lots of computing resources.
- Load balancing: A load balancer serves as a front end and receives requests from end users. The load balancer distributes the request to different servers.
- High availability: Different servers work together to make sure that the downtime of critical resources is reduced to a minimum.
High Performance Clusters
A high performance cluster is used in environments that have heavy computing needs. An approach to high performance clustering is the use of a Single System Image (SSI). Using that approach, multiple machines are treated by the cluster as one, and the cluster just allocates and claims the resources where they are available.
Load Balancing Clusters
Load balancing clusters are typically used in heavy-demand environments, such as very popular web sites. The purpose of a load balancing cluster is to redistribute a task to a server that has resources to handle the task. That seems a bit like high performance clustering, but the difference is that in high performance clusters, typically, all servers are working on the same task, where load balancing clusters take care of load distribution, to get an optimal efficiency in task-handling.
A load balancing cluster consists of two entities: the load balancer and the server farm behind it. The load balancer receives requests from end users and redistributes them to one of the servers that is available in the server farm
HAProxy is another Linux-based load balancer. The load balancers also monitor the availability of servers in the server farm, to decide where resources can be placed. It is also very common to use hardware for load balancing clusters.
High Availability Clusters
The goal of a high availability cluster is to make sure that critical resources reach the maximum possible availability. This goal is accomplished by installing cluster software on multiple servers. This software monitors the availability of the cluster nodes, and it monitors the availability of the services that are managed by the cluster. If a server goes down, or if the resource stops, the HA cluster will notice and make sure that the resource is restarted somewhere else in the cluster, so that it can be used again after a minimal interruption.
The Components That Build a High Availability Cluster
To build a high availability cluster, you’ll need more than just a few servers that are tied together. Typically, the following components are used in most clusters:
- Shared storage
- Different networks
- Bonded network devices
- Fencing/STONITH devices