Table of Contents

Super quick steps to set up a Pacemaker cluster to Centos 6

This is a quickie to show you how to start do Pacemaker ensured high available Apache with a service IP and KVM virtual host fencing.

Install software

Install these to every node and virtual host as well

yum install fence-virt fence-virtd ence-virtd-multicast fence-virtd-libvirt

Install these to pacemaker nodes / guests

yum install pacemaker cman pcs ccs resource-agents

Prepare virtual machine fencing

Configure at virtual host, use virbr0, /etc/cluster/fence_xvm.key

fence_virtd -c

Make key

dd if=/dev/random bs=512 count=1 of=/etc/cluster/fence_xvm.key

Configuration should be like this

backends {
 	libvirt {
 		uri = "qemu:///system";
 	}
 }
 listeners {
 	multicast {
 		key_file = "/etc/cluster/fence_xvm.key";
 		interface = "virbr0";
 		port = "1229";
 		address = "225.0.0.12";
 		family = "ipv4";
 	}
 }
 fence_virtd {
 	backend = "libvirt";
 	listener = "multicast";
 	module_path = "/usr/lib64/fence-virt";
 }

Start fencing daemon, insert to your rc.local to get it up after boot

fence_virtd

Test it, you should see your virtual guests

fence_xvm -o list

Copy the /etc/cluster/fence_xvm.key to all guests

Test in GUESTS. if timeouts check if you are using other interface at the virtual host, br0 etc

fence_xvm -o listen

Configure the fencing to your pacemaker cluster later with command

crm configure primitive st-virt stonith:fence_xvm

configure your pacemaker

Do this in one node and copy the /etc/cluster to all nodes

ccs -f /etc/cluster/cluster.conf --addfencedev pcmk agent=fence_pcmk 
ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect host1
ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect host2
ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk host1 pcmk-redirect port=host1
ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk host2 pcmk-redirect port=host2

Do this in every node

cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf
echo "CMAN_QUORUM_TIMEOUT=0">> /etc/sysconfig/cman

Fire it up

chkconfig cman on
chkconfig pacemaker on
service cman start
service pacemaker start
pcs status
pcs config

Start putting the thing to work

Set basic properties

pcs property set stonith-enabled=true
pcs property set no-quorum-policy=ignore
pcs resource defaults migration-threshold=1

Set up Apache with HA IP

Be sure that your Apache provides http://localhost/server-status

pcs resource create WebSite ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=1min
pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=1.2.3.4 nic="eth0" cidr_netmask=27 op monitor interval=30s
pcs constraint colocation add WebSite ClusterIP INFINITY
pcs constraint location WebSite prefers host1=50

Finally put the nodes to shoot each other when they've get a problem

crm configure primitive st-virt stonith:fence_xvm