HEARTBEAT
CONFIGURATION on LINUX
Below are the following steps which
should be followed to setup HA-Cluster on two machine.
PREPARING THE SERVERS:-
We need to make sure that ntpd is configured
and always running to keep both servers time synchronized.
#
chkconfig ntpd on
HOSTNAME RESOLVE
Now let’s suppose we have created two
servers :-
Host name ipaddress
Server1 test1 10.2.1.231
Server2 test2 10.2.1.232
Now we need to make sure that these
two servers ping each also other with their hostname and for this we have to
open
#nano
/etc/hosts
And write these two lines in the file
10.2.1.231
test1
10.2.1.232
test2
Next try to ping both the servers
from each other if they are able to ping then its fine otherwise you need to
recheck the “/etc/hosts” file for your hostname.
Create the following file on both
servers with the exact same content:
# nano
/etc/ha.d/ha.cf
###################################################
logfile
/var/log/ha-log
logfacility
local0
keepalive
2
deadtime
30
initdead
120
bcast
Auto_eth0
udpport
694
auto_failback
on
node
test1
node
test2
###################################################
Note: Here
in the above file we are broadcasting the service from Auto_eth0 “bcast
Auto_eth0 “ . This will work when we have a single pair of machine that are
running Heartbeat for High Availability, but it creates problems and gives
error when there are multiple pairs of Heartbeat running on the same subnet. To have multiple
error-less heartbeat running on the same
subnet we need to do multicast instead of broadcast, so the “ha.cf”
should look like this
# nano
/etc/ha.d/ha.cf
###################################################
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
### here we are using mcast assigning
the dev and class D multicast ip udp-port and ttl
mcast eth0 224.1.2.3 694 1 0
auto_failback on
node ldap1
node ldap2
###################################################
Note: The multicast ip should be same
for a pair of systems and each pair in the environment should have their unique
mcast ip so that they only synchronize by themselves and do not disturb other
pairs.
The next step is to create the
resource file for heartbeat on both servers with exact same content again:
# nano
/etc/ha.d/haresources
test1
IPaddr::10.2.1.230/24/Auto_eth0
first word is the hostname of the
primary server then the IP 10.2.1.230 is the one I choose to be the virtual IP
to be moved to the slave in case of a failure.
The last thing is to create the
authentication file on both servers again with the same content:
# nano
/etc/ha.d/authkeys
###################################################
auth 2
2 sha1
my-password
###################################################
This password file should only be
readable by the root user:
# chmod
600 /etc/ha.d/authkeys
Ok now we should be ready to go…
Let’s test it!!
On both servers start heartbeat
service:
# service
heartbeat start
Then check on server1
#
ifconfig
*********************************************************
Auto_eth0 Link encap:Ethernet HWaddr 08:00:27:95:AB:B1
inet addr:10.2.1.230 Bcast:10.2.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe95:abb1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2189638 errors:0 dropped:0 overruns:0 frame:0
TX packets:30442386 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:188528923 (179.7 MiB) TX bytes:45853044392 (42.7 GiB)
Auto_eth0:0 Link encap:Ethernet HWaddr 08:00:27:95:AB:B1
inet addr:10.2.1.200 Bcast:10.2.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:305 errors:0 dropped:0 overruns:0 frame:0
TX packets:305 errors:0 dropped:0 overruns:0 carrier:0
*********************************************************
You can see
that a new interface named Auto_eth0:0 can be seen which contained the virtual
ip and as server 1 is the primary one it will be only on server 1 till the
server is working or heartbeat is active. The ip will by self move to server2
in case when server 1 is inactive/crashed/heartbeat is stopped
Testing fail
over
You can shut
down server1 or simply stop heartbeat service:
On server1:
# service
heartbeat stop
On server2:
#
ifconfig
*********************************************************
Auto_eth0 Link encap:Ethernet HWaddr 08:00:27:8F:3B:50
inet addr:10.2.1.232 Bcast:10.2.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe8f:3b50/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30447253 errors:0 dropped:0 overruns:0 frame:0
TX packets:2138369 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:45799991579 (42.6 GiB) TX bytes:173195698 (165.1 MiB)
Auto_eth0:0 Link encap:Ethernet HWaddr 08:00:27:8F:3B:50
inet addr:10.2.1.200 Bcast:10.0.4.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:208 errors:0 dropped:0 overruns:0 frame:0
TX packets:208 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
*********************************************************
Till this
point if your machine responds in the same manner, congratulations you have now
installed and configured DRBD with Heartbeat.
If you get
any error refer to “/var/log/messages”.
Or be free
to comment if any problem occurs.
Also I have
tested that the heartbeat do not work good on OpenBSD as of security reason’s
OpenBSD stores the mac address and when it system changes the virtual ip, the OpenBSD
starts taking it as a threat and stops interacting with it.
However I am
still trying so any comment is “WELCOME”
And the most
important thing “Please try this at home” J
--
Ashish
No comments:
Post a Comment