[ClusterLabs Developers] problem with master score limited to 1000000
Andrew Beekhof
andrew at beekhof.net
Wed May 20 23:42:19 UTC 2015
> On 20 May 2015, at 6:14 pm, Lars Ellenberg <Lars.Ellenberg at linbit.com> wrote:
>
> On Wed, May 20, 2015 at 09:27:41AM +1000, Andrew Beekhof wrote:
>>>> Well, we were looking for a solution with the current implementation of
>>>> Pacemaker anyway :)
>>>>
>>>> If it's not possible to gently tell to the CRM that it should call pre-promote
>>>> again, then breaking the transition roughly is fine enough for us.
>>>
>>> We tried to complete the whole election process in only one call of
>>> pre-promote. During the call of pre-promote, the node-to-be-promoted is in
>>> charge to connect to all other postgresql instances to check if there is a
>>> better candidate. If it found a better one, it changes the scores calling
>>> crm_master.
>>>
>>> It kinda worked, but not as fast as we hoped. This PoC showed that the
>>> transition was broken AFTER the first promotion, not after the pre-promote
>>> action were all collected.
>>
>> Sounds about right.
>> Thats why I wasn’t suggesting this as a foolproof approach - because you don’t get precise control over where processing stops.
>>
>>> Thus, slave1 being the lagging slave and slave2 the
>>> best candidate, we had:
>>>
>>> * slave1 promoted
>>> * slave1 demoted
>>> * slave 2 promoted
>>>
>>> This is actually a really bad scenario for us. We might still have the log
>>> files and transition files.
>>>
>>> Is it because the crm_master was called from the designated
>>> node-to-be-promoted ?
>>
>> Nope. Its because there is scope for lots of things to happen between the update being sent and noticed.
>> Its also possible that the transition is hard-wired to run action X if the action X_pre_notifys were invoked.
>>
>>>
>>> Is it possible to make sure the transition breakage happen as soon as the
>>> score change ?
>>
>> The only way to guarantee it is to allow notifications to fail.
>>
>
> Why not fail the promotion instead? I mean, do best effort to "help"
> pacemaker decide what you would like it to, but double check during
> promotion, and fail the promotion if you don't like it.
>
> Promotion failure is not a hard failure.
> But it will trigger a transition abort and pengine run.
You’ll get some additional recovery on the “failed” master though.
At lease a demote I’d imagine, possibly a restart.
>
> Ok, you don't get sub-second takeover to the "least lagging async replication slave".
>
> But if you need that, you need synchronous replication anyways.
> And if you have synchronous replication, you can tell pacemaker,
> and it will try to promote the synchronous instance first.
>
> --
> : Lars Ellenberg
> : http://www.LINBIT.com | Your Way to High Availability
> : DRBD, Linux-HA and Pacemaker support and consulting
>
> DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
>
> _______________________________________________
> Developers mailing list
> Developers at clusterlabs.org
> http://clusterlabs.org/mailman/listinfo/developers
More information about the Developers
mailing list