kdump est un mécanisme avancé de vidage sur incident. Lorsqu'il est activé, le système est démarré à partir du contexte d'un autre noyau. Ce deuxième noyau réserve une petite quantité de mémoire et son seul but est de capturer l'image de vidage de mémoire en cas de panne du système. Étant donné que la possibilité d'analyser le vidage mémoire aide considérablement à déterminer la cause exacte de la défaillance du système, il est fortement recommandé d'activer cette fonctionnalité.
Pour utiliser le service kdump, vous devez avoir installé le package kexec-tools. S'il n'est pas déjà installé, installez les kexec-tools .
# yum install kexec-tools
Pour configurer la quantité de mémoire réservée au noyau kdump, modifiez /etc/default/grub et modifiez GRUB_CMDLINE_LINUX , définissez le paramètre crashkernel=[size] sur la liste des options du noyau.
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=128M vconsole.keymap=us rhgb quiet" GRUB_DISABLE_RECOVERY="true"
Exécutez la commande ci-dessous pour régénérer la configuration grub :
# grub2-mkconfig -o /boot/grub2/grub.cfg
Redémarrez le système pour que le paramètre du noyau prenne effet.
# shutdown -r now
Pour configurer kdump, nous devons éditer le fichier de configuration /etc/kdump.conf . L'option par défaut est de stocker le fichier vmcore est le /var/crash/ répertoire du système de fichiers local. Pour changer le répertoire local dans lequel le vidage de mémoire doit être enregistré et remplacer la valeur par le chemin de répertoire souhaité.
Par exemple :
path /usr/local/cores
En option, vous pouvez également enregistrer le vidage de mémoire directement sur une partition brute.
Par exemple :
raw /dev/sdb4
Pour stocker le vidage sur une machine distante à l'aide du protocole NFS, supprimez le signe dièse ("#") au début de la ligne #nfs my.server.com:/export/tmp et remplacez la valeur par un nom d'hôte valide et chemin du répertoire.
Par exemple :
nfs my.server.com:/export/tmp
Pour réduire la taille du fichier de vidage vmcore, kdump vous permet de spécifier une application externe pour compresser les données et éventuellement d'omettre toutes les informations non pertinentes. Actuellement, le seul collecteur de base entièrement pris en charge est makedumpfile.
Pour activer le collecteur de base, modifiez le fichier de configuration /etc/kdump.conf, supprimez le signe dièse ("#") au début du #core_collector makedumpfile -c –message-level 1 -d 31 ligne et modifiez les options de ligne de commande comme décrit ci-dessous.
Par exemple :
core_collector makedumpfile -c
Nous pouvons également spécifier l'action par défaut à effectuer lorsque le vidage mémoire ne parvient pas à se générer à l'emplacement souhaité. Si aucune action par défaut n'est spécifiée, "reboot" est supposé par défaut.
Par exemple :
default halt
Vérifiez et assurez-vous que la ligne de commande du noyau inclut la configuration de kdump et que la mémoire a été réservée pour le noyau en panne :
# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.8.13-98.2.1.el7uek.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root crashkernel=128M rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet nomodeset
Le service Set kdump peut être démarré lors du redémarrage du système.
# systemctl enable kdump.service
Pour démarrer le service dans la session en cours, utilisez la commande suivante :
# systemctl start kdump.service
Pour tester la configuration, nous pouvons redémarrer le système avec kdump activé et nous assurer que le service est en cours d'exécution.
Par exemple :
# systemctl is-active kdump active
# service kdump status Redirecting to /bin/systemctl status kdump.service kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled) Active: active (exited) since 一 2015-08-31 05:12:57 GMT; 1min 6s ago Process: 19104 ExecStop=/usr/bin/kdumpctl stop (code=exited, status=0/SUCCESS) Process: 19116 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS) Main PID: 19116 (code=exited, status=0/SUCCESS) Aug 31 05:12:57 ol7 kdumpctl[19116]: kexec: loaded kdump kernel Aug 31 05:12:57 ol7 kdumpctl[19116]: Starting kdump: [OK] Aug 31 05:12:57 ol7 systemd[1]: Started Crash recovery kernel arming.
Tapez ensuite les commandes suivantes à l'invite du shell :
# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
Cela forcera le noyau Linux à planter et le fichier address-YYYY-MM-DD-HH:MM:SS/vmcore sera copié à l'emplacement que vous avez sélectionné dans la configuration (c'est-à-dire vers /var/crash/ par par défaut)
CentOS / RHEL 6 :Comment configurer kdumpCentOS / RHEL 5 :Comment configurer kdump
Comment configurer Kdump sur SuSE Linux Enterprise System 10 et 11