[Pacemaker] Multi-site support in pacemaker (tokens, deadman, CTR)

Lars Marowsky-Bree lmb at suse.de
Thu May 12 11:47:15 UTC 2011


On 2011-04-29T03:33:00, "Gao,Yan" <ygao at novell.com> wrote:

> > Yes; a ticket section, just like that.
> All right. How about the schema:
>     <element name="configuration">
>       <interleave>
> ...
>         <element name="tickets">
>           <zeroOrMore>
>             <element name="ticket_set">
>               <externalRef href="nvset.rng"/>
>             </element>
>           </zeroOrMore>
>         </element>
> ...

Makes sense to me.

> > Personally, I lean towards this. (Andrew has expressed a wish to do
> > without the "rsc_" prefix, so lets drop this ;-)
> Well then, how about "ticket_dep" or "ticket_req"?

The first sounds a bit better to me.

> > Not sure the kind="Deadman" is actually required, but it probably makes
> > sense to be able to switch off the big hammer for debugging purposes.
> > ;-)
> I was thinking it's for switching on/off "immediately fence once the
> dependency is no longer satisfied".

Agreed. I was saying that this is only for debugging purposes.

> > 
> > I don't see why any resource would depend on several tickets; but I can
> > see a use case for wanting to depend on _not_ owning a ticket, similar
> > to the node attributes. And the resource would need a role, obviously.
> OK. The schema I can imagine:
> 
>   <define name="element-ticket_dep">
>     <element name="ticket_dep">
>       <attribute name="id"><data type="ID"/></attribute>
>       <choice>
>         <oneOrMore>
>           <ref name="element-resource-set"/>
>         </oneOrMore>
>         <group>
>           <attribute name="rsc"><data type="IDREF"/></attribute>
>           <optional>
>             <attribute name="rsc-role">
>               <ref name="attribute-roles"/>
>             </attribute>
>           </optional>
>         </group>
>       </choice>
>       <attribute name="ticket"><text/></attribute>

Actually, if we were to define a new type for the ticket list, we could
reference the id of the ticket element here and only allow configured
tickets.

> > No to both; it can be revoked manually, yes, but it isn't going to be
> > always the case. I'm also not quite sure I understand where this
> > question is headed; how does it matter here whether the ticket is
> > revoked manually or not?
> I was just thinking -- before we have the CTR, we rely on the admin
> quite much.

Yes, the CTR sort-of replaces (or at least augments) the administrator.


> > A site that does not own a ticket but has a non-zero value for it
> > defined will request the ticket from the CTR; the CTR will grant it to
> > the site with the highest bid (but not to a site with 0)
> The site with the highest "bid" is being revoked the ticket.

Hm? No, I thought the site with the highest bid would be granted the
ticket, not have it revoked.

> Should it clear the "bid" also? Otherwise it will get the ticket again
> soon after?

My thinking was that the "bid" is actually an on-going event/finite
state machine. Whenever a state change occurs - connection dropped
somewhere, bid value changed, a site becomes non-quorate and gives up
its ticket, etc - the CTRs that are still alive re-evaluate the grants
and decide anew where the tickets go.

> > (Tangent - ownership appears to belong to the status section; the value
> > seems belongs to the cib->ticket section(?).)
> Perhaps. Although there's no appropriate place to set a cluster-wide
> attribute in the status section so far.

Right, and it is actually not so easy, since the status section is
reconstructed from each node at times.

> Other solutions are:
> A "ticket" is not a nvpair. It is
> 
> - An object with "ownership" and "bid" attributes.
> Or:
> - A nvpair-set which includes the "ownership" and "bid" nvpairs.

Both might work. The first - an element with several attributes - might
work best, I think, since it's a bit cleaner, and would allow us to do
more validation when dependencies are defined.

Regards,
    Lars

-- 
Architect Storage/HA, OPS Engineering, Novell, Inc.
SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 21284 (AG Nürnberg)
"Experience is the name everyone gives to their mistakes." -- Oscar Wilde





More information about the Pacemaker mailing list