Hardware Watchdog Device in pSeries?
Alan Robertson
alanr at unix.sh
Fri Oct 15 03:34:48 EST 2004
Linas Vepstas wrote:
> Hi Alan,
>
> Long emails confuse me ...
>
> On Wed, Oct 13, 2004 at 10:41:26PM -0600, Alan Robertson was heard to remark:
>
>>Linas Vepstas wrote:
>>
>>>why should someone buy 12 pci-card watchdogs, one for each partition,
>>>chewing up 12 pci slots, when the pSeries is already capable of doing
>>
>> It looks really Rube Goldberg-ish (to say the least).
>
>
> [...]
>
>>The hardware watchdog timer is a 3rd party
>>monitoring system, and therefore is likely to be reliable when the thing it
>>is watching is sick -
>
>
>
> Not sure where you're going with this; are you saying that
> 3rd-party watchdog PCI cards, one for each partition, is a
> good idea, or a bad idea?
>
> Would you rather have the OS monitoring done with
> (a) watchdog PCI cards,
> (b) with 'surveillance' done by firmware/hypervisor,
> (c) or with some other method?
I would prefer (b). Because the software and address spaces of the
firmware/hypervisor are separate, it is effectively a third party reset
mechanism. The test I would use is: Does failure of the thing being
monitored cause or correlate to failure in the thing doing the monitoring -
and the answer is "no" -- therefore it's a third-party reset.
I don't have a (c) method in mind that would work in this environment.
Evaluating (a) and (b):
Method (a):
+ is third party
- is complex and hard to configure all around
(think about configuring those cards with passwords
and ssh, and ip addresses and partition names
and so on - also think about how many things
could break and keep this from working).
- difficult to support
- doesn't scale well in any obvious way
- is relatively expensive for the customer (adds several hundred
dollars for each partition - maybe as much as $1K)
- difficult to bring into existence (compared to (b))
- is ugly, kludgy, and Rube Goldberg-ish.
Method (b):
+ is third party
+ is relatively simple when compared to (a) (i.e., more reliable)
+ requires little/no special configuration to make it work
+ Shows off the advantages of pSeries architecture
+ adds no cost to the customer's solution
+ is comparatively easy to bring into existence (compared to a)
+ is a natural and clean solution.
>> The bootstrap loader should work much the
>
>
> I guess I didn't get this exposition either.
---- OK -- as I said this is an improvement over the above - but
not absolutely critical -- But I'll try explaining
it again and see if giving a shorter answer helps -------
> Although its nice to
> know that boot was successful, I see boot as a whole lot less
> important than monitoring the system once its gone 'online'. The boot
> sequence can be monitored much more loosely, with a whole-lot less
> complexity. The hypervisor knows when the OS boot sequence starts.
> If the OS hasn't completely booted after, say, 10 minutes, then it
> can call a human to look at the problem. I don't see why one needs
> to heartbeat once a second during boot; that's hard to do and seems
> un-neccessary.
I didn't say anything about once a second. It could be once every 30
seconds - or even 5 minutes. That gives you lots of time, and you then
only have to heartbeat in a couple of select places, and while in input
loops waiting for human input. These aren't so much periodic heartbeats as
they are progress reports. If you stop making progress, you get reset.
> By contrast, I'd expect to turn on the once-per-second
> heartbeat just before the system goes 'online' or 'critical'.
This change decreases MTTR. MTTR has an effect on system availability -
even in a redundant HA cluster - since MTTR determines the probability of
"simultaneous" failures from which the HA system cannot recover.
Calling a human is slow and often expensive (particularly on an emergency
basis). It takes minutes to hours and may result in an extra service
charge from someone (depending on who gets the call, what time it is, and
what arrangements are made, etc.).
A system which doesn't boot isn't providing service. If service isn't
being provided, it doesn't matter why it's not being provided (OS, dump,
bootstrap, BIOS, etc.)... The OS is not the only possible cause of
failure. The OS is by far more likely than these others, but all software
has bugs. And, hardware has transient failures as well as permanent ones.
A system with these capabilities will continue to try and provide service
in the presence of (transient) errors until it succeeds, or exceeds some
retry threshold, meaning a human needs to intervene and fix whatever's wrong.
This is essentially autonomic computing for the boot process.
In short:
With this architecture, the system will come up and provide
service, or it is broken so badly that retrying won't
help and a human really is needed.
Otherwise, no recovery will be performed for errors which keep
the system from coming up (after a crash or otherwise)
and some outages may be unnecessarily prolonged.
If your availability is poor, this will make zero difference. If your
availability is very good, this helps a little. And, when your
availability is very good, it's hard to find things that help even a little...
Of course, being able to say "autonomic computing wired into the lowest
levels of the system" probably has marketing value beyond the small amount
of improved availability it provides ;-)
[[If this system is running the air traffic control system while I'm in the
air, I vote for adding this feature ;-)]].
--
Alan Robertson <alanr at unix.sh>
"Openness is the foundation and preservative of friendship... Let me claim
from you at all times your undisguised opinions." - William Wilberforce
More information about the Linuxppc64-dev
mailing list