[Pacemaker] Location issue: how to force only one specific location, and only as "Slave"

Lars Ellenberg lars.ellenberg at linbit.com
Wed Jul 6 00:22:38 CET 2011


On Tue, Jul 05, 2011 at 11:40:04AM +1000, Andrew Beekhof wrote:
> On Mon, Jul 4, 2011 at 11:42 PM, ruslan usifov <ruslan.usifov at gmail.com> wrote:
> >
> >
> > 2011/6/27 Andrew Beekhof <andrew at beekhof.net>
> >>
> >> On Tue, Jun 21, 2011 at 10:22 PM, ruslan usifov <ruslan.usifov at gmail.com>
> >> wrote:
> >> > No, i mean that in this constaint:
> >> >
> >> > location ms_drbd_web-U_slave_on_drbd3 ms_drbd_web-U \
> >> >         rule role="slave" -inf: #uname ne drbd3
> >> >
> >> > pacemaker will try to start slave part of resource (if drbd3 is down) on
> >> > other nodes, but it doesn't must do that.
> >>
> >> The only way to express this is to have:
> >> - a fake resource that can only run on drbd3, and
> >> - an ordering constraint tells ms_drbd_web-U to start only after the
> >> fake resource is active
> >>
> >
> > In future releases does this change?
> 
> Its a planned but unimplemented feature.

(please do not use "drbdXYZ" as host name!  imagine to explain what you
mean by drbd7 on drbd3 to someone else ...)

If I understand correctly, you want to
 * restrict the resource to run only on one specific host
 * prevent it from becoming primary, ever

Then why not (I assume hostname X now):

# disallow anywhere but X
location l_ms_drbd_only_on_X ms_drbd \
	 rule -inf: #uname ne X

# but even on X, don't become Primary.
location l_ms_drbd_no_primary_on_X ms_drbd \
         rule $role="Master" -inf: #uname eq X

If you want pacemaker to really always do exactly "that",
then it seems to be most effective to not try to force "that",
but to forbid "everything else" ;-)

-- 
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.



More information about the Pacemaker mailing list