Kdump ist ein fortschrittlicher Crash-Dump-Mechanismus. Wenn aktiviert, wird das System aus dem Kontext eines anderen Kernels gebootet. Dieser zweite Kernel reserviert eine kleine Menge an Speicher, und sein einziger Zweck besteht darin, das Core-Dump-Image zu erfassen, falls das System abstürzt. Da die Analyse des Core-Dumps wesentlich dazu beiträgt, die genaue Ursache des Systemausfalls zu ermitteln, wird dringend empfohlen, diese Funktion zu aktivieren.
1. Installieren Sie die kexec-Tools
Kexec ist ein Fastboot-Mechanismus, der es ermöglicht, einen Linux-Kernel aus dem Kontext eines bereits laufenden Kernels zu booten, ohne das BIOS zu durchlaufen. Kdump verwendet kexec, um in einen zweiten Kernel zu booten, wenn das System abstürzt.
# 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%]
2. Prüfen Sie die Datei /boot/config-`uname -r`
Die angegebenen Werte sollten anzeigen, dass kexec aktiviert ist und dieser Kernel als Crash-Kernel verwendet werden kann:
# cat /boot/config-`uname -r` CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y ...
3. Ändern Sie den Systemkern, um Speicherplatz für den Absturzkern zu reservieren
Bearbeiten Sie die Datei /etc/grub.conf und fügen Sie „crashkernel=128M@16M“ zur Kernel-Zeile hinzu, um 128 MB Speicher zu reservieren, beginnend bei der physischen Adresse 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 ...
Die Menge des reservierten Speichers kann je nach Speicherkapazität des Systems variieren.
4. Geben Sie an, wo der virtuelle Kern erstellt werden soll
In der Datei /etc/kdump.conf können verschiedene Arten von Dump-Zielspeicherorten angegeben werden. In dieser Datei können Sie ein Verzeichnis Ihrer Wahl angeben. Zum Beispiel:
path /usr/local/cores
Es folgt ein Beispieleintrag, der NFS als Speicherort für das Dump-Ziel verwendet. Unten wird beispielsweise das Dateisystem gemountet und
die vmcore-Datei auf den NFS-Server kopiert
net my.server.com:/export/tmp
Weitere Optionen finden Sie in /etc/kdump.conf.
5. Aktualisieren Sie die kdump-Konfigurationsdatei – /etc/sysconfig/kdump (optional)
Diese Datei definiert die Dump-Capture-Kernel-Spezifikation, einschließlich Name/Speicherort, und Befehlszeile für den Kernel, wenn er sich vom aktuell laufenden Kernel unterscheiden soll.
# 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
6. Aktivieren Sie den kdump-Dienst
Set kdump-Dienst kann beim Systemneustart gestartet werden.
# chkconfig kdump on
Hinweis:Es kann nicht gestartet werden, da der neue Kernel-Parameter noch nicht wirksam ist.
7. Starten Sie das System neu, damit die kdump-Konfiguration wirksam wird
Stellen Sie sicher, dass kdump aktiv ist:
# 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
8. Testen Sie kdump, indem Sie das System zum Absturz bringen
# echo c > /proc/sysrq-trigger
Dies verursacht eine Kernel-Panik, gefolgt von einem Neustart des Systems in den kdump-Kernel. Wenn der Startvorgang den Punkt erreicht, an dem der kdump-Dienst gestartet wird, sollte die vmcore-Datei auf die Festplatte an den in der Datei /etc/kdump.conf angegebenen Speicherort kopiert werden.
CentOS / RHEL 6 :So konfigurieren Sie kdumpCentOS / RHEL 7 :So konfigurieren Sie kdump
So konfigurieren Sie Kdump auf SuSE Linux Enterprise System 10 und 11