> Message: 6
> Date: Fri, 5 Feb 2010 12:25:44 +0100
> From: Dejan Muhamedagic <[email protected]>
> Subject: Re: [Linux-HA] clone constraints
> To: General Linux-HA mailing list <[email protected]>
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=us-ascii

> Hi,

> On Thu, Feb 04, 2010 at 11:50:14AM -0700, [email protected] wrote:
> > > Message: 7
> > > Date: Tue, 2 Feb 2010 18:50:19 +0100
> > > From: Dejan Muhamedagic <[email protected]>
> > > Subject: Re: [Linux-HA] clone constraints
> > > To: General Linux-HA mailing list <[email protected]>
> > > Message-ID: <[email protected]>
> > > Content-Type: text/plain; charset=us-ascii
> >
> > > Hi,
> >
> > > On Fri, Jan 29, 2010 at 03:28:05PM -0700, [email protected] 
wrote:
> > > > I have a new 2-node cluster I am attmpting to setup and I have run
> > into
> > > > syntax issues with the constraints setion of the xml config. This
> > setup
> > > > is a copy of a current cluster I have.
> > > >
> > > > Both run rhel5 on proliant servers.
> > > >
> > > > old setup:
> > > > libheartbeat2-2.99.2-8.1
> > > > heartbeat-resources-2.99.2-8.1
> > > > heartbeat-common-2.99.2-8.1
> > > > heartbeat-2.99.2-8.1
> > > > pacemaker-1.0.3-2.2
> > > > libpacemaker3-1.0.3-2.2
> > > >
> > > > new setup(epel pkgs):
> > > > heartbeat           3.0.1-1.el5
> > > > heartbeat-libs      3.0.1-1.el5
> > > > pacemaker           1.0.7-2.el5
> > > > pacemaker-libs      1.0.7-2.el5
> > > > cluster-glue        1.0.1-1.el5
> > > > cluster-glue-libs   1.0.1-1.el5
> > > > corosync            1.2.0-1.el5
> > > > corosynclib         1.2.0-1.el5
> > > > resource-agents     1.0.1-1.el5
> > > >
> > > >
> > > > I attmpted to load the modified xml config from old to new and
> > received
> > > > errors :
> > > > r...@wispoller2 configs]# cibadmin -V --replace --xml-file
> > wispoller.xml
> > > > Call cib_replace failed (-47): Update does not conform to the
> > configured
> > > > schema/DTD
> > > >
> > > > I then ran crm_verify -V --xml-file wispoller.xml and attempted to
> > work
> > > > through
> > > > resultant conflicts mostly by trial and error however when I got 
to
> > the
> > > > constraints
> > > > section I must admit I'm hooped.
> > > >
> > > > Here are the last errors i recieved :
> > > >
> > > > [r...@wispoller2 configs]# crm_verify -V --xml-file wispoller.xml
> > > > wispollerv4.xml:98: element rsc_order: Relax-NG validity error :
> > Expecting
> > > > an element resource_set, got nothing
> > > > wispollerv4.xml:98: element rsc_order: Relax-NG validity error :
> > Element
> > > > rsc_order failed to validate content
> > > > wispollerv4.xml:88: element rsc_location: Relax-NG validity error 
:
> > > > Element constraints has extra content: rsc_location
> > > > wispollerv4.xml:2: element configuration: Relax-NG validity error 
:
> > > > Invalid sequence in interleave
> > > > wispollerv4.xml:2: element configuration: Relax-NG validity error 
:
> > > > Element configuration failed to validate content
> > > > wispollerv4.xml:1: element cib: Relax-NG validity error : Element 
cib
> > > > failed to validate content
> > > > crm_verify[26599]: 2010/01/29_11:15:59 ERROR: main: CIB did not 
pass
> > > > DTD/schema validation
> > > > Errors found during check: config not valid
> > > > [r...@wispoller2 configs]#
> > > >
> > > >
> > > > Below is the complete config. The question is how can the clone
> > > > constraints be rewritten to conform ?
> > > >
> > > > In addition I had to change :
> > > > <rule id="stonith_rule01" score="-INFINITY" boolean_op="and">
> > > > to :
> > > > <rule id="stonith_rule01" score="-INFINITY">
> > > >
> > > > to allow it to pass ...
> > > >
> > > > Thanks
> > > >
> > > >
> > > > wispoller.xml
> > > >
> > > >
> > > > <cib epoch="9" num_updates="2" admin_epoch="0"
> > > > validate-with="pacemaker-1.0" crm_feature_set="3.0.1" 
have-quorum="1"
> > > > dc-uuid="967c404e-2d58-49a7-977a-76e5a1d5f214">
> > > > <configuration>
> > > > <crm_config>
> > > > <cluster_property_set id="cib-bootstrap-options">
> > > > <nvpair id="cib-bootstrap-options-dc-version" name="dc-version"
> > > > value="1.0.7-d3fa20fc76c7947d6de66db7e52526dc6bd7d782"/>
> > > > <nvpair id="cib-bootstrap-options-cluster-infrastructure"
> > > > name="cluster-infrastructure" value="Heartbeat"/>
> > > > </cluster_property_set>
> > > > </crm_config>
> > > > <nodes>
> > > > <node id="4a7332d6-e352-4315-ac88-ac080ed45e60" uname="wispoller1"
> > > > type="normal"/>
> > > > <node id="967c404e-2d58-49a7-977a-76e5a1d5f214" uname="wispoller2"
> > > > type="normal"/>
> > > > </nodes>
> > > > <resources>
> > > > <group id="grp_1">
> > > > <primitive id="IPaddr_165_115_204_218" class="ocf"
> > provider="heartbeat"
> > > > type="IPaddr">
> > > > <operations>
> > > > <op id="IPaddr_165_115_204_218_mon" name="monitor" interval="5s"
> > > > timeout="5s"/>
> > > > </operations>
> > > > <instance_attributes id="params-IPaddr_165_115_204_218">
> > > > <nvpair id="IPaddr_165_115_204_218-addr" name="ip"
> > > > value="165.115.204.218"/>
> > > > </instance_attributes>
> > > > </primitive>
> > > > <primitive id="drbddisk_2" class="heartbeat" type="drbddisk">
> > > > <operations>
> > > > <op id="drbddisk_2_mon" interval="120s" name="monitor" 
timeout="60s"/>
> > > > </operations>
> > > > <instance_attributes id="drbddisk_2_inst_attr">
> > > > <nvpair id="drbddisk_2_attr_1" name="1" value="r0"/>
> > > > </instance_attributes>
> > > > </primitive>
> > > > <primitive id="Filesystem_3" class="ocf" provider="heartbeat"
> > > > type="Filesystem">
> > > > <operations>
> > > > <op id="Filesystem_3_mon" interval="120s" name="monitor"
> > timeout="60s"/>
> > > > </operations>
> > > > <instance_attributes id="Filesystem_3_inst_attr">
> > > > <nvpair id="Filesystem_3_attr_0" name="device" 
value="/dev/drbd0"/>
> > > > <nvpair id="Filesystem_3_attr_1" name="directory" value="/drbd"/>
> > > > <nvpair id="Filesystem_3_attr_2" name="fstype" value="ext3"/>
> > > > <nvpair id="Filesystem_3_attr_3" name="options" value="defaults"/>
> > > > </instance_attributes>
> > > > </primitive>
> > > > <primitive id="rc.primary_5" class="lsb" type="rc.primary">
> > > > <operations>
> > > > <op id="rc.primary_5_mon" interval="120s" name="monitor"
> > timeout="60s"/>
> > > > </operations>
> > > > </primitive>
> > > > </group>
> > > > <clone id="CL_stonithset_node01">
> > > > <meta_attributes id="CL_stonithset_node01-attr">
> > > > <nvpair id="CL_stonithset_node01_clone_node_max" 
name="clone_node_max"
> > > > value="1"/>
> > > > </meta_attributes>
> > > > <primitive id="CL_stonith_node01" class="stonith"
> > > > type="external/riloe-iders">
> > > > <operations>
> > > > <op id="CL_stonith_node01_monitor" name="monitor" interval="30s"
> > > > timeout="20s"/>
> > > > </operations>
> > > > <instance_attributes id="CL_stonith_node01-attr">
> > > > <nvpair id="CL_stonith_node01_hostlist" name="hostlist"
> > > > value="wispoller1"/>
> > > > <nvpair id="CL_stonith_node01_ilo_hostname" name="ilo_hostname"
> > > > value="wispoller1-ilo"/>
> > > > <nvpair id="CL_stonith_node01_ilo_user" name="ilo_user"
> > > > value="Heartbeat"/>
> > > > <nvpair id="CL_stonith_node01_ilo_password" name="ilo_password"
> > > > value="xxxxxxxxxx"/>
> > > > <nvpair id="CL_stonith_node01_ilo_can_reset" name="ilo_can_reset"
> > > > value="0"/>
> > > > <nvpair id="CL_stonith_node01_ilo_protocol" name="ilo_protocol"
> > > > value="2.0"/>
> > > > <nvpair id="CL_stonith_node01_ilo_powerdown_method"
> > > > name="ilo_powerdown_method" value="button"/>
> > > > </instance_attributes>
> > > > </primitive>
> > > > </clone>
> > > > <clone id="CL_stonithset_node02">
> > > > <meta_attributes id="CL_stonithset_node02-attr">
> > > > <nvpair id="CL_stonithset_node02_clone_node_max" 
name="clone_node_max"
> > > > value="1"/>
> > > > </meta_attributes>
> > > > <primitive id="CL_stonith_node02" class="stonith"
> > > > type="external/riloe-iders">
> > > > <operations>
> > > > <op id="CL_stonith_node02_monitor" name="monitor" interval="30s"
> > > > timeout="20s"/>
> > > > </operations>
> > > > <instance_attributes id="CL_stonith_node02-attr">
> > > > <nvpair id="CL_stonith_node02_hostlist" name="hostlist"
> > > > value="wispoller2"/>
> > > > <nvpair id="CL_stonith_node02_ilo_hostname" name="ilo_hostname"
> > > > value="wispoller2-ilo"/>
> > > > <nvpair id="CL_stonith_node02_ilo_user" name="ilo_user"
> > > > value="Heartbeat"/>
> > > > <nvpair id="CL_stonith_node02_ilo_password" name="ilo_password"
> > > > value="xxxxxxxxxx"/>
> > > > <nvpair id="CL_stonith_node02_ilo_can_reset" name="ilo_can_reset"
> > > > value="0"/>
> > > > <nvpair id="CL_stonith_node02_ilo_protocol" name="ilo_protocol"
> > > > value="2.0"/>
> > > > <nvpair id="CL_stonith_node02_ilo_powerdown_method"
> > > > name="ilo_powerdown_method" value="button"/>
> > > > </instance_attributes>
> > > > </primitive>
> > > > </clone>
> > > > </resources>
> > > > <constraints>
> > > > <rsc_location id="stonith_node01" rsc="CL_stonithset_node01">
> > > > <rule id="stonith_rule01" score="-INFINITY">
> > > > <expression id="stonith_expression01" attribute="#uname"
> > operation="eq"
> > > > value="wispoller1"/>
> > > > </rule>
> > > > </rsc_location>
> > > > <rsc_location id="stonith_node02" rsc="CL_stonithset_node02">
> > > > <rule id="stonith_rule02" score="-INFINITY">
> > > > <expression id="stonith_expression02" attribute="#uname"
> > operation="eq"
> > > > value="wispoller2"/>
> > > > </rule>
> > > > </rsc_location>
> > > > <rsc_colocation id="stonith_not_same" from="CL_stonithset_node02"
> > > > to="CL_stonithset_node01" score="-INFINITY"/>
> >
> > > Attribute "to" and "from" don't exist anymore. You should use
> > > "rsc" and "with-rsc", though I can't recall now which is which.
> > > Anyway, this collocation is wrong and not needed.
> > > Please take a look at 
http://www.clusterlabs.org/doc/crm_fencing.html
> >
> > > Thanks,
> >
> > > Dejan
> >
> >
> > Dejan,
> >
> >  Thanks for the reply. Yes in the end I rewrote the constrains as 
follows
> >  (with comments).
> >
> > <constraints>
> > # CL_stonithset_node01 cannot run on wispoller1
> > <rsc_location id="node-1-dont-run" rsc="CL_stonithset_node01"
> > node="wispoller1" score="-INFINITY"/>
> > # CL_stonithset_node02 cannot run on wispoller2
> > <rsc_location id="node-2-dont-run" rsc="CL_stonithset_node02"
> > node="wispoller2" score="-INFINITY"/>
> > # CL_stonithset_node01 and CL_stonithset_node02 cannot run together
> > <rsc_colocation id="stonith_not_same" rsc="CL_stonithset_node02"
> > with-rsc="CL_stonithset_node01" score="-INFINITY"/>
> > # resource group grp_1 has a preferred score of 100 on wispoller1 - 
which
> > means if it is running the grp
> > # should always failover to wispoller1
> > <rsc_location id="rsc_location_group_1" rsc="grp_1" node="wispoller1"
> > score="100"/>
> > </constraints>
> >
> > In addition I changed the options settings for the stonith resources 
and
> > added clone-max to 1 for each

