Software High Availability In A Nutshell - Part 2 (cluster building blocks)

Software High Availability In A Nutshell - Part 2 (cluster building blocks)

The High Availability Cluster Building Blocks

Nodes & Networking

Of course you need nodes which are connected to a network , sometimes they are referred as processors (not to be confused with CPUs).

So the first thing you need are some nodes which are connected to a network/s. As for how the network/s is/are connected I will review this later.

Membership & Messaging

High Availability cluster nodes must be able to to communicate with each other and more important is to have the knowledge of which node belongs to this cluster.

For this purpose the idea of messaging and membership layer of the high availability cluster was conceived.

The Idea behind it is to provide a software which will be able to create the notion of nodes bound together as part of a cluster and a will allow messages exchange between all cluster nodes.

Good examples would be the The Heartbeat Open Source  and The The Corosync Open Source.

Both are considered as messaging and membership layers which one is better? , this is a discussing for a different post.

Cluster Resources

High Availability cluster resources could be considered as a services provided by the cluster applications.

So if we consider the database from my previous post it could be considered as a cluster resource.

Resource Management layer  

 Since we are dealing with a cluster of machines where resources are needed to brought up and down , maybe at different states , maybe according to some restrictions there is the need for something to manage the resources across all the cluster nodes.

For such a job the Resource Management layer is needed.

The Resource Management layer also responsible to monitor the state of the resources it manages and to take decisions when a state is changed according to predefined rules by the user.

One can call the resource management layer the brain of the cluster.  

An excellent example for such a layer is the well known Software called Pacemaker which can work with both Corosync and HeartBeat 

Resources Types

There several types of resources depending on ones perspective.

From my point of view there are 2 main types of resources 

  1. Simple Resource - A resource which have no special state when providing it's services it is either on on at least one cluster node or off on all cluster nodes.
  2. Multi State Resource - A resource that have at least two states when it is up on at least 2 nodes of the cluster , a good example is a database which can be either at master state or slave state.

 

The next diagram shows the relations between Messaging Layer , Resource Management Layer.

This Cluster for example is composed of 2 nodes  and 3 resources 

  1. Simple Resource A - Which should run on all cluster nodes (Ex:ntpd)
  2. Simple Resource A - Which should run on one one of the cluster nodes only (Ex: floating ip address) 
  3. Multi State Resource A - Which should run on both cluster nodes but at different states ,state X and state Y , (Ex: Master/Slave Database)

 

Hope you had fun in my next post I will go over Networking layouts of clusters.

To view or add a comment, sign in

More articles by Tal Engle-Potlog

Others also viewed

Explore content categories