This site best when viewed with a modern standards-compliant browser. We recommend Firefox Get Firefox!.

Linux-HA project logo
Providing Open Source High-Availability Software for Linux and other OSes since 1999.

USA Flag UK Flag

Japanese Flag

Homepage

About Us

Contact Us

Legal Info

How To Contribute

Security Issues

This web page is no longer maintained. Information presented here exists only to avoid breaking historical links.
The Project stays maintained, and lives on: see the Linux-HA Reference Documentation.
To get rid of this notice, you may want to browse the old wiki instead.

1 February 2010 Hearbeat 3.0.2 released see the Release Notes

18 January 2009 Pacemaker 1.0.7 released see the Release Notes

16 November 2009 LINBIT new Heartbeat Steward see the Announcement

Last site update:
2017-12-17 09:35:28

Heartbeat on OpenBSD

Yes, heartbeat is running on OpenBSD, and there is also a port for it in the OpenBSD ports CVS tree. As the port was imported after the OpenBSD 4.2 release it is only available for OpenBSD-current installations. The actual heartbeat version of the port is 2.1.3.

Heartbeat port for OpenBSD

The latest version of the port is 2.1.3. The port is tested to compile and run on i386, sparc and sparc64. Nevertheless, I also tested the port on OpenBSD 4.2 and 4.1, and needed only minor tweaks to the versions in the various *DEPENDS variables in the ports Makefile.

The Heartbeat port is divided into SUBPACKAGES. To the main package containing the main heartbeat stuff, there are a -gui and a -snmp subpackage.

Differences in heartbeat on OpenBSD compared to Linux

This section will explain the main differences between Heartbeat on Linux and OpenBSD.

File locations

  • Configuration

    • The heartbeat configuration is placed in and below: /etc/ha.cf.

  • Init Script

    • The script to start heartbeat is placed in /etc/ha.d/init.d/heartbeat.sh

  • variable state files These files are kept below /var/lib/heartbeat

    • and /var/run/heartbeat
  • rest The rest of the files installed with the package are kept below /usr/local in the usual locations. Libraries and resource scripts are below /usr/local/lib, on any architecture.

Heartbeat user and group

The heartbeat user and group are called _heartbeat, following the OpenBSD user naming scheme, instead of using the hacluster:haclient combination. The standard user and group id is 596.

Additional resource scripts

Due to the fact that OpenBSD doesn't use the SystemV style system startup, there aren't LSB scripts available. So far, three additional resource scripts, for the OpenBSD apache, and for openvpn, and for Asterisk/Callweaver are added to the port. Further the pgsql and mysql resource scripts are patched to provide sane default values for OpenBSD.

Multicast based cluster on OpenBSD

To be able to setup a multicast based cluster you have to make sure you enable multicast_host in /etc/rc.conf or better in /etc/rc.conf.local. Make sure every node in your cluster has multicast enabled, then this works well.

Broadcast based cluster on OpenBSD

Setup of a cluster with communication based on broadcast does not work on OpenBSD. More on the reason about that can be found here: "Broadcast directive".

OpenBSD related Heartbeat bugzilla entries

OpenBSD related bugs and problems are reported in the HeartbeatBugzilla: Bugzilla

The test cluster

The test cluster is a funny mixture of the following hardware:

  • Sun Enterprise Server E450, running OpenBSD sparc64
  • Libretto U100, running OpenBSD i386
  • ordinary desktop PC, running openSUSE 10.2 i586
  • Sparc Station 5, running OpenBSD sparc
  • old desktop, running OpenBSD i386

Known problems

  • with enabled broadcast communication, the OpenBSD nodes have "message to long" problem, when migrating resources, standby/activation.

Port Version numbers

The version numbers of the port follow the official release version numbers. I try to update the port for interim releases too. Interim version have the added interim version number. Own additions/enhancements are maintained in the ports patchlevel p0.