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

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
> 
> > 
> > ------------------------------
> 
> > _______________________________________________
> > Linux-HA mailing list
> > [email protected]
> > http://lists.linux-ha.org/mailman/listinfo/linux-ha
> > See also: http://linux-ha.org/ReportingProblems
> 
> > End of Linux-HA Digest, Vol 75, Issue 2
> > ***************************************
> _______________________________________________
> Linux-HA mailing list
> [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha
> See also: http://linux-ha.org/ReportingProblems
_______________________________________________
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