The high availability requirement has traditionally been a requirement for those systems that performed critical missions. However, at present, it is becoming increasingly important to require the availability in commercial systems and academic areas where the objective of providing the services in the shortest time possible, is increasingly pursued.
The concept of a continuously available cluster, is based on the idea of maintaining the service at all times. This represents an ideal situation which would require the system to be composed of components that never fail, both at hardware and software level. There really are no systems that can assume this kind of availability.
We need the cluster to be fault tolerant.
We define a high-availability cluster as a system capable of distributing ultra-high workloads between several machines to maintain a continuous service. In this case we focus on creating clusters by utilising otherwise redundant hardware which is loaded with software capable of joining these hardware components so that the services offered to the user will not be interrupted. .
The concepts of high availability and clustering are closely related because the concept of high availability of services directly implies a solution through "clustering." The main provision of a high availability system is that the failure of any single node will result in applications that were running on it being migrated to another node in the cluster system. This can be migrated automatically (failover) or manually (switchover).
From a general standpoint, a high availability solution consists of two parts:
- high availability infrastructure
Commonly, the only adaptation that an application needs to be executed in a high availability cluster implemented on GNU / Linux, is to add scripts. There are APIs which work comfortably with high availability, all of which include methods that allow the switchover and failover, and also allow starting, stopping, or the monitoring an application to name a few of its features.