[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