[Cluster-devel] RFC: generic improvement to fence agents api

Digimer linux at alteeve.com
Sat Mar 19 18:44:11 UTC 2011


On 03/19/2011 01:32 PM, Fabio M. Di Nitto wrote:
> On 3/19/2011 6:14 PM, Digimer wrote:
>> On 03/19/2011 02:34 AM, Fabio M. Di Nitto wrote:
>>> Hi all,
>>>
>>> while discussing on linux-cluster the support of the Tripp Lite switched
>>> PDU, it occurred to me that we can effectively improve (almost half) the
>>> time it takes to perform power fencing of certain devices, when for
>>> example, more than one PSU needs to be powered off to complete the action.
>>>
>>> Node X has 2 PSU.
>>>
>>> In our current state, the config would look like:
>>>
>>> <clusternode .....>
>>>  <fence>
>>>   <method...>
>>>    <device name="..." port="1"/>
>>>    <device name="..." port="2"/>
>>> .....
>>>
>>> it means effectively spawning, most likely the same agent, twice.
>>> Increasing the time it takes to fence and maybe increasing the
>>> possibility to fail to fence if the second connection fails.
>>>
>>> My suggestion would be to allow to specify a list of ports instead.
>>>
>>> <clusternode .....>
>>>  <fence>
>>>   <method...>
>>>    <device name="..." ports="1 2"/>
>>> ....
>>>
>>> Either by using a new keyword "ports" or re-using "port" itself. If
>>> using "port", current configuration will continue to work as-is and the
>>> change effectively would not introduce any backward compatibility issue.
>>>
>>> This way the agent can:
>>>
>>> 1) connect once (reducing in most cases the ssh/telnet/whatever time)
>>> 2) issue the OFF command as fast as possible (almost in parallel)
>>> 3) then wait for the results.
>>>
>>> By adopting a list, the configuration would look cleaner too IMHO.
>>>
>>> A quick glance, the change should not affect fenced (David can you
>>> confirm please?), and most agents could handle it via the fencing python
>>> lib (Marek?).
>>>
>>> Does it sound reasonable?
>>>
>>> Cheers
>>> Fabio
>>
>> I like this idea, but would like to suggest:
>>
>> * Keep 'port' for a single port, as it is, and add 'ports' for multiple
>> port definitions.
>> * When using ports, I'd recommend comma-separated values and
>> dash-separated ranges (ie: ports="1,2", ports="1-4", ports="1,3-5") and
>> combinations there-of. This strikes me as more "standard" and possibly
>> less prone to typos.
>>
> 
> The only thing I have against "," or "-" is that they might be easily
> part of a port name already.
> 
> Range doesn´t make sense to me and it´s complex to interpret/implement.
> How many machines have you seen around with so many PSU´s anyway that
> need a range to avoid headache? (leaving aside E10K or s390 ;)).
> 
> Fabio

Lol, I've seen up to four in n-1 setups, but you are right, it's not
common enough to justify increasing complexity, so simple
space-separated numbers is fine. I still argue for the "port" vs.
"ports" though. :)

-- 
Digimer
E-Mail: digimer at alteeve.com
AN!Whitepapers: http://alteeve.com
Node Assassin:  http://nodeassassin.org




More information about the Cluster-devel mailing list