[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