[ClusterLabs] Antw: Re: Set a node attribute for multiple nodes with one command
Ken Gaillot
kgaillot at redhat.com
Tue Nov 22 21:50:23 CET 2016
On 11/22/2016 04:39 AM, Kostiantyn Ponomarenko wrote:
> Using "shadow cib" in crmsh looks like a good idea, but it doesn't work
> with node attributes set into "status" section of Pacemaker config.
> I wonder it it is possible to make it work that way.
>
> Ken,
>>> start dampening timer
> Could you please elaborate more on this. I don't get how I can set this
> timer.
> Do I need to set this timer for each node?
Dampening is per attribute, so it applies to all nodes. You can set it
when you first create the attribute:
attrd_updater -n $NAME --update $VALUE --delay $SECONDS
With dampening (delay), the attribute daemon will wait that long between
writes to the CIB. The goal is to reduce I/O activity for frequently
changing attributes, but it could also be handy here.
The --delay will be ignored if the above command is run after the
attribute already exists. You can change it for an already existing
attribute with
attrd_updater -n $NAME --update-delay --delay $SECONDS
or
attrd_updater -n $NAME --update-both $VALUE --delay $SECONDS
It's intentionally more trouble to set it on an already-created
attribute, because repeatedly changing the delay will make it useless
(each delay change requires an immediate write). Having a separate
command makes it less likely to be accidental.
>
>
> Thank you,
> Kostia
>
> On Mon, Nov 21, 2016 at 9:30 AM, Ulrich Windl
> <Ulrich.Windl at rz.uni-regensburg.de
> <mailto:Ulrich.Windl at rz.uni-regensburg.de>> wrote:
>
> >>> Ken Gaillot <kgaillot at redhat.com <mailto:kgaillot at redhat.com>>
> schrieb am 18.11.2016 um 16:17 in Nachricht
> <d6f449da-64f8-12ad-00be-e772d8e382ca at redhat.com
> <mailto:d6f449da-64f8-12ad-00be-e772d8e382ca at redhat.com>>:
> > On 11/18/2016 08:55 AM, Kostiantyn Ponomarenko wrote:
> >> Hi folks,
> >>
> >> Is there a way to set a node attribute to the "status" section for few
> >> nodes at the same time?
> >>
> >> In my case there is a node attribute which allows some resources to
> >> start in the cluster if it is set.
> >> If I set this node attribute for say two nodes in a way - one and then
> >> another, than these resources are not distributed equally between these
> >> two nodes. That because Pacemaker picks the first node to with this
> >> attribute is set and immediately starts all allowed resources on it. And
> >> this is not the behavior i would like to get.
> >>
> >> Thank you,
> >> Kostia
> >
> > Not that I know of, but it would be a good feature to add to
> > attrd_updater and/or crm_attribute.
>
> With crm (shell) you don't have transactions for node attributes,
> but for the configuration. So if you add a location restriction
> preventing any resources on your nodes, then enable the nodes, and
> then delete the location restrictions in one transaction, you might
> get what you want. It's not elegant, but itt ill do.
>
> To the crm shell maintainer: Is is difficult to build transactions
> to node status changes? The problem I see is this: For configuration
> you always have transactions (requiring "commit), but for nodes you
> traditionally have non (effects are immediate). So you'd need a
> thing like "start transaction" which requires a "commit" or some
> kind of abort later.
>
> I also don't know whether a "shadow CIB" would help for the original
> problem.
>
> Ulrich
>
> >
> > You can probably hack it with a dampening value of a few seconds. If
> > your rule checks for a particular value of the attribute, set all the
> > nodes to a different value first, which will write that value and
> start
> > the dampening timer. Then set all the attributes to the desired value,
> > and they will get written out together when the timer expires.
More information about the Users
mailing list