Linux Highly Available (HA) Fault-Tolerant Servers
Vijay Chaurasiya
1
, Prabhash Dhyani
2
, Siddharth Munot
3
1: Lecturer, Indian Institute of Information Technology (IIIT) Allahabad, India
2,3: Student, Indian Institute of Information Technology (IIIT) Allahabad, India
Email 1,2,3: {vijayk, siddharth, pdhyani_b04}@iiita.ac.in
Abstract
High availability is becoming increasingly
important as our business depend more and more on
computers. Unfortunately, many off-the-shelf
solutions for high availability (HA) are expensive and
require expertise. This paper explains the design and
implementation of an inexpensive high-availability
solution for our business-critical needs without
requiring the use of expensive additional hardware
or software.
Along with discussion on high availablity, this
paper also discusses the data integrity of files and
database, of the services which are to be made highly
available. Using HTTP as the service example and
MySQL as the database to be replicated for data
integrity, a two node cluster has been configured to
implement the concept.
1. Introduction
These days, high availability is a necessity. No one
wants the services they offer to be unreachable,
especially when that downtime will undoubtedly cost
them money. High Availability (HA) Linux clusters
offers the solution to this need at downtime.
High-availability clusters (also known as HA
Clusters or Failover Clusters) are computer clusters
that are implemented primarily for the purpose of
improving the availability of services which the
cluster provides. They operate by having redundant
computers or nodes which are used to provide service
when system components fail. Normally, if a server
with a particular application crashes, the application
will be unavailable until someone fixes the crashed
server. HA clustering remedies this situation by
detecting hardware/software faults, and immediately
restarting the application on another system without
requiring administrative intervention. As part of this
process, clustering software may configure the node
before starting the application on it. For example,
appropriate file systems may need to be imported and
mounted, network hardware may have to be
configured, and some supporting applications may
need to be running as well.
In addition to failing hardware or applications,
even scheduled maintenance can become an
availability issue. With High availabilty systems, this
kind of time-consuming and costly disruption can be
avoided. Simply switching the services to another
node and temporarily removing the machine needing
maintenance from the cluster. Once the work is done,
the machine can be brought back into the cluster.
HA clusters minimize availability interruptions by
quickly switching services over from failed systems
to working systems, providing the customer with an
illusion of continuous availability. Although there are
many components to a high−availability system, two
of the key components are heartbeat services and
cluster communication services. Heartbeat services
provide notification whether nodes are working or
have failed. In the Linux−HA project, the heartbeat
program provides these services and intracluster
communication services. Cluster communcation or
data synchronization is done using another open
source tool called rsync and database syncronisation
in real time is done for MySQL database.
2. Related Work
A lot of work has been done on this topic, many
commercial implementations of HA clusters for
many operating systems are being developed.
These products are found extensively in commercial
or research/academic use. But many of these
commercial products provide only high-availbity but
do not guarantee data-integrity or database
synchronizaion.
This paper describes high-availabity using the open
source Linux HA project heartbeat, along with data
integrity and database syncronisation.
10th International Conference on Information Technology
0-7695-3068-0/07 $25.00 © 2007 IEEE
DOI
217
10th International Conference on Information Technology
0-7695-3068-0/07 $25.00 © 2007 IEEE
DOI 10.1109/ICIT.2007.58
217
10th International Conference on Information Technology
0-7695-3068-0/07 $25.00 © 2007 IEEE
DOI 10.1109/ICIT.2007.58
223
10th International Conference on Information Technology
0-7695-3068-0/07 $25.00 © 2007 IEEE
DOI 10.1109/ICIT.2007.58
223