Skip to content

Configuring a failover cluster with heartbeat + pacemaker

I am going to show of how you configure heartbeat with pacemaker Active / Passive Cluster in easy word if one server goes offline second one kicks right back up. We are using Apache2 to monitor and using Ubuntu 12.04…

Sohaib Khan4 min read
Configuring a failover cluster with heartbeat + pacemaker — editorial illustration

I am going to show of how you configure heartbeat with pacemaker Active / Passive Cluster in easy word if one server goes offline second one kicks right back up. We are using Apache2 to monitor and using Ubuntu 12.04 precise edition Our Configuration :- ns1 192.168.1.11 ns2 192.168.1.12 Virtual IP 192.168.1.45  ( this is our virtual IP and this is where we will point our A record in DNS ) Configuring heartbeat 1.- Edit /etc/hosts:

192.168.1.11 ns1192.168.1.12 ns2

2.- Install heartbeat and pacemaker:

apt-get install heartbeat pacemaker

3.- Edit /etc/ha.d/ha.cf : Please note ha.cf file in second node must have IP of your first node so .3 IP must change. debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30 warntime 10 initdead 120 udpport 694 ucast eth0 192.168.1.4 node ns1 ns2 ping 192.168.1.1 crm respawn On Second Node debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30 warntime 10 initdead 120 udpport 694 ucast eth0 192.168.1.3 node ns1 ns2 ping 192.168.1.1 crm respawn 4.- Edit /etc/ha.d/authkeys: auth 1 1 crc #2 sha1 HI! #3 md5 Hello! 5.- Set correct file permissions to autkeys:

chmod 600 authkeys

6.- restart heartbeat:

service heartbeat restart

Configuration of pacemaker 1.- Verify the status of cluster: crm status root@ns1:/etc/ha.d# crm status ============ Last updated: Wed Jun 26 07:34:16 2013 Last change: Wed Jun 26 07:33:58 2013 via crmd on ns2 Stack: Heartbeat Current DC: ns2 (784f096b-d035-4ef3-9b28-4d258ae52f2f) - partition with quorum Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c 2 Nodes configured, unknown expected votes 0 Resources configured. ============ Online: [ ns1 ns2 ] Once you have above status - its a green light to run the following commands  crm configure property stonith-enabled=false crm configure property expected-quorum-votes="2" crm configure property no-quorum-policy=ignore crm configure rsc_defaults resource-stickiness=100 I will explain what each commands are :- 2.- Disable stonith:

crm configure property stonith-enabled=false

3.- Number of nodes for the quorum:

crm configure property expected-quorum-votes="2"

4.- To have quorum, more than half of the total number of cluster nodes need to be online (number of nodes / 2)+1. Is not the case when a node failure occurs in a 2-node cluster. If you want to allow the remaining node to provide all the cluster services, you need to set the no-quorum-policy to ignore:

crm configure property no-quorum-policy=ignore

5.- To prevent failback of a resource:

crm configure rsc_defaults resource-stickiness=100

6.- List of scripts for the class ocf:

crm ra list ocf

7.- Information for a script:

crm ra info ocf:IPaddr2

8.- Add an VIP to our cluster:

crm configure primitive havip1 ocf:IPaddr2 params ip=192.168.1.45 cidr_netmask=32 nic=eth1 op monitor interval=30s

9.- Check status and see that the resource havip1 is started in the first node crm status Adding a daemon to our cluster 1.- See the script details:

crm ra info ocf:anything

2.- Adding apache daemon to our cluster:

crm configure primitive apacheha lsb::apache2 op monitor interval=15s

3.- Setting up the resource VIP and apache are in the same node:

crm configure colocation apacheha-havip1 INFINITY: havip1 apacheha

4.- See the status of our cluster: crm status havip1 (ocf::heartbeat:IPaddr2): Started ns2 apacheha (lsb:apache2): Started penguin-ha2 Configuring the order of boot of the services

crm configure order ip-apache mandatory: havip1 apacheha

Migrate a resource to another node havip1 (ocf::heartbeat:IPaddr2): Started ns1 apacheha (lsb:apache2): Started ns2 See cluster configuration: crm configure show

Was this worth your time?

Continue reading

Full archive