This page describes the release 1 architecture of the Linux-HA project. See the BasicArchitecture page for an overview of the release 2 architecture.
The most well-known component of the Linux-HA project is Heartbeat. Heartbeat sends heartbeat packets across the network (or serial ports) to the other instances of Heartbeat as a sort of keep-alive message.
Heartbeat itself acts similar to a cluster-wide init daemon, making sure each of the services it manages are running at all times as though they were spawned with an init(8) respawn directive.
When heartbeat packets are no longer received, the node is assumed to be dead, and any services (resources) it was providing are failed over to the other node. This assumption of death can be assured to be true by the proper integration of STONITH or a watchdog timer.
Heartbeat can also monitor routers and switches as though they were cluster members using the ping or ping_group directives. Combined with the ipfail program, Heartbeat can also cause failovers when networking connectivity is compromised.
Heartbeat provides services (which it calls resources) as configured in the haresources file. The services in the haresources file are started in a left-to-right order, and stopped in a right-to-left order.
Heartbeat can communicate using a variety of mechanisms. It can communicate using any combination of UDP broadcast, UDP multicast, UDP unicast, and serial communication paths.
Heartbeat uses a multicast communications protocol to deal with lost and corrupted packets.
ClusterConcepts, FactSheet, ipfail, ha.cf, Heartbeat, haresources, HeartbeatResourceAgent, NewHeartbeatDesign, BasicArchitecture, TechnicalPapers