[Linux-HA] failure stickiness not working as expected
Andrew Beekhof
beekhof at gmail.com
Thu Mar 8 05:54:07 MST 2007
On 3/8/07, Yan Fitterer <yfitterer at novell.com> wrote:
> >> HB 2.0.8- 0.10 (built 01/03/07)
> >>
> >> Default resource stickiness: 100
> >> Default resource failure stickiness: - 100
> >>
> >> Each resource group is given a "primary node" score of 100
> >> Each resource group is given a node score of 50 on all other nodes
> >>
> >>
> >> With this setup, I would expect a resource that fails on a "non- primary" note
> > (i.e. score 50) when its "primary" node
> >> doesn't run any resources to move to that node immediately. For me, the
> > resource will be retried on the failed node.
> >
> > the thing to always remember about *_stickiness is that it doesn't
> > work in isolation.
> >
> > first of all, when if 1 resource in a group of 5 fails... there are 4
> > others trying to stay where they are.
>
> OK - understood
>
> >
> > starting scores:
> > primary: 100
> > secondary: 50
> >
> > factor in stickiness:
> > primary: 100
> > secondary: 50+ (N*100) (where N=number of resources in the group)
>
> I don't understand this. Why does the stickiness factor the number of resources on secondary nodes only ?
because the resources are not running anywhere else
stickiness is a measure of how much you'd prefer resources to stay
where they are
as opposed to rsc_location constraints which are a measure of how much
you'd prefer them to run on specific hosts, and
rsc_colocation constraints which are a measure of how much you'd
prefer them to run on the same host as another resource
>
> >
> > factor in failure stickiness:
> > primary: 100
> > secondary: 50+ (N*100) - (M*100) (where M=number of times the
> > resource has failed)
>
> Same question as above.
>
> > secondly, stickiness is also passed on by colocation constraints.
> > this is necessary to ensure that when B is being placed somewhere,
> > that it takes into account where A would like to go (to avoid if
> > possible choosing somewhere it CANT go)
> >
> > given colocate(A, B, weight), the node scores are adjusted as:
> > B.nodes[x].score += A.node[x].score * (weight/INFINITY)
>
> Don't quite see how stickiness comes into the formula above. How is stickiness "passed on by colocation constraints" ?
As in the examples above where we established what the node scores
would be for a group, a node's initial score is calculated from
rsc_location constraint, stickiness and failure stickiness.
This score from A is then passed on to B using the formula quoted.
More information about the Linux-HA
mailing list