
Right now, heartbeat has no conceptual idea about nodes being in different sites.
This page describes a proposal to possibly add site designations into the heartbeat infrastructure.
In this view, every node would then be designated as belonging to a site. In effect site would just be an attribute which can be queried by using the Heartbeat API[1].
This site information could then be used by quorum plugins and/or quorum tiebreaker plugins.
I momentarily thought about having different deadtimes for same-site and different-site nodes, but that doesn't work - because membership still needs to be computed at once for the entire stretch (or split-site) cluster. This is a limitation of the stretch cluster architecture currently being proposed.
What this means in practice is that local failovers and remote failovers have to have the same deadtime.
But, if this information were provided it could be used. And the place to provide it is at the bottom of the infrastructure.
We currently have a /var/lib/heartbeat/hostcache[2] file which we keep the the nodes currently considered to be part of the cluster in. It would be ideal to add the site information to that same file - since it is automatically kept in sync, and distributed throughout the cluster. One could add a new command, or new options to existing commands to create or modify this information.
| [1] | http://www.linux-ha.org/HeartbeatAPI |
| [2] | http://www.linux-ha.org/HostcacheFile |
This information provided courtesy of the Linux-HA project at http://linux-ha.org/