[ClusterLabs] Antw: Re: Set a node attribute for multiple nodes with one command

Kostiantyn Ponomarenko konstantin.ponomarenko at gmail.com
Thu Nov 24 11:24:10 UTC 2016


Attribute dampening doesn't work for me also.
To test that I have a script:

    attrd_updater -N node-0 -n my-attr --update false --delay 20
    sleep 3
    attrd_updater -N node-0 -n my-attr --update true
    sleep 7
    attrd_updater -N node-1 -n my-attr --update true

All my resources have this rule in Pacemaker config:

    crm configure location res1-location-rule res1 \
        rule 0: my-attr eq true \
        rule -inf: my-attr ne true

On a working two-node cluster I remove "my-attr" from both nodes.
Then run my script. And all resources start on node-0.
Am I doing something wrong?
Or maybe my understanding of an attribute dampening is not correct?

My Pacemaker version is 1.1.13. (heh, not the last one, but it is what it
is ...)

Thank you,
Kostia

On Wed, Nov 23, 2016 at 7:27 PM, Kostiantyn Ponomarenko <
konstantin.ponomarenko at gmail.com> wrote:

> Maybe I am doing something wrong, but I cannot set "status" section node
> attributes to a shadow cib, cluster applies them immediately.
> To try it out I do in a console:
>
>     crm_shadow --create test
>     crm_attribute --type nodes --node node-0 --name my-attribute --update
> 1 --lifetime=reboot
>
> And this attribute is set to the live cluster configuration immediately.
> What am I doing wrong?
>
> Thank you,
> Kostia
>
> On Tue, Nov 22, 2016 at 11:33 PM, Kostiantyn Ponomarenko <
> konstantin.ponomarenko at gmail.com> wrote:
>
>> Ken,
>> Thank you for the explanation.
>> I will try this low-level way of shadow cib creation tomorrow.
>> PS: I will sleep much better with this excellent news/idea. =)
>>
>> Thank you,
>> Kostia
>>
>> On Tue, Nov 22, 2016 at 10:53 PM, Ken Gaillot <kgaillot at redhat.com>
>> wrote:
>>
>>> 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.
>>>
>>> Forgot to mention -- the shadow CIB is probably the best way to do this.
>>> I don't know if there's a way to do it in crmsh, but you can use it with
>>> the low-level commands crm_shadow and crm_attribute --lifetime=reboot.
>>>
>>> > 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?
>>> >
>>> >
>>> > 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.
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clusterlabs.org/pipermail/users/attachments/20161124/89b18136/attachment-0002.html>


More information about the Users mailing list