Linux-HA Logo

Heartbeat Host Cache (/var/lib/heartbeat/hostcache) File

In order to support the autojoin[1] directive, Heartbeat[2] added a host cache file to effectively replace the host[3] directive.

This file contains the nodes we think are proper members of the cluster, or at least would be if they were up.

This file currently contains the following information:

hostname

uuid

As usual, the hostname is the output of uname-n, and the UUID is always exactly 36 characters long, and each line is terminated by a newline. There is exactly one tab between the host name and the uuid. A sample hostcache file is shown below:

paul    6d3906ef-d88f-4363-afac-609884ddbb90
silas   d47c5806-a54c-45a3-9e22-2fe8dd27336f

For a variety of reasons, it would be desirable to have the host cache file contain a little more information.

Quorum Vote Weight Field

One of the proposed new fields would be quorum votes. In our current quorum algorithm, each node has one vote. In this scheme, the quorum votes would be weighted, with each node having an integral number of votes >= 0.

This is desirable for split-site[4] clusters (with different numbers of nodes in each site) and for scientific clusters where only certain nodes are eligible to become the cluster's head node. For those types of clusters, if there is no node capable of becoming a head node, no useful cluster can be formed. So, it's important to ensure that no subcluster can gain quorum without a head-node-capable node.

Site identification Field

This field would be available to allow one to designate nodes as belonging to different sites, in order to make more interesting quorum and/or tiebreaker algorithms possible. The site would be an ASCII string with no meaning inherent in the strings.

If both fields were added, then it would be possible to have a hostcache file which looked something like this:

paul    6d3906ef-d88f-4363-afac-609884ddbb90      1       rome
silas   d47c5806-a54c-45a3-9e22-2fe8dd27336f      1       rome
priscilla   0f74f51a-ecf2-4271-8a94-ce4dd210fe92  1       corinth
aquila  d47c5806-a54c-d88f-6343-2fe8dd27336f      1       corinth

References

[1]http://www.linux-ha.org/ha.cf/AutojoinDirective
[2]http://www.linux-ha.org/Heartbeat
[3]http://www.linux-ha.org/ha.cf/HostDirective
[4]http://www.linux-ha.org/SplitSite


This information provided courtesy of the Linux-HA project at http://linux-ha.org/