Skip to contentSkip to conversation

zero downtime upgrades to the kernel.

RFC James Courtier-Dutton 3 participants 4 messages Aug 10, 2004 – Aug 11, 2004

lore
Share & tools
lore
#0 lore raw

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?

James

#1 lore raw
Quoted 3 lines · James Courtier-Dutton

Has anyone investigated how one might be able to upgrade the linux kernel without rebooting?

This pops up now and again.

I myself posted a mail with the same suggestion back in 1998
http://uwsg.iu.edu/hypermail/linux/kernel/9808.1/1282.html . Colin Slater suggested it in 2001
http://www.ussg.iu.edu/hypermail/linux/kernel/0107.1/0313.html and there are additional occourances of this in the archives as well...

--
Jesper Juhl

#2 lore raw
Quoted 8 lines · Jesper Juhl
Quoted 3 lines · James Courtier-Dutton

Has anyone investigated how one might be able to upgrade the linux kernel without rebooting?

Quoted 7 lines

This pops up now and again.

I myself posted a mail with the same suggestion back in 1998 http://uwsg.iu.edu/hypermail/linux/kernel/9808.1/1282.html . Colin Slater suggested it in 2001 http://www.ussg.iu.edu/hypermail/linux/kernel/0107.1/0313.html and there are additional occourances of this in the archives as well...

--
Jesper Juhl

Thank you....stop this thread now. ;-)

#3 lore raw
In reply to James Courtier-Dutton
Quoted 6 lines · James Courtier-Dutton

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 using that driver (keeping linux running from some other drive (or ramdisk)) replace module, reload module, remount filesystems. This can be quite fast, but you do have to 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. This way, all disks can be umounted so any disk device driver can be
replaced. You'll
tie up a fair amount of memory in that big initial ramdisk though.

2. Consider using multipath and different scsi adapters using different drivers. 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 while running, but redundant hardware may give some of the same benefits.

Helge Hafting