[Pacemaker] Unable to add ping resource to pacemaker 1.0.12

Jake Smith jsmith at argotec.com
Wed Oct 17 10:36:51 EDT 2012


----- Original Message ----- 

> From: "Richard \"Alan\" McAlexander" <alanmac1982 at gmail.com>
> To: "The Pacemaker cluster resource manager"
> <pacemaker at oss.clusterlabs.org>
> Sent: Tuesday, October 16, 2012 7:23:37 PM
> Subject: Re: [Pacemaker] Unable to add ping resource to pacemaker
> 1.0.12

> Hi Jake,
> Below is my config. Thank you!

> <meta_attributes id="group_its-meta_attributes"/>
> <primitive id="res_ping_1" class="ocf" provider="pacemaker"
> type="ping">
> <instance_attributes id="res_ping_1-instance_attributes">
> <nvpair id="nvpair-res_ping_1-multiplier" name="multiplier"
> value="1000"/>
> <nvpair id="nvpair-res_ping_1-host_list" name="host_list"
> value="10.254.138.1"/>
> </instance_attributes>
> <operations id="res_ping_1-operations">
> <op interval="0" id="op-res_ping_1-start" name="start" timeout="60"/>
> <op interval="0" id="op-res_ping_1-stop" name="stop" timeout="20"/>
> <op id="op-res_ping_1-monitor" name="monitor" interval="10"
> timeout="60" start-delay="0"/>
> <op interval="0" id="op-res_ping_1-reload" name="reload"
> timeout="80"/>
> </operations>
> <meta_attributes id="res_ping_1-meta_attributes">
> <nvpair id="res_ping_1-meta_attributes-target-role"
> name="target-role" value="started"/>
> <nvpair id="res_ping_1-meta_attributes-migration-threshold"
> name="migration-threshold" value="3"/>
> <nvpair id="res_ping_1-meta_attributes-allow-migrate"
> name="allow-migrate" value="true"/>
> <nvpair id="res_ping_1-meta_attributes-resource-stickiness"
> name="resource-stickiness" value="-INFINITY"/>
> </meta_attributes>
> </primitive>

> <rsc_location id="loc_res_ping_1_seaaimsprd1" rsc="res_ping_1"
> node="seaaimsprd1" score="500"/>
> <rsc_location id="loc_res_ping_1_seaaimsprd2" rsc="res_ping_1"
> node="seaaimsprd2" score="500"/>

So I have two things for you.

You need to clone the ping resource so that it runs on all nodes.  You're location statements would just cancel each other out and the cluster would decide where to put the single res_ping_1 resource.
For example I do this:

    <resources>
      <clone id="cl_ping">
        <meta_attributes id="cl_ping_gateways-meta_attributes">
          <nvpair id="cl_ping_gateways-meta_attributes-clone-node-max" name="clone-node-max" value="1"/>
          <nvpair id="cl_ping_gateways-meta_attributes-interleave" name="interleave" value="true"/>
          <nvpair id="cl_ping_gateways-meta_attributes-target-role" name="target-role" value="Started"/>
        </meta_attributes>
        <primitive class="ocf" id="p_ping_gateways" provider="pacemaker" type="ping">
          <instance_attributes id="p_ping_gateways-instance_attributes">
            <nvpair id="p_ping_gateways-instance_attributes-host_list" name="host_list" value="xxxxxxx"/>
            <nvpair id="p_ping_gateways-instance_attributes-multiplier" name="multiplier" value="100"/>
            <nvpair id="p_ping_gateways-instance_attributes-dampen" name="dampen" value="33s"/>
          </instance_attributes>
          <operations>
            <op id="p_ping_gateways-start-0" interval="0" name="start" timeout="60s"/>
            <op id="p_ping_gateways-stop-0" interval="0" name="stop" timeout="20s"/>
            <op id="p_ping_gateways-monitor-10s" interval="10s" name="monitor" timeout="60s"/>
          </operations>
        </primitive>
      </clone>
    </resources>

Then you will have a clone instance of ping on each node.

Then you need to create location constraints for other resources in relation to the pingd value.
For example:

    <constraints>
      <rsc_location id="l_ntp_ip_with_ping" rsc="p_ip_ntp">
        <rule boolean-op="or" id="l_ntp_ip_with_ping-rule" score="-INFINITY">
          <expression attribute="pingd" id="l_ntp_ip_with_ping-expression" operation="not_defined"/>
          <expression attribute="pingd" id="l_ntp_ip_with_ping-expression-0" operation="lte" value="0"/>
        </rule>
      </rsc_location>
    </constraints>

This contraint requires that resource "p_ip_ntp" must never run on a node where the value of pingd is undefined or less than 0.

Here's the crm code for the above:
primitive p_ping_gateways ocf:pacemaker:ping \
        params host_list="xxxxx" multiplier="100" dampen="33s" \
        op start interval="0" timeout="60s" \
        op stop interval="0" timeout="20s" \
        op monitor interval="10s" timeout="60s"

clone cl_ping p_ping_gateways \
        meta clone-node-max="1" interleave="true" target-role="Started"

location l_ntp_ip_with_ping p_ip_ntp \
        rule $id="l_ntp_ip_with_ping-rule" -inf: not_defined pingd or pingd lte 0


HTH

Jake



> On Mon, Oct 15, 2012 at 9:46 PM, Jake Smith < jsmith at argotec.com >
> wrote:

> > Sorry for the top post.
> 

> > Hard to say much without pacemaker config but did you configure
> > location constraints for your resources based upon pingd value?
> 

> > Post your pacemaker config or pastebin link to it and we'll be able
> > to help more.
> 

> > Hth
> 

> > Jake
> 
> > From: Richard Alan McAlexander
> 
> > Sent: Mon, 15/10/2012 06:39 PM
> 
> > To: pacemaker at oss.clusterlabs.org
> 
> > Subject: [Pacemaker] Unable to add ping resource to pacemaker
> > 1.0.12
> 

> > _______________________________________________
> 
> > Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> 
> > http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> 

> > Project Home: http://www.clusterlabs.org
> 
> > Getting started:
> > http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> 
> > Bugs: http://bugs.clusterlabs.org
> 

> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker

> Project Home: http://www.clusterlabs.org
> Getting started:
> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org




More information about the Pacemaker mailing list