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

> From: "Richard \"Alan\" McAlexander" <[email protected]>
> To: "The Pacemaker cluster resource manager"
> <[email protected]>
> 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 < [email protected] >
> 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: [email protected]
> 
> > Subject: [Pacemaker] Unable to add ping resource to pacemaker
> > 1.0.12
> 

> > _______________________________________________
> 
> > Pacemaker mailing list: [email protected]
> 
> > 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: [email protected]
> 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: [email protected]
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

Reply via email to