Dejan,

Thanks for the reply.

Read your v0.9 "Fencing and Stonith". So for a lights-out device
like riloe(Compaq stonith ilo) which can only handle one connection
then clones are useless ? 

>From your below statement(and "Why those strange location contraints?"
pg 7) then stonithd implicitly refuses to kill its host and the two
contrainsts above are redundant - you imply below we will receive 
error messages ? Why would it generate error messages if this is the
default ?

If I expanded the cluster to three nodes using the same riloe plugin
would I then still only have to define three simple stonith resources
with no constraints ? I presume without a collocation rule I could
then have two of the resources running on one machine ?

Thanks

> If you have clone-max=1, then you don't need a clone :) Really,
> all you need are two simple stonith resources. If you feel
> uncomfortable with the error log messages about a stonith
> resource not being able to run on a node, then also add the two
> location constraints as above. And you don't need the
> collocation, it is implied.

> Thanks,

> Dejan

> > resource. Also changed clone_node_max to clone-node-max on both as per
> > literature - hopefully this
> > is correct. clone-max is set to one because this is "How amny copies 
of
> > the resource to start" in the
> > cluster. For riloe there should only ever be one running and not on
> > itself.
> >
> > Thanks
> >
> > > > <rsc_location id="rsc_location_group_1" rsc="grp_1">
> > > > <rule id="prefered_location_group_1" score="100">
> > > > <expression attribute="#uname" id="prefered_location_group_1_expr"
> > > > operation="eq" value="wispoller1"/>
> > > > </rule>
> > > > </rsc_location>
> > > > </constraints>
> > > > </configuration>
> > > > </cib>
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to