Chapitre 12. Configuration de kdump sur la ligne de commande
La mémoire pour kdump
est réservée lors du démarrage du système. La taille de la mémoire est configurée dans le fichier de configuration du Grand Unified Bootloader (GRUB) du système. La taille de la mémoire dépend de la valeur crashkernel=
spécifiée dans le fichier de configuration et de la taille de la mémoire physique du système.
12.1. Configuration de l'utilisation de la mémoire de kdump
Le paquetage kexec-tools
conserve les valeurs par défaut de réservation de la mémoire crashkernel
. Le service kdump
utilise la valeur par défaut pour réserver la mémoire crashkernel
pour chaque noyau.
L'allocation automatique de mémoire pour kdump
varie en fonction de l'architecture matérielle du système et de la taille de la mémoire disponible. Par exemple, sur l'architecture ARM 64 bits, les paramètres par défaut de crashkernel
ne fonctionnent que lorsque la mémoire disponible est supérieure à 1 Go. kexec-tools
par défaut, configure la réserve de mémoire suivante sur l'architecture ARM 64 bits :
crashkernel=1G-4G:256M,4G-64G:320M,64G:576M
Les besoins en mémoire du noyau de crash peuvent varier en fonction du matériel et des spécifications de la machine. Si la valeur par défaut de crashkernel
ne fonctionne pas sur votre système, vous pouvez exécuter la commande kdumpctl estimate
et demander une estimation approximative sans déclencher de crash. La valeur estimée de crashkernel
peut ne pas être exacte et peut servir de référence pour définir une valeur appropriée de crashkernel
.
L'option crashkernel=auto
de la ligne de commande de démarrage n'est plus prise en charge sur RHEL 9 et les versions ultérieures.
Conditions préalables
- Vous disposez des privilèges de root sur le système.
-
Satisfait aux exigences de
kdump
en ce qui concerne les configurations et les cibles. Pour plus de détails, voir Configurations et cibles kdump prises en charge -
Sur les systèmes IBM Z, assurez-vous que l'utilitaire
zipl
est installé.
Procédure
Configurer la valeur par défaut de
crashkernel
:# kdumpctl reset-crashkernel --kernel=ALL
(Facultatif) Pour utiliser une valeur personnalisée
crashkernel
:Configurer la réserve de mémoire nécessaire :
crashkernel=1G-4G:192M,4G-:256M
L'exemple réserve 192 Mo de mémoire si la quantité totale de mémoire du système est égale ou supérieure à 1 Go et inférieure à 4 Go. Si la quantité totale de mémoire est supérieure à 4 Go, 256 Mo sont réservés pour
kdump
.(Facultatif) Décaler la mémoire réservée :
Certains systèmes exigent de réserver de la mémoire avec un certain décalage fixe, car la réservation du noyau en cas de crash est très précoce, et il veut réserver une zone pour un usage spécial. Si le décalage est défini, la mémoire réservée commence à cet endroit. Pour décaler la mémoire réservée, utilisez la syntaxe suivante :
crashkernel=192M@16M
L'exemple ci-dessus réserve 192 Mo de mémoire en commençant par 16 Mo (adresse physique 0x01000000). Si le paramètre offset est fixé à 0 ou omis complètement,
kdump
décale automatiquement la mémoire réservée. Vous pouvez également décaler la mémoire lors de la définition d'une réservation de mémoire variable en spécifiant le décalage comme dernière valeur. Par exemple,crashkernel=1G-4G:192M,2G-64G:256M@16M
.
Mettre à jour la configuration du chargeur de démarrage :
# grubby --update-kernel ALL --args "crashkernel=<CUSTOM-VALUE>”
Sur les systèmes IBM Z qui utilisent le chargeur de démarrage zIPL, la commande ajoute un nouveau paramètre de noyau à chaque fichier
/boot/loader/entries/<ENTRY>.conf
.Sur les systèmes IBM Z, pour mettre à jour le menu de démarrage, exécutez la commande
zipl
sans spécifier d'options :# zipl
Redémarrez pour que les modifications soient prises en compte :
# reboot
Vérification
Activez la touche
sysrq
pour démarrer avec le noyaukdump
:# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
Cela oblige le noyau Linux à se planter et à copier le fichier
address-YYYY-MM-DD-HH:MM:SS/vmcore
à l'emplacement cible spécifié dans le fichier de configuration.Vérifiez que le fichier
vmcore
est déversé dans la cible comme spécifié dans le fichier/etc/kdump.conf
:$ ls /var/crash/127.0.0.1-2022-01-18-0 /var/crash/127.0.0.1-2022-01-18-05:23:10': kexec-dmesg.log vmcore vmcore-dmesg.txt
Dans cet exemple, le noyau enregistre le fichier
vmcore
dans le répertoire cible par défaut,/var/crash/
.