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
#!/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
我假设您对简单的主动-被动设置感兴趣。
ucarp 和 heartbeat 在这种设置中做的事情几乎相同。本质上 - 当机器被选为主/热备用时,它们运行提供的脚本。
heartbeat 可能看起来要复杂得多[因为它可以帮助您自动挂载 drdb,重新启动多个服务等],但最后 - 您可以编写所有这些脚本并让 ucarp 调用它]。
就个人而言 - 我用单一资源运行心跳 - 这是执行以下操作的脚本:
我非常简单的设置 [debian lenny 下的 heartbeat 2.1.3-6]:我有两台服务器:
'floating ip' - 分配给活动节点的 10.0.1.1/24 分配给 eth1
在这种情况下,获得高可用性的服务是 apache。我分别同步从 ser0 到 ser0b 的 apache 配置和内容。
以下文件在两台机器上都是相同的,但有一个明显的例外:
/etc/ha.d/authkeys:
/etc/ha.d/haresources
/etc/ha.d/ha.cf
/etc/init.d/ha.cf [它也可以在 /etc/ha.d/resources.d/ha.cf ]