few configuration files i use on highly-available active-standby clusters running under debian.
my very simplistic heartbeat setup [ under debian ] consists of two servers:
- ser0 [preferred active node] with permanently assigned 10.0.0.2/24 at eth0
- ser0b [hot-standby node waiting to replace master] with permanently assigned 10.0.0.3/24 at eth0
‘floating ip’ – assigned to the active node is 10.0.1.1/24 assigned to eth1
in this case service that gets high availability is apache. i separately sync apache’s configs and content that is served from ser0 to ser0b.
files below are identical on both machines with one marked exception:
/etc/ha.d/authkeys:
auth 1 1 md5 somethingrandom
/etc/ha.d/haresources
ser0 ha.sh
/etc/ha.d/ha.cf
keepalive 2 deadtime 10 udpport 694 ; below - address permanently assigned to the peer node . this is for master: ucast eth1 10.0.0.3 ; and on slave i have ; ucast eth1 10.0.0.2 udp eth0 logfacility local0 auto_failback on node ser0 node ser0b
/etc/init.d/ha.cf
#!/bin/bash case "$1" in start) ip link set dev eth1 up # bind 'floating' ip to the interface ip a a 10.0.1.1/24 dev eth1 # you might want to add some route-changes here if needed /usr/lib/heartbeat/send_arp -r 10 eth1 10.0.0.1 auto 10.0.0.255 255.255.255.0 # to make sure apache reloads it's config when machine becomes master /etc/init.d/apache2 restart ;; stop) # we are no longer active, un-bind 'floating' ip from the interface ip a d 10.0.1.1/24 dev eth1 # you could stop it as well or just skip this step /etc/init.d/apache2 restart ;; esac exit 0