Vooral bij grotere servers met veel hardware (bv. Veel hard disks) kan een volledige herstart/reboot de nodige tijd in beslag nemen omdat de bios initialisatie lang(er) duurt. Maar zodra een kernel update wordt uitgevoerd, is een herstart/reboot noodzakelijk om deze te kunnen activeren. Maar wat als downtime tot een absoluut minimum beperkt dient te worden ?
Op RedHat Enterprise Linux en Centos kan de volgende procedure gebruikt worden voor een kernel herinitialisatie, zonder de bios initialisatie te moeten doorlopen.
(Mocht u dit op andere distributies ook succesvol hebben uitgevoerd, dan vernemen wij dit graag)
Begin met het controleren van de huidige, actieve kernel versie :
# uname -r
2.6.32-431.3.1.el6.x86_64
Indien u nog niet de laatste kernel versie geïnstalleerd heeft, kunt u dat nu gewoon doen. (yum update kernel*)
Installeer vervolgens (indien nog niet aanwezig) kexec tools:
# yum install kexec-tools
Controleer nu de kernel versie die klaar staat, maar nog niet geactiveerd is :
# kernelnieuw=`ls -t /boot/vmlinuz-* | sed “s/\/boot\/vmlinux-//g” | head -n1`
# echo $kernelnieuw
2.6.32-504.3.3.el6.x86_64
Nu komt de daadwerkelijke uitvoer van de herstart.
Eerst geven we door welke kernel we graag zouden willen opstarten :
# kexec -l /boot/vmlinuz-${kernelnieuw} –-initrd=/boot/initramfs-${kernelnieuw}.img –-exappend=”`cat /proc/cmdline`”
Vervolgens voeren de herinitialisatie uit:
# kexec -e
Schrik niet, u zult nu uw sessie kwijt zijn.
Even later kunt u alweer inloggen en controleren of de nieuwe kernel actief is :
# uname -r
2.6.32-504.3.3.el6.x86_64
Uw nieuwe kernel is nu geactiveerd met een minimum aan downtime.
Bekende foutmeldingen
UNABLE TO GATHER EFI DATA
Het kan voorkomen dat er tijdens de uitvoer van kexec -l de volgende melding getoont wordt :
UNABLE TO GATHER EFI DATA
Om na te gaan of dit genegeerd kan worden dient u te controleren of uw huidige server gebruik maakt van EFI of niet. Dit kunt u doen door te kijken of /sys/firmware/efi bestaat. Zo niet, dan kunt u zonder problemen doorgaan met de procedure. Is deze wel aanwezig, maar krijgt u toch de genoemde foutmelding, dan doet u er verstandiger aan om een normale herstart/reboot uit te voeren.