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
