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.
Kexec è un meccanismo di avvio rapido che consente di avviare un kernel Linux dal contesto di un kernel già in esecuzione senza passare dal BIOS. Kdump usa kexec per avviare un secondo kernel ogni volta che il sistema va in crash.
# up2date --nox -u kexec-tools Fetching Obsoletes list for channel: el5_i386_latest... ######################################## Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- kexec-tools 1.101 194.4.el5.0.1 i386 Testing package set / solving RPM inter-dependencies... ######################################## kexec-tools-1.101-194.4.el5 ########################## Done. Preparing ########################################### [100%] Installing... 1:kexec-tools ########################################### [100%]
I valori specificati dovrebbero indicare che kexec è abilitato e questo kernel può essere utilizzato come kernel di arresto anomalo:
# cat /boot/config-`uname -r` CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y ...
Modifica il file /etc/grub.conf e aggiungi "crashkernel=128M@16M" alla riga del kernel per riservare 128 MB di memoria, a partire dall'indirizzo fisico 0x01000000 (16 MB)
# vi /etc/grub.conf ... title Red Hat Enterprise Linux Server (2.6.18-8.el5) root (hd0,0) kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M initrd /initrd-2.6.18-8.el5.img ...
La quantità di memoria riservata può variare a seconda della quantità di memoria sul sistema.
È possibile specificare diversi tipi di posizioni di destinazione del dump nel file /etc/kdump.conf. È possibile specificare una directory di propria scelta in questo file. Ad esempio:
path /usr/local/cores
Di seguito è riportata una voce di esempio che utilizza NFS come posizione per la destinazione del dump. Ad esempio, di seguito monterà il filesystem e copierà
il file vmcore sul server NFS
net my.server.com:/export/tmp
Per ulteriori opzioni, controlla /etc/kdump.conf.
Questo file definisce le specifiche del kernel per l'acquisizione del dump, inclusi il nome/la posizione e la riga di comando per il kernel se deve essere diverso dal kernel attualmente in esecuzione.
# cat /etc/sysconfig/kdump KDUMP_KERNELVER="" KDUMP_COMMANDLINE="" KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1" KEXEC_ARGS=" --args-linux" KDUMP_BOOTDIR="/boot" KDUMP_IMG="vmlinuz"
KDUMP_COMMANDLINE modify the default crash kernel command line from /proc/cmdline KDUMP_COMMANDLINE_APPEND adds irqpoll and maxcpus=1 to the command line for the crash kernel KEXEC_ARGS adds --args-linux to the kexec command line KDUMP_BOOTDIR is set to /boot KDUMP_IMG specifies the crash kernel image name, defaulting to /boot/vmlinuz with the current kernel version appended
Imposta il servizio kdump può essere avviato al riavvio del sistema.
# chkconfig kdump on
Nota:non può essere avviato in quanto il nuovo parametro del kernel non è ancora attivo.
Verifica che kdump sia attivo:
# cat /proc/cmdline ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M
# /etc/init.d/kdump status Kdump is operational
# /sbin/chkconfig --list |grep kdump kdump 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# echo c > /proc/sysrq-trigger
Questo provoca il panico del kernel, seguito dal riavvio del sistema nel kernel kdump. Quando il processo di avvio arriva al punto in cui avvia il servizio kdump, il file vmcore dovrebbe essere copiato su disco nella posizione specificata nel file /etc/kdump.conf.
CentOS / RHEL 6 :Come configurare kdumpCentOS / RHEL 7 :Come configurare kdump
Come configurare Kdump su SuSE Linux Enterprise System 10 e 11