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?