Kexec > Halt au reboot

Rebooter, redémarrer … est une opération qui ne devrait plus se dérouler sur nos ordinateurs et serveurs informatiques. Même les opérations hardware peuvent se faire de plus en plus à chaud… c’est une question de prix. Les amoureux de Linux savent bien qu’il ne faut pas rebooter pour solutionner un problème, et ont même converti les Microsoft depuis XP/2003).

Le redémarrage de serveur peut prendre du temps: plus d’une minute sur des serveurs avant le chargement du boot loader.

Mais pour changer de kernel sous linux au rythme des changements de versions … il faut bien effectuer cette maintenance !

Et c’est là que je dis halt au reboot 🙂

kexec (kernel execution) permet de charger un kernel en écrasant le kernel existant. Le système fait un reboot software en passant par init: il faut recharger les modules, les services …

Il faut faire attention, car les périphériques peuvent trouver ce fonctionnement anormal et avoir des comportements étranges, mais pour moi cela fonctionne bien.

Kexec n’est pas fait que pour le reboot software, il permet aussi d’améliorer le débogage en cas de plantage de kernel. (cela n’arrive que si vous bidouillez les sources ou si vous jouez avec un fer à souder). Kexec permet aussi de définir un kernel à lancer après un ‘panic’.

Pour activer cette fonctionnalité il faut un kernel >2.6.13 et installer kexec-tools pour avoir l’interface de communication avec ce module kernel.

[ccN_bash]

kexec -l /boot/vmlinuz –initrd « /boot/initrd » #pour charger

kexec -e # pour lancer le reboot software

#kexec -f -e # pour charger le nouveau kernel

# attention à la casse si vous avez des modules

[/ccN_bash]

Par contre, cela ne permet pas de conserver l’uptime… 🙂