[Pacemaker] Failover with multiple services on one node

Martin Aspeli optilude+lists at gmail.com
Mon Mar 8 05:34:01 UTC 2010


Hi,

This question was sort of implied in my thread last week, but I'm going 
to re-ask it properly, to reduce my own confusion if nothing else.

We have two servers, master and slave. In the cluster, we have:

  - A shared IP address (192.168.245.10)
  - HAProxy (active on master, may fail over to slave)
  - Postgres (active on master, may fail over to slave)
  - memcached (active on master, may fail over to slave)
  - DRBD and OCFS2
  - Zope (8 instances on each server, all active)

HAProxy, memcached and Postgres are all standard clustered resources. By 
default, they'll be active on master, but may fail over to slave.

Zope is the exception. Here, we have 8 processes on each machine, all of 
which are "active", i.e. part of the load balancing performed by 
HAProxy. They may go up or down, but HAProxy will handle that without 
too much problem. They're not managed by the cluster (at least that's 
the plan).

Each Zope instance is configured with a database connection string for 
Postgres (e.g. postgres://192.168.245.10:5432) and a similar connection 
string for memcached (e.g. 192.168.245.10:11211).

My question is this: Do we need to group all the clustered resources 
(the IP address, HAProxy, Postgres, memcached) so that if any one of 
them fails, they all fail over to slave?

If we don't do this, how can we manage the connection strings in Zope? 
Since Zope needs a domain name or IP address as part of the connection 
string, it'd be no good if, e.g. memcached failed over to slave, but the 
IP address stayed with master, because Zope would still be looking for 
it on master.

What is the normal way to handle this? Do people have one floating IP 
address per service? Use groups to consider all those services together 
at all times? Use some kind of hosts file trickery? Rely on the 
application to handle e.g. a primary and a fallback connection string 
(which may be tricky).

Martin





More information about the Pacemaker mailing list