2003 Kernel Summit: High Availability
[Posted July 22, 2003 by corbet]
Lars Marowsky-Brée presented the near-term needs for the support of
high-availability systems. At the top of the list was a simple item: write
bug-free code. If the code always works, a lot of availability problems go
away.
Failing that, the next thing to do is to provide better fault isolation in
the kernel. Lars pointed out that there are over 1200 calls to
panic() in the kernel. Many of these calls are unnecessary; the
system could recover in some way and continue functioning. Supporting high
availability means not bringing down the whole system if it is not
necessary.
When the system does have to go down, it should make the most of the
downtime. High-availability customers don't like to be told, for example,
that they need to reproduce the fault. Instead, the kernel should
provide things like crash dumps and sensible log entries. The kexec
feature was also mentioned as a way to get a system back on its feet more
quickly after a crash or a kernel upgrade.
Other features needed for high-availability include cluster filesystems and
a cluster volume manager. In fact, it would be nice to have a full set of
clustering infrastructure - including single system image support - in the
kernel. Good multipath I/O support is needed. There is also a need for a
standard interface for reporting events to programs; /sbin/hotplug
is a start, but some sort of in-memory daemon would be better.
But, in the end, the main problem is that the kernel crashes. Most of the
problems, says Lars, are in the driver code. Driver faults are not
sufficiently isolated from the rest of the kernel. But, as Linus pointed
out, achieving that sort of isolation would be difficult. If a driver
fails while handling an interrupt, for example, it is almost impossible to
put the system back into a reasonable state. The solution is to fix the
drivers, but there is only so far that one can go in that direction. In
some cases, the hardware is so bad that fixing the driver is not very
helpful. What needs to be done is to concentrate on a few drivers,
corresponding to good hardware, and make sure they operate properly.
(
Log in to post comments)