Qu'est-ce que kdump et Kexec ?
Kdump est le mécanisme de vidage sur incident du noyau Linux. En cas de plantage du système, Kdump fournit une image de vidage mémoire (vmcore). Cette image peut aider à déterminer la cause de l'accident. Il est fortement recommandé d'activer la fonctionnalité Kdump.
Kexec et Kdump assurent ensemble un démarrage plus rapide et la création de noyaux vmcore fiables à des fins de diagnostic. Kexec est un mécanisme de démarrage rapide qui permet de démarrer un noyau Linux à partir du contexte d'un noyau déjà en cours d'exécution sans passer par le BIOS. Kdump utilise Kexec pour démarrer dans un deuxième noyau chaque fois que le système plante. Le vidage sur incident est capturé à partir du contexte d'un noyau fraîchement démarré et non à partir du contexte du noyau en panne. Ce deuxième noyau démarre avec très peu de mémoire et capture l'image de vidage.
Installation et configuration de kdump
Pour activer et utiliser Kdump, installez le package suivant :
# yum install kexec-tools
L'activation de Kdump nécessite que vous réserviez une partie de la mémoire système pour le noyau de capture. Cette partie de la mémoire n'est pas disponible pour d'autres utilisations. La quantité de mémoire réservée au noyau Kdump est représentée par le paramètre de démarrage crashkernel. Ceci est ajouté à la ligne du noyau dans le fichier de configuration GRUB, /boot/grub2/grub.cfg . L'exemple suivant active Kdump et réserve 128 Mo de mémoire :
linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=128M
En plus de réserver de la mémoire, vous pouvez désigner l'adresse de début (décalage) de cette mémoire réservée. Par exemple, l'ajout de l'option suivante à la ligne du noyau réserve 128 Mo de mémoire, à partir de l'adresse physique 0x01000000 (16 Mo) :
crashkernel=128M@16M
– Pour régler le décalage sur 48M :
crashkernel=128M@48M
– Si vous disposez de plus de 128 Go de RAM, utilisez le paramètre suivant :
crashkernel=512M@64M
– Si vous avez besoin de plus de contrôle sur la taille et l'emplacement de la mémoire réservée, utilisez le format suivant :
crashkernel=range1:size1[,range2:size2,...][@offset]
– La valeur range[n] spécifie une plage de valeurs qui sont comparées à la quantité de RAM physique présente dans le système. La valeur size[n] correspondante spécifie la quantité de mémoire Kexec à réserver.
– L'exemple suivant indique à Kexec de réserver 64 Mo de RAM si le système contient entre 512 Mo et 2 Go de mémoire. Si le système contient plus de 2 Go de mémoire physique, réservez 128 Mo :
crashkernel=512M-2G:64M,2G-:128M
– Sur les systèmes x86_64 avec au moins 2 Go de mémoire, vous pouvez allouer automatiquement de la mémoire pour kdump. Utilisez le paramètre suivant pour allouer automatiquement de la mémoire pour kdump :
crashkernel=auto
Activation de kdump
Après avoir ajouté le paramètre crashkernel au fichier /boot/grub2/grub.cfg, redémarrez votre système afin que la mémoire soit réservée au noyau de capture. Le "gratuit –m " La commande indique correctement que moins de mémoire est disponible pour le système.
Utilisez la commande systemctl pour permettre au service Kdump de démarrer au démarrage. Utilisez la commande systemctl pour démarrer le service Kdump.
# systemctl enable kdump # systemctl start kdump
Cela charge votre image kernel-kdump via Kexec, laissant votre système prêt à capturer un vmcore en cas de plantage.
Générer un vidage sur incident forcé
Vous pouvez tester la configuration de kdump en forçant le plantage de votre système à l'aide de la commande suivante :
# echo c > /proc/sysrq-trigger
Cela provoque l'affichage d'une sortie de panique, suivie du redémarrage du système dans le noyau Kdump. Lorsque le processus de démarrage arrive au point où il démarre le service Kdump, le vmcore est copié sur le disque à l'emplacement par défaut, /var/crash/[YYYY-MM-DD-HH:MM]/vmcore. Le système redémarre ensuite dans le noyau normal.
Remarque :Kdump n'est pas pris en charge sur les invités Xen domU. Les systèmes virtualisés peuvent utiliser la commande xm dump-core pour les paniques.CentOS / RHEL 7 :Comment configurer kdumpCentOS / RHEL 6 :Comment configurer kdump
CentOS / RHEL 5 :Comment configurer kdump
/>Comprendre le fichier de configuration de kdump /etc/kdump.conf