I've spent more hours than I'd like to admit trying to express the following
scenario--

I have two servers, each with an installation of MySQL. The two MySQL's do
master-master replication between eachother.

I bind each of the two MySQL's to their own floating IP address, and clients are
configured to either use one or the other (ClusterIP is not an option because
clients need to use the server that is closer to them when possible).

Should MySQL on the left machine (for example) fail, the left floating IP is
moved over to the right machine, and that now runs both floating IPs. The left
MySQL resource should obviously *NOT* migrate over.

As soon as MySQL on the left (for example) machine comes back up, the left
floating IP needs to move off of the right machine back to the left machine.

Effectively, by shuffling IPs around like this, I'd like to end up with clients
(almost) transparently failing over to another machine, and failing back as soon
as possible.

Here's an abridged, annotated version of my attempted CRM configuration...

-------------------------------------------------

###### 10.0.0.1
node Left

###### 10.0.0.3
node Right

###### A MySQL installation on node Left
primitive MySqlLeft ocf:heartbeat:mysql \
        meta target-role="Started"

#### The IP address for applications which prefer MySqlLeft
primitive MySqlLeftIP ocf:heartbeat:IPaddr2 \
        params ip="10.0.0.2" meta target-role="Started"

#### Require that MySqlLeft be run on Left, or not run at all
location PlaceMySqlLeftOnLeft MySqlLeft inf: Left

#### A MySQL installation on node Right
primitive MySqlRight ocf:heartbeat:mysql \
        meta target-role="Started"

#### The IP address for applications which prefer MySqlRight
primitive MySqlRightIP ocf:heartbeat:IPaddr2 \
        params ip="10.0.0.4" meta target-role="Started"

#### Require that MySqlRight be run on Right, or not run at all
location PlaceMySqlRightOnRight MySqlRight inf: Right

#### Start MySqlLeft, then start MySqlLeftIP, and don't stop MySqlLeftIP when
#### MySqlLeft stops
order LeftIPAfterMySqlLeft 0: MySqlLeft:start MySqlLeftIP:start

#### Start MySqlRight, then start MySqlRightIP, and don't stop MySqlRightIP when
#### MySqlRight stops
order RightIPAfterMySqlRight 0: MySqlRight:start MySqlRightIP:start

#### I haven't been able to make many combinations of the following work... ####

#### Negative colocation... "the [left/right] IP should not be placed
#### where the [left/right] MySQL instance is stopped"
colocation LeftIPNotWhereLeftStopped -inf: \
        MySqlLeftIP:Started MySqlLeft:Stopped
colocation RightIPNotWhereRightStopped -inf: \
        MySqlRightIP:Started MySqlRight:Stopped

#### "opt-in" resource location... seems necessary to prevent MySqlLeft from
#### running on Right and vice versa.
property symmetric-cluster="false"


_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to