[ClusterLabs] Determine a resource's current host in the CIB

Digimer lists at alteeve.ca
Thu Sep 24 11:30:42 EDT 2020


On 2020-09-24 5:00 a.m., Klaus Wenninger wrote:
> On 9/24/20 9:19 AM, Reid Wahl wrote:
>> **Directly via the CIB**, I don't see a more obvious way than looking
>> for the most recent (perhaps by last-rc-change) successful
>> (rc-code="0" or rc-code="8") monitor operation. That might be
>> error-prone. I haven't looked into exactly how crm_simulate parses
>> resource status from the CIB XML yet. Others on the list might know.
>>
>> Is there a particular reason why you need to parse the status directly
>> from the CIB, as opposed to using other tools? Does your use case
>> allow you to use crm_simulate with the cib.xml as input? (e.g.,
>> `crm_simulate --xml-file=<cibfile>`)
> You might as well parse output of crm_mon using --xml-file.
> 
> A quick look to the code shows that crm_resource - where we would
> have --locate -does have the --xml-file as well. But that seems
> not to do what I expected althoughI haven't looked into the details.

This is an interesting option... I can see that it shows me running
resources only (not what resources are configured but off). It does show
more directly "VM x is on node y";

  <resources>
    <resource id="srv07-el6" resource_agent="ocf::alteeve:server"
role="Started" active="true" orphaned="false" blocked="false"
managed="true" failed="false" failure_ignored="false" nodes_running_on="1">
      <node name="mk-a02n02" id="2" cached="true"/>
    </resource>
  </resources>

I'd like to avoid writing a new parser as I'll still need to read/parse
the CIB anyway to know about off resources, and I have to assume there
is a way to determine the same from the CIB itself. How to determine
what is running where has to be determinable...

digimer

>> On Wed, Sep 23, 2020 at 11:04 PM Digimer <lists at alteeve.ca> wrote:
>>> Hi all,
>>>
>>>   I'm trying to parse the CIB to determine which node a given resource
>>> (VM) is currently running on. I notice that the 'monitor' shows in both
>>> node's status element (from when it last ran when the node previously
>>> hosted the resource).
>>>
>>> https://pastebin.com/6RCMWdgq
>>>
>>> Specifically, I see under node 1 (the active host when the CIB was read):
>>>
>>> <lrm_rsc_op id="srv07-el6_monitor_60000"
>>> operation_key="srv07-el6_monitor_60000" operation="monitor"
>>> crm-debug-origin="do_update_resource" crm_feature_set="3.3.0"
>>> transition-key="23:85:0:829209fd-35f2-4626-a9cd-f8a50a62871e"
>>> transition-magic="0:0;23:85:0:829209fd-35f2-4626-a9cd-f8a50a62871e"
>>> exit-reason="" on_node="mk-a02n01" call-id="76" rc-code="0"
>>> op-status="0" interval="60000" last-rc-change="1600925201"
>>> exec-time="541" queue-time="0"
>>> op-digest="65d0f0c9227f2593835f5de6c9cb9d0e"/>
>>>
>>> And under node 2 (hosted the server in the past):
>>>
>>> <lrm_rsc_op id="srv07-el6_monitor_60000"
>>> operation_key="srv07-el6_monitor_60000" operation="monitor"
>>> crm-debug-origin="do_update_resource" crm_feature_set="3.3.0"
>>> transition-key="23:83:0:829209fd-35f2-4626-a9cd-f8a50a62871e"
>>> transition-magic="0:0;23:83:0:829209fd-35f2-4626-a9cd-f8a50a62871e"
>>> exit-reason="" on_node="mk-a02n02" call-id="61" rc-code="0"
>>> op-status="0" interval="60000" last-rc-change="1600925173"
>>> exec-time="539" queue-time="0"
>>> op-digest="65d0f0c9227f2593835f5de6c9cb9d0e"/>
>>>
>>> I don't see any specific entry in the CIB saying "resource X is
>>> currently hosted on node Y", so I assume I should infer which node is
>>> the current host? If so, should I look at which node's 'exec-time' is
>>> higher, or which node has the higher 'call-id'?
>>>
>>> Or am I missing a more obvious way to tell what resource is running on
>>> which node?
>>>
>>> --
>>> Digimer
>>> Papers and Projects: https://alteeve.com/w/
>>> "I am, somehow, less interested in the weight and convolutions of
>>> Einstein’s brain than in the near certainty that people of equal talent
>>> have lived and died in cotton fields and sweatshops." - Stephen Jay Gould
>>> _______________________________________________
>>> Manage your subscription:
>>> https://lists.clusterlabs.org/mailman/listinfo/users
>>>
>>> ClusterLabs home: https://www.clusterlabs.org/
>>
>>
> 


-- 
Digimer
Papers and Projects: https://alteeve.com/w/
"I am, somehow, less interested in the weight and convolutions of
Einstein’s brain than in the near certainty that people of equal talent
have lived and died in cotton fields and sweatshops." - Stephen Jay Gould


More information about the Users mailing list