# $Id: Specfile,v 1.40 2000/04/28 21:34:58 horms Exp $
Summary: heartbeat - heartbeat subsystem for High-Availability Linux
Name: heartbeat
Version: 0.4.7bpre1
Release: 1.um.1
Copyright: GPL
URL:
http://linux-ha.org/
Group: Utilities
Packager: Alan Robertson <
[email protected]>
Source:
http://linux-ha.org/download/heartbeat-0.4.7bpre1.tar.gz
Buildroot: /var/tmp/heartbeat-root
%description
heartbeat is a basic heartbeat subsystem for Linux-HA.
It will run scripts at initialization, and when machines go up or down.
This version will also perform IP address takeover using gratuitious ARPs.
It works correctly for a 2-node configuration, and is extensible to larger
configurations.
It implements the following kinds of heartbeats:
- Bidirectional Serial Rings ("raw" serial ports)
- UDP/IP braodcast (ethernet, etc)
- Bidirectional Serial PPP/UDP Rings (using PPP)
%changelog
* Thu Apr 27 2000 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, Rudy Pawul <
[email protected]>,
Mitja Sarp <
[email protected]>, Jacob Rief <
[email protected]>
Guenther Thomsen <
[email protected]>,
Luis Claudio R. Gon�alves <
[email protected]>,
Marcelo Tosatti <
[email protected]>
and Horms <
[email protected]>
+ Version 0.4.8 BETA series
+ Added the nice_failback feature. If the cluster is running when
the primary starts it acts as a secondary. (Luis Claudio)
+ Made the RPM more SuSE-compatible
+ Tidied up logging so it can be to files, to syslog or both (Horms)
+ Tidied up build process (Horms)
+ Updated ldirectord to produce and install a man page and be
compatible with the fwmark options to The Linux Virtual Server (Horms)
+ Added log rotation for ldirectord and heartbeat using logrotate
if it is installed
+ Added Audible Alarm resource by Kirk Lawson <
[email protected]>
and myself (Horms)
+ Added init script for ldirectord so it can be run independently
of heartbeat (Horms)
+ Added sample config file for ldirectord (Horms)
+ An empty /etc/ha.d/conf/ is now part of the rpm distribution
as this is where ldirectord's configuration belongs (Horms)
+ Minor startup script tweaks. Hopefully, we should be able to make core
files should we crash in the future. Thanks to Holger Kiehl for diagnosing
the problem.
+ Changed the default port number to our official IANA port number (694)
+ Fixed the serial locking code so that it unlocks when it shuts down.
* Sat Dec 25 1999 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, Rudy Pawul <
[email protected]>,
Mitja Sarp <
[email protected]>, Jacob Rief <
[email protected]>
and Guenther Thomsen <
[email protected]>
+ Version 0.4.7
+ Added the nice_failback feature. If the cluster is running when
the primary starts it acts as a secondary. (Luis Claudio Goncalves)
+ Put in lots of code to make lost packet retransmission happen
+ Stopped trying to use the /proc/ha interface
+ Finished the error recovery in the heartbeat protocol (and got it to work)
+ Added test code for the heartbeat protocol
+ Raised the maximum length of a node name
+ Added Jacob Rief's ldirectord resource type
+ Added Stefan Salzer's <
[email protected]> fix for a 'grep' in IPaddr which
wasn't specific enough and would sometimes get IPaddr confused on
IP addresses that prefix-matched.
+ Added Lars Marowsky-Bree's suggestion to make the code almost completely
robust with respect to jumping the clock backwards and forwards
+ Added code from Michael Moerz <
[email protected]> to keep findif from
core dumping if /proc/route can't be read.
* Mon Nov 22 1999 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, Rudy Pawul <
[email protected]>,
Mitja Sarp <
[email protected]>,
and Guenther Thomsen <
[email protected]>
* Tue Nov 22 1999 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, Rudy Pawul <
[email protected]>,
Mitja Sarp <
[email protected]>,
and Guenther Thomsen <
[email protected]>,
+ Version 0.4.6
+ Fixed timing problem in "heartbeat restart" so it's reliable now
+ Made start/stop status compatible with SuSE expectations
+ Made resource status detection compatible with SuSE start/stop expectations
+ Fixed a bug relating to serial and ppp-udp authentication (it never worked)
+ added a little more substance to the error recovery for the HB protocol.
+ Fixed a bug for logging from shell scripts
+ Added a little logging for initial resource acquisition
+ Added #!/bin/sh to the front of shell scripts
+ Fixed Makefile, so that the build root wasn't compiled into pathnames
+ Turned on CTSRTS, enabling for flow control for serial ports.
+ Fixed a bug which kept it from working in non-English environments
* Wed Oct 13 1999 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, Rudy Pawul <
[email protected]>,
Mitja Sarp <
[email protected]>,
and Guenther Thomsen <
[email protected]>
+ Version 0.4.5
+ Mijta Sarp added a new feature to authenticate heartbeat packets
using a variety of strong authentication techniques
+ Changed resource acquisition and relinquishment to occur in heartbeat,
instead of in the start/stop script. This means you don't *really*
have to use the start/stop script if you don't want to.
+ Added -k option to gracefully shut down current heartbeat instance
+ Added -r option to cause currently running heartbeat to reread config files
+ Added -s option to report on operational status of "heartbeat"
+ Sped up resource acquisition on master restart.
+ Added validation of ipresources file at startup time.
+ Added code to allow the IPaddr takeover script to be given the
interface to take over, instead of inferring it. This was requested
by Lars Marowsky-Bree
+ Incorporated patch from Guenther Thomsen to implement locking for
serial ports used for heartbeats
+ Incorporated patch from Guenther Thomsen to clean up logging.
(you can now use syslog and/or file logs)
+ Improved FreeBSD compatibility.
+ Fixed a bug where the FIFO doesn't get created correctly.
+ Fixed a couple of uninitialized variables in heartbeat and /proc/ha code
+ Fixed longstanding crash bug related to getting a SIGALRM while in malloc
or free.
+ Implemented new memory management scheme, including memory stats
* Thu Sep 16 1999 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, and Rudy Pawul <
[email protected]>
+ Version 0.4.4
+ Fixed a stupid error in handling CIDR addresses in IPaddr.
+ Updated the documentation with the latest from Rudy.
* Wed Sep 15 1999 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, and Rudy Pawul <
[email protected]>
+ Version 0.4.3
+ Changed startup scripts to create /dev/watchdog if needed
+ Turned off loading of /proc/ha module by default.
+ Incorporated bug fix from Thomas Hepper <
[email protected]> to IPaddr for
PPP configurations
+ Put in a fix from Gregor Howey <
[email protected]>
where Gregor found that I had stripped off the ::resourceid part
of the string in ResourceManager resulting in some bad calls later on.
+ Made it compliant with the FHS (filesystem hierarchy standard)
+ Fixed IP address takeover so we can take over on non-eth0 interface
+ Fixed IP takeover code so we can specify netmasks and broadcast addrs,
or default them at the user's option.
+ Added code to report on message buffer usage on SIGUSR[12]
+ Made SIGUSR1 increment debug level, and SIGUSR2 decrement it.
+ Incorporated Rudy's latest "Getting Started" document
+ Made it largely Debian-compliant. Thanks to Guenther Thomsen, Thomas
Hepper, I�aki Fern�ndez Villanueva and others.
+ Made changes to work better with Red Hat 6.1, and SMP code.
+ Sometimes it seems that the Master Control Process dies :-(
* Sat Aug 14 1999 Alan Robertson <
[email protected]>,
Volker Wiegand <
[email protected]>, and Rudy Pawul <
[email protected]>
+ Version 0.4.2
+ Implemented simple resource groups
+ Implemented application notification for groups starting/stopping
+ Eliminated restriction on floating IPs only being associated with eth0
+ Added a uniform resource model, with IP resources being only one kind.
(Thanks to Lars Marowsky-Bree for a good suggestion)
+ Largely rewrote the IP address takeover code, making it clearer, fit
into the uniform resource model, and removing some restrictions.
+ Preliminary "Getting Started" document by Rudy Pawul
+ Improved the /proc/ha code
+ Fixed memory leak associated with serial ports, and problem with return
of control to the "master" node.
(Thanks to Holger Kiehl for reporting them, and testing fixes!)
* Tue Jul 6 1999 Alan Robertson <
[email protected]> and
Volker Wiegand <
[email protected]>
+ Version 0.4.1
+ Fixed major memory leak in 0.4.0 (oops!)
+ Added code to eliminate duplicate packets and log lost ones
+ Tightened up PPP/UDP startup/shutdown code
+ Made PPP/UDP peacefully coexist with "normal" udp
+ Made logs more uniform and neater
+ Fixed several other minor bugs
+ Added very preliminary kernel code for monitoring and controlling
heartbeat via /proc/ha. Very cool, but not really done yet.
* Wed Jun 30 1999 Alan Robertson <
[email protected]>
+ Version 0.4.0
+ Changed packet format from single line positional parameter style
to a collection of {name,value} pairs. A vital change for the future.
+ Fixed some bugs with regard to forwarding data around rings
+ We now modify /etc/ppp/ip-up.local, so PPP-udp works out of the box
(at least for Red Hat)
+ Includes the first version of Volker Wiegand's Hardware Installation Guide
(it's pretty good for a first version!)
* Wed Jun 09 1999 Alan Robertson <
[email protected]>
+ Version 0.3.2
+ Added UDP/PPP bidirectional serial ring heartbeat
(PPP ensures data integrity on the serial links)
+ fixed a stupid bug which caused shutdown to give unpredictable
results
+ added timestamps to /var/log/ha-log messages
+ fixed a couple of other minor oversights.
* Sun May 10 1999 Alan Robertson <
[email protected]>
+ Version 0.3.1
+ Make ChangeLog file from RPM specfile
+ Made ipresources only install in the DOC directory as a sample
* Sun May 09 1999 Alan Robertson <
[email protected]>
+ Version 0.3.0
+ Added UDP broadcast heartbeat (courtesy of Tom Vogt)
+ Significantly restructured code making it easier to add heartbeat media
+ added new directives to config file:
+ udp interface-name
+ udpport port-number
+ baud serial-baud-rate
+ made manual daemon shutdown easier (only need to kill one)
+ moved the sample ha.cf file to the Doc directory
* Sat Mar 27 1999 Alan Robertson <
[email protected]>
+ Version 0.2.0
+ Make an RPM out of it
+ Integrated IP address takeover gotten from Horms
+ Added support to tickle a watchdog timer whenever our heart beats
+ Integrated enough basic code to allow a 2-node demo to occur
+ Integrated patches from Andrew Hildebrand <
[email protected]> to allow it
to run under IRIX.
- Known Bugs
- Only supports 2-node clusters
- Only supports a single IP interface per node in the cluster
- Doesn't yet include Tom Vogt's ethernet heartbeat code
- No documentation
- Not very useful yet :-)
%prep
%setup
%build
make
%install
rm -rf $RPM_BUILD_ROOT
BUILD_ROOT=$RPM_BUILD_ROOT make install
pushd $RPM_BUILD_ROOT/etc/ha.d/resource.d
ln -s ../../../sbin/ldirectord .
popd
%files
%defattr(-,root,root)
%dir /etc/ha.d
/etc/ha.d/harc
/etc/ha.d/shellfuncs
/etc/ha.d/rc.d
/etc/ha.d/conf
/usr/lib/heartbeat
/etc/ha.d/resource.d
/etc/rc.d/init.d/heartbeat
/etc/logrotate.d/heartbeat
/var/run/heartbeat-fifo
%dir /var/run/ppp.d
/sbin/ldirectord
/etc/logrotate.d/ldirectord
/etc/rc.d/init.d/ldirectord
/usr/man/man8/ldirectord.8
%doc /usr/doc/heartbeat
%doc ldirectord/ldirectord.cf
%clean
rm -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_DIR/heartbeat-0.4.7bpre1
%post
#
# Hack to allow ppp-udp to be notified about PPP processes starting
#
Install_PPP_hack() {
file2hack=/etc/ppp/ip-up.local
echo "NOTE: Modifying $file2hack"
if
[ ! -f $file2hack ]
then
echo '#!/bin/bash' > $file2hack
chmod 755 $file2hack
fi
MARKER="Heartbeat"
ed -s $file2hack <<-!EOF 2>/dev/null
H
g/ $MARKER\$/d
\$a
# The following lines added for Linux-HA support # $MARKER
DEVFILE=\`echo \$DEVICE | sed -e 's!^/dev/!!' -e 's!/!.!g'\` # $MARKER
OUTFILE=/etc/ha.d/ppp.d/\$DEVFILE # $MARKER
( # $MARKER
echo "\$IPREMOTE" # $MARKER
echo "\$IFNAME" # $MARKER
echo "\$PPPD_PID" # $MARKER
echo "\$IPLOCAL" # $MARKER
) > \$OUTFILE # $MARKER