Understanding High Availability Cluster and Architecture

Deepak Prasad

Linux, What Is

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.

Understanding High Availability Cluster and Architecture


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.

Understanding High Availability Cluster and Architecture


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.

Understanding High Availability Cluster and Architecture


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.

Understanding High Availability Cluster and Architecture


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
  • Multipathing
  • Fencing/STONITH devices



Views: 76

Deepak Prasad

He is the founder of GoLinuxCloud and brings over a decade of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels in various domains, from development to DevOps, Networking, and Security, ensuring robust and efficient solutions for diverse projects. You can reach out to him on his LinkedIn profile or join on Facebook page.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to admin@golinuxcloud.com

Thank You for your support!!

6 thoughts on “Understanding High Availability Cluster and Architecture”

  1. Very Good & simple explanation about the Clusters in terms of a user who doesn’t have any idea about the Computer Clustering. You have chosen nice words to define the Clustering, I appreciate it.


Leave a Comment

GoLinuxCloud Logo

We try to offer easy-to-follow guides and tips on various topics such as Linux, Cloud Computing, Programming Languages, Ethical Hacking and much more.

Programming Languages