Kexec : optimisez vos temps de boot
Contents
1 Introduction
kexec es un outil permettant de rebooter une machine sans passer par toute la couche hardware. C'est à dire qu'il va couper tous les services, descendre les init (sysV) pour arriver au bootloader. Ensuite il démarrera normalement et nous nous serons alors affranchit de la partie reboot hardware.
Cette technique peut s'avérer très pratique sur des systèmes de Haute Disponibilité ou le temps de downtime est très précieux.
2 Installation
2.1 Debian
Sur Debian, vous devez disposer de ce package :
aptitude install kexec-tools |
2.2 Red Hat
Sur Red Hat, vous devez avoir ce package installé :
yum install kexec-tools |
3 Configuration
3.1 Debian
Il existe un fichier de configuration qui va permettre de faire quelques modifications comme le chargement d'un kernel plus récent s'il en existe un. Cette technique n'est pas spécialement recommandée car certaines applications le vivent mal, même si c'est assez rare. Cette option n'est donc pas activée par défaut, néanmoins, sachez que vous pouvez l'activer :
3.2 Red Hat
Tout comme Debian, Red Hat a sa configuration pour kexec :
Les options par défaut, n'ont pas besoin d'être touchées.
4 Utilisation
4.1 Debian
Lorsque kexec est installé, la commande reboot fait appel à kexec et donc reboot nativement via kexec. Donc voici les commandes utiles :
- reboot : exécute un reboot rapide de la machine via kexec
- coldreboot : effectue un reboot standard comprenant le reboot hardware
4.2 Red Hat
Pour Red Hat, lancez cette commande :
kexec |
kexec -l /boot/vmlinuz-`uname -r` --initrd=/boot/initramfs-`uname -r`.img --command-line="`sed 's/ rhgb\| quiet//g' /proc/cmdline`" |
Maintenant, pour lancez un fast reboot, utilisez le reboot standard.
J'ai fais un petit script permettant de faire tout ça :
5 Ressources
http://wiki.debian.org/BootProcessSpeedup#Using_kexec_for_warm_reboots
http://archive09.linux.com/feature/150202.html
http://fedoraproject.org/wiki/Kernel/kexec
http://fedoraproject.org/wiki/Archive:FC6KdumpKexecHowTo