kdump è un meccanismo avanzato di crash dump. Quando abilitato, il sistema viene avviato dal contesto di un altro kernel. Questo secondo kernel riserva una piccola quantità di memoria e il suo unico scopo è catturare l'immagine del core dump in caso di crash del sistema. Poiché essere in grado di analizzare il core dump aiuta in modo significativo a determinare la causa esatta dell'errore di sistema, si consiglia vivamente di abilitare questa funzione.
Per utilizzare il servizio kdump, devi avere installato il pacchetto kexec-tools. Se non è già installato, installa kexec-tools .
# yum install kexec-tools
Per configurare la quantità di memoria riservata al kernel kdump, modifica /etc/default/grub e modifica GRUB_CMDLINE_LINUX , imposta il parametro crashkernel=[size] nell'elenco delle opzioni del kernel.
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"
Esegui il comando seguente per rigenerare la configurazione di grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Riavvia il sistema per rendere effettivo il parametro del kernel.
# shutdown -r now
Per configurare kdump, dobbiamo modificare il file di configurazione /etc/kdump.conf . L'opzione predefinita per memorizzare il file vmcore è /var/crash/ directory del file system locale. Per modificare la directory locale in cui salvare il core dump e sostituire il valore con il percorso della directory desiderato.
Ad esempio:
path /usr/local/cores
Facoltativamente, puoi anche salvare il core dump direttamente in una partizione non elaborata.
Ad esempio:
raw /dev/sdb4
Per archiviare il dump su una macchina remota utilizzando il protocollo NFS, rimuovere il segno hash ("#") dall'inizio della riga #nfs my.server.com:/export/tmp e sostituire il valore con un nome host valido e percorso della directory.
Ad esempio:
nfs my.server.com:/export/tmp
Per ridurre le dimensioni del file di dump di vmcore, kdump ti consente di specificare un'applicazione esterna per comprimere i dati e, facoltativamente, di tralasciare tutte le informazioni irrilevanti. Attualmente, l'unico core collector completamente supportato è makedumpfile.
Per abilitare il core collector, modificare il file di configurazione /etc/kdump.conf, rimuovere l'hash ("#") dall'inizio del #core_collector makedumpfile -c –message-level 1 -d 31 riga e modifica le opzioni della riga di comando come descritto di seguito.
Ad esempio:
core_collector makedumpfile -c
Possiamo anche specificare l'azione predefinita da eseguire quando il core dump non viene generato nella posizione desiderata. Se non viene specificata alcuna azione predefinita, "reboot" viene considerato predefinito.
Ad esempio:
default halt
Controlla e assicurati che la riga di comando del kernel includa la configurazione di kdump e che la memoria sia riservata per il crash del kernel:
# 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
Imposta il servizio kdump può essere avviato al riavvio del sistema.
# systemctl enable kdump.service
Per avviare il servizio nella sessione corrente, utilizzare il comando seguente:
# systemctl start kdump.service
Per testare la configurazione, possiamo riavviare il sistema con kdump abilitato e assicurarci che il servizio sia in esecuzione.
Ad esempio:
# 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.
Quindi digita i seguenti comandi al prompt della shell:
# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
Ciò forzerà il crash del kernel Linux e il file address-YYYY-MM-DD-HH:MM:SS/vmcore verrà copiato nella posizione che hai selezionato nella configurazione (cioè in /var/crash/ da predefinito)
CentOS / RHEL 6 :Come configurare kdumpCentOS / RHEL 5 :Come configurare kdump
Come configurare Kdump su SuSE Linux Enterprise System 10 e 11