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 highavailability 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 LinuxHA 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