[DRBD-user] "adjust_master_score" attribute is ignored for pacemaker drbd resource

Lars Ellenberg lars.ellenberg at linbit.com
Sat Jan 31 23:41:18 CET 2015

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.

On Fri, Jan 30, 2015 at 01:46:19PM -0600, Joel Burleson-Davis wrote:
> That ended up being really helpful. Again, thanks so much for your response
> Lars.
> I realize I had a misprint in my notes as well since I'm going in between
> two setups. In order to keep the drbd resource from trying to promote
> itself, the only_consistent value was set to a negative number
> adjust_master_score="-10 10 1000 10000". when this is set to "0 10 1000
> 10000" the resource still tries to promote itself. The debug log was super
> helpful with this:
> debug log with the Modified RA
> + drbd_update_master_score
> + set -- -10 10 1000 10000
> + local only_consistent=-10 only_remote=10 local_ok=1000
> as_good_as_it_gets=10000
> With unmodified RA but adjust_master_score set on the pacemaker resource
> get's the error
> echo 'drbd(drbd)[32049]:   2015/01/30_12:55:46' 'ERROR: BAD
> adjust_master_score value -10 ; falling back to default'
> + drbd_update_master_score
> + set -- 5 10 1000 10000
> + local only_consistent=5 only_remote=10 local_ok=1000
> as_good_as_it_gets=10000
>  echo 'drbd(sl_drbd)[32049]:   2015/01/30_12:55:46' 'ERROR: BAD
> adjust_master_score value -10 ; falling back to default'
> With the negative value in the RA, the resource never attempts to promote
> itself:
> With the the adjust_master_score="0 10 1000 10000" (which doesn;t spit the
> error about a bad value) the only consistent resource still attempts to
> promote itself, giving the error:

You likely need to upgrade your pacemaker.
Which version of Pacemaker are you working with?

Pacemaker is supposed to only attempt to promote,
if there is a strictly positive master score attribute.

Anything else would be a bug in pacemaker.
whether implementation or documentation bug is up to Beekhof to decide.
Or maybe I misunderstood the intended logic how "master score" attributes
influence placement score calculations.

You should find the full cib.xml of those transitions archived below
/var/lib/ somewhere.
You could feed them into crm_simulate and figure out why pacemaker
decided to try promotion even with a master_score of 0.

There have been pacemaker bugs in the past where a negative master score
would cause bad side effects (potentially even preventing any "slave"
role, iirc). Or causing a "stop", which would *remove* the master score,
which would then allow a start again, ... cycling infinitely. Something
like that.

Or (in the "distant" past) where a target-role=Master would cause
pacemaker to attempt to promote all instances, ignoring master-max
and other things.

> drbd_promote_0 on node2 'unknown error' (1): call=59, status=complete,
> last-rc-change='Fri Jan 30 13:04:20 2015', queued=0ms, exec=15496ms
> and the debug shows:
> + drbd_update_master_score
> + set -- 0 10 1000 10000
> + local only_consistent=0 only_remote=10 local_ok=1000
> as_good_as_it_gets=10000
> node2 has a resource score of 0 for the drbd resource.
> So it seems the issue is the adjust_master_score attribute won't accept a
> negative number, however, if the RA is altered to have
> adjust_master_score_default in the RA contains a negative number, there is
> no issue.
> Is there a reason the resource agent doesn't want a negative value in
> adjust_master_score? I would have assumed it would have taken any
> legitimate resource score according to pacemaker.

See above.

: 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.
please don't Cc me, but send to list   --   I'm subscribed

More information about the drbd-user mailing list