One of the leading open-source products for HA is called "Heartbeat" (http://www.linux-ha.org/wiki/Heartbeat).
Heartbeat offers great (and free!) way to achieve HA on a Linux machine.
While configuring Heartbeat may not be the easiest thing , it's surely worth the effort, especially when we talking about some fancy production machine which requires HA.
In this article I will demonstrate how to configure Heartbeat and achieve full HA, read on.
For my test I have used 2 virtual stations (both installed CentOS v5.5 x64) - node1 & node2.
Pay attention that every step needs to be done on both hosts.
Also pay attention that your firewall is configured properly (port 694 udp needs to be allowed).
Step 1:
The first thing you want to do is to edit your /etc/hosts, in my case it looks like this:
192.168.0.133 node1
192.168.0.134 node1-e1
192.168.0.139 node2
192.168.0.140 node2-e1When node1-e1 & node2-e2 are virtual interfaces on both of the machines (more explanation ahead).
Step 2:
Configure virtual interfaces on both of the nodes:
root@node1# ifconfig eth0:1 192.168.0.134 netmask 255.255.255.0
root@node2# ifconfig eth0:1 192.168.0.140 netmask 255.255.255.0
Step 3:
Install heartbeat on both of the nodes:
# yum install heartbeat
Step 4:
Edit "authkeys" file (/etc/ha.d/authkeys) to include:
auth 1
1 crc
1 crc
Step 5:
Edit "haresources" file (/etc/ha.d/haresources) to include:
node1 IPaddr2::192.168.0.133/24/eth0: 2
node2 IPaddr2::192.168.0.139/24/eth0:1
node2 IPaddr2::192.168.0.139/24/eth0:1
Step 6:
Edit "ha.cf" file (/etc/ha.d/ha.cf)to include:
logfile /var/log/ha-log
debugfile /var/log/ha-debug
logfacility local0
udpport 694
ucast eth0 192.168.0.133
ucast eth0 192.168.0.134
ucast eth0 192.168.0.139
ucast eth0 192.168.0.140
ping node1-e1 node2-e1
node node1 node2
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
auto_failback on
keepalive 2
deadtime 10
warntime 3
deadping 10
realtime on
initdead 50
debug 1
debugfile /var/log/ha-debug
logfacility local0
udpport 694
ucast eth0 192.168.0.133
ucast eth0 192.168.0.134
ucast eth0 192.168.0.139
ucast eth0 192.168.0.140
ping node1-e1 node2-e1
node node1 node2
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
auto_failback on
keepalive 2
deadtime 10
warntime 3
deadping 10
realtime on
initdead 50
debug 1
Step 7:
Restart Heartbeat:
# /etc/init.d/heartbeat restart
That's should be it, now let's test the HA.
I'm pinging node1 from 3rd (Windows) machine, then rebooting it, pay attention that after short time node2 takes over and I'm getting response:
No comments:
Post a Comment