On Tue, Mar 23, 2010 at 15:00, Andrew Beekhof <[email protected]> wrote:
> On Tue, Mar 23, 2010 at 7:11 PM, Eric Blau <[email protected]> wrote: > > On Tue, Mar 23, 2010 at 13:17, Andrew Beekhof <[email protected]> > wrote: > > > >> On Tue, Mar 23, 2010 at 6:01 PM, Eric Blau <[email protected]> wrote: > >> > Hi everyone, > >> > > >> > I'm working with a test configuration containing 128 resources using > the > >> > Stateful example resource agent supplied with Linux HA. I'm trying to > >> > figure out how to get resource colocation constraints working > >> efficiently. > >> > > >> > I have 128 master/slave Stateful resources with a configuration for > each > >> > that looks like this: > >> > > >> > <master id="ms_stateful_1"> > >> > <primitive id="stateful1" class="ocf" provider="pacemaker" > >> > type="Stateful"/> > >> > <instance_attributes id="params-stateful1"> > >> > <nvpair id="stateful1-clone-max" name="clone-max" value="2"/> > >> > <nvpair id="stateful1-clone-node-max" name="clone-node-max" > >> > value="1"/> > >> > <nvpair id="stateful1-master-max" name="master-max" value="1"/> > >> > <nvpair id="stateful1-master-node-max" name="master-node-max" > >> > value="1"/> > >> > <nvpair id="stateful1-resource-stickiness" > >> > name="resource-stickiness" value="10"/> > >> > </instance_attributes> > >> > </master> > >> > > >> > I then have a default score of 10000 assigned to each resource by > using a > >> > resource location constraint like this: > >> > > >> > <rsc_location id="stateful1_default-score1" rsc="ms_stateful_1"> > >> > <rule id="stateful1_default-score2" score="10000"> > >> > <expression id="stateful1_default_expr" attribute="#uname" > >> > operation="defined"/> > >> > </rule> > >> > </rsc_location> > >> > > >> > I would then like to specify a resource colocation constraint that > would > >> > spread out the master and slave resources among cluster nodes as much > as > >> is > >> > possible. > >> > >> It should do this normally though. > >> Did it not do so without the colocation constraints? > >> > > > > No, it does not do so without the colocation constraints. > > > > For example, if I configure 128 resources with 1 server in the cluster, > all > > 128 resources are started as master on that server. > > If I start up server 2, all 128 resources are started as slaves on that > > server. > > That I would probably still expect - for allocation we dont > differentiate between the different states. > > > If I start up server 3, none of the resources are started on that server. > > That I do find strange. Can you file a bug for that please? > Done. http://developerbugs.linux-foundation.org/show_bug.cgi?id=2376 <http://developerbugs.linux-foundation.org/show_bug.cgi?id=2376>Thanks for the help! > > > > > I would like for the resources to be redistributed. So with 2 servers I > > would have 64 masters and 64 slaves on each of the two servers. With 3 > > servers I would have 42 or 43 masters on each server and 42 or 43 slaves > on > > each server. > > > > With the colocation constraints, this works with a small number of > > resources, but cannot scale to 128 resources. > > > > > >> > >> > I have figured out that this is possible to do by creating rules > >> > like this with negative scores: > >> > > >> > <rsc_colocation id="stateful1_2" rsc="ms_stateful_1" > >> > with-rsc="ms_stateful_2" score="-7"/> > >> > <rsc_colocation id="stateful1_2_ms" rsc="ms_stateful_1" > >> > with-rsc="ms_stateful_2" with-rsc-role="Master" score="-7"/> > >> > > >> > This causes resources to prefer to be placed on nodes where the fewest > >> > number of resources are running to spread them out to the largest > extent > >> > possible. > >> > > >> > These resource colocation constraints work well for a small number of > >> > resources, but it requires defining colocation constraints for all > >> > permutations of resources. For 5 resources this is manageble, I > define > >> > colocation constraints between resources like this: > >> > > >> > 1->2 > >> > 1->3 > >> > 1->4 > >> > 1->5 > >> > 2->3 > >> > 2->4 > >> > 2->5 > >> > etc. > >> > > >> > but for large numbers of resources (like 128) this simply is not > >> scalable. > >> > > >> > Is there a more efficient way to define the colocation constraints > >> instead > >> > of requiring an explicit constraint for each combination of resources? > >> > > >> > Thanks in advance for your help! > >> > > >> > Regards, > >> > Eric Blau > >> > _______________________________________________ > >> > 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 > >> > > _______________________________________________ > > 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 > _______________________________________________ Linux-HA mailing list [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha See also: http://linux-ha.org/ReportingProblems
