Sent: Wed Jan 12 2011 09:25:39 GMT-0700 (Mountain Standard Time)
From: Patrick H. <pacema...@feystorm.net>
To: pacemaker@oss.clusterlabs.org
Subject: Re: [Pacemaker] Speed up resource failover?
Sent: Wed Jan 12 2011 01:56:31 GMT-0700 (Mountain Standard Time)
From: Lars Ellenberg <lars.ellenb...@linbit.com>
To: pacemaker@oss.clusterlabs.org
Subject: Re: [Pacemaker] Speed up resource failover?
On Wed, Jan 12, 2011 at 09:30:41AM +0100, Robert van Leeuwen wrote:
-----Original message-----
To: pacemaker@oss.clusterlabs.org;
From: Patrick H. <pacema...@feystorm.net>
Sent: Wed 12-01-2011 00:06
Subject: [Pacemaker] Speed up resource failover?
Attachment: inline.txt
As it is right now, pacemaker seems to take a long time (in computer terms) to
fail over resources from one node to the other. Right now, I have 477 IPaddr2
resources evenly distributed among 2 nodes. When I put one node in standby, it
takes approximately 5 minutes to move the half of those from one node to the
other. And before you ask, theyre because of SSL http virtual hosting. I have
no order rules, colocations or anything on those resources, so it should be
able migrate the entire list simultaneously, but it seems to do them
sequentially. Is there any way to make it migrate the resources in parallel? Or
at the very least speed it up?
Patrick,
It's probably not so much the cluster suite but is has to do with the specific resource script.
For a proper takeover of a IP you have to do an arp "deregister/register".
This will take a few seconds.
This is apparently not true :-/
I have attached a portion of the lrmd log showing an example of this.
Notice that the very first line it starts the vip_55.63 resource, and
then immediately on the next line it exits successfully.
Another point of note is that somehow after the script already exited,
lrmd logs the stderr output from it. I'm not sure if its just delayed
logging or what. However, even if the script is still running, notice
that there is a huge time gap between 16:11:01 and 16:11:25 where its
just sitting there doing nothing.
I even did a series of `ps` commands to watch for the processes, and
it starts up a bunch of them, and then they all exit, and it sits
there for a long period before starting up more. So it is definitely
not the resource script slowing it down.
Also, in the log, notice that its only starting up a few scripts every
second. It should be able to fire off every single script at the exact
same time.
As long as a resource script is busy the cluster suite will not start the next
action.
Parallel execution is not possible in the cluster suite as far as I know.
(without being a programmer myself I would expect it is pretty tricky to implement
parallelization "code-wise" and making 100% sure the cluster does not break)
You could consider to edit the IPaddr2 resource script so it does not wait for
the arp commands.
At you're own risk of course ;-)
There is the cluster option "batch-limit" (in the cib), see
"configuration explained".
and there is lrmd "max-children" (can be set in some /etc/defaults/ or
/etc/sysconfig file, should be set by the init script).
you can set it manually with lrmadmin -p max-children $some_number
That should help you a bit.
But don't overdo. Raise them slowly ;-)
batch-limit it says defaults to 30 which seems like a sane value. I
tried playing with the max-children and upped it to 30 as well, but to
no effect. It does seem to be launching 30 instances of the IPaddr2
script at a time (as can be seen from the attached log), but the
problem is apparently that its sitting there for long periods of time
before starting up the next batch. I would think that when one of the
30 completes, it would launch another to take its place. But instead
it launches 30, then sits there for a while, then launches another 30.
Oh, and its not waiting for the resource to stop on the other node
before it starts it up either.
Here's the lrmd log for resource vip_55.63 from the 'ha02' node (the
node I put into standby)
Jan 12 16:10:24 ha02 lrmd: [5180]: info: rsc:vip_55.63:1444: stop
Jan 12 16:10:24 ha02 lrmd: [5180]: info: Managed vip_55.63:stop process
19063 exited with return code 0.
And here's the lrmd log for the same resource on 'ha01'
Jan 12 16:10:50 ha01 lrmd: [4707]: info: rsc:vip_55.63:1390: start
Jan 12 16:10:50 ha01 lrmd: [4707]: info: Managed vip_55.63:start process
8826 exited with return code 0.
Notice that it stopped it a full 36 seconds before it tried to start it
on the other node. The times on both boxes are in sync, so its not that
either.
_______________________________________________
Pacemaker mailing list: Pacemaker@oss.clusterlabs.org
http://oss.clusterlabs.org/mailman/listinfo/pacemaker
Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker