Re: [RFC] zero downtime upgrades to the kernel.
From: Helge Hafting (helge.hafting_at_hist.no)
Date: Wed, 11 Aug 2004 10:44:54 +0200 To: James Courtier-Dutton <James@superbug.demon.co.uk>
James Courtier-Dutton wrote:
> Has anyone investigated how one might be able to upgrade the linux
> kernel without rebooting?
> We could maybe start with just being able to upgrade kernel modules
> while the modules were still in use.
> E.g. There is a bug in the hard disc driver, and we have a fix, but
> don't want to reboot the machine.
> Could we replace the hard disc driver while it was still being used,
> and keep mounted partitions?
You can only upgrade a module that isn't in use. So, umount everything
driver (keeping linux running from some other drive (or ramdisk))
reload module, remount filesystems. This can be quite fast, but you do
umount (and stop all the processes running from those disks.)
There are some trick you can use with disks:
1. Have root on a initial ramdisk, and never remount to a real disk.
all disks can be umounted so any disk device driver can be
tie up a fair amount of memory in that big initial ramdisk though.
2. Consider using multipath and different scsi adapters using different
Perhaps this will let you unload adapter drivers one at a time while you
reload the other one, and keeps disks & processes running troughout.
3. Have two identical pc's sharing a set of scsi equipment. When you
want to upgrade
the base kernel on one, set your IP addressses so traffic goes to the other.
This should work with protocols that allows server reboot, such as nfs.
You simply won't get a linux kernel (or module) that can be replaced
but redundant hardware may give some of the same benefits.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/