From: David Teigland <teigland@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] unfencing
Date: Mon, 23 Feb 2009 12:15:30 -0600 [thread overview]
Message-ID: <20090223181530.GB12791@redhat.com> (raw)
In-Reply-To: <1235370440.7816.209.camel@cerberus.int.fabbione.net>
On Mon, Feb 23, 2009 at 07:27:20AM +0100, Fabio M. Di Nitto wrote:
> > libfence:fence_node_undo(node_name) logic:
> > for each device_name under given node_name,
> > if an unfencedevice exists with name=device_name, then
> > run the unfencedevice agent with first arg of "undo"
> > and other args the normal combination of node and device args
> > (any agent used with unfencing must recognize/support "undo")
>
> All our agents already support on/off enable/disable operations. It's
> probably best to align them to have the same config options rather than
> adding a new one across the board.
Yes, I have those options in mind, and would prefer to use them as well.
We'll have to wait and see during the implementation phase; for the time being
they complicate things, so I'm using "undo" to avoid those details.
(I did reuse those options back in my first unfencing attempt which I
eventually removed:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=c781fbb6df57f9780cdadf42126cdcc9a2ff3878)
> > <clusternode name="foo" nodeid="3">
> > <fence>
> > <method="1">
> > <device name="san" node="foo"/>
> > </method>
> > </fence>
> > </clusternode>
> >
> > <fencedevices>
> > <fencedevice name="san" agent="fence_scsi"/>
> > </fencedevices>
> >
> > <unfencedevices>
> > <unfencedevice name="san" agent="fence_scsi"/>
> > </unfencedevices>
>
> I think that we can avoid the whole <unfence* structure either by
> overriding the default action="" for that fence method or possibly
> consider unfencing a special case method. The idea is to contain the
> whole fence config for the node within the <clusternode> object rather
> than spreading it even more.
>
> For e.g.:
>
> <method name="1">
> <device name="san" node="foo"/>
> </method>
> <method name="unfence">
> ...
> </method>
>
> OR
>
> <method name="1">
> <device name="san" node="foo"/>
> </method>
> <method name="2" operation="unfence">
> ...
> </method>
>
> (clearly names and format are up for discussion)
The meanings of those fencing structures have never changed since being
introduced many years ago, and both of those fundamentally change it. It
would be very unfortunate to redefine them.
A good alternative to <unfencedevices> would be an <unfence> section within
the node setions (it would not require a method level).... Now that I've
thought more about it, it seems a better choice than "unfencedevices". It
defines explicitly what should be done, rather than depending on the implicit
effects of matching names between fencedevice/unfencedevice.
<clusternode name="foo" nodeid="3">
<fence>
<method="1">
<device name="san" node="foo"/>
</method>
</fence>
<unfence>
<device name="san" node="foo"/>
</unfence>
</clusternode>
<fencedevices>
<fencedevice name="san" agent="fence_scsi"/>
</fencedevices>
and
<clusternode name="bar" nodeid="4">
<fence>
<method="1">
<device name="switch1" port="4"/>
<device name="switch2" port="6"/>
</method>
<method="2">
<device name="apc" port="4"/>
</method>
</fence>
<unfence>
<device name="switch1" port="4"/>
<device name="switch1" port="6"/>
</unfence>
</clusternode>
<fencedevices>
<fencedevice name="switch1" agent="fence_brocade" ipaddr="1.1.1.1"/>
<fencedevice name="switch2" agent="fence_brocade" ipaddr="2.2.2.2"/>
<fencedevice name="apc" agent="fence_apc" ipaddr="3.3.3.3"/>
</fencedevices>
The key thing I've realized since the previous attempt in 2004, is that we
need to explicitly configure what unfencing should happen, rather than just
trying to apply the normal fencing config in reverse.
Dave
next prev parent reply other threads:[~2009-02-23 18:15 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-20 21:44 [Cluster-devel] unfencing David Teigland
2009-02-23 6:27 ` Fabio M. Di Nitto
2009-02-23 18:15 ` David Teigland [this message]
2009-02-23 18:31 ` Fabio M. Di Nitto
2009-02-23 18:40 ` David Teigland
2009-02-23 18:52 ` Fabio M. Di Nitto
2009-02-23 19:09 ` David Teigland
2009-02-23 19:22 ` Ryan O'Hara
2009-02-23 19:27 ` David Teigland
2009-02-23 20:24 ` Ryan O'Hara
2009-02-23 20:28 ` David Teigland
2009-02-26 6:51 ` Fabio M. Di Nitto
2009-02-26 14:33 ` David Teigland
2009-02-26 18:06 ` [Cluster-devel] unfencing (cman startup) Fabio M. Di Nitto
2009-02-27 12:54 ` Chrissie Caulfield
2009-02-27 15:52 ` David Teigland
2009-02-27 16:27 ` Chrissie Caulfield
2009-02-27 17:46 ` Fabio M. Di Nitto
2009-03-02 7:59 ` Chrissie Caulfield
2009-02-23 19:36 ` [Cluster-devel] unfencing Ryan O'Hara
2009-02-23 19:44 ` David Teigland
2009-02-26 21:35 ` David Teigland
2009-02-27 7:04 ` Fabio M. Di Nitto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090223181530.GB12791@redhat.com \
--to=teigland@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.