Was ist kdump und Kexec
Kdump ist der Crash-Dump-Mechanismus des Linux-Kernels. Im Falle eines Systemabsturzes stellt Kdump ein Speicherabbild (vmcore) bereit. Dieses Bild kann bei der Ermittlung der Unfallursache hilfreich sein. Es wird dringend empfohlen, die Kdump-Funktion zu aktivieren.
Kexec und Kdump sorgen zusammen für einen schnelleren Start und die Erstellung zuverlässiger Kernel-VMcores für Diagnosezwecke. Kexec ist ein Schnellstartmechanismus, 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. Der Crash-Dump wird aus dem Kontext eines frisch gebooteten Kernels und nicht aus dem Kontext des abgestürzten Kernels erfasst. Dieser zweite Kernel bootet mit sehr wenig Speicher und erfasst das Dump-Image.
Installation und Konfiguration von kdump
Um Kdump zu aktivieren und zu verwenden, installieren Sie das folgende Paket:
# yum install kexec-tools
Wenn Sie Kdump aktivieren, müssen Sie einen Teil des Systemspeichers für den Capture-Kernel reservieren. Dieser Teil des Speichers ist für andere Zwecke nicht verfügbar. Die Speichermenge, die für den Kdump-Kernel reserviert ist, wird durch den Boot-Parameter crashkernel repräsentiert. Dies wird an die Kernel-Zeile in der GRUB-Konfigurationsdatei /boot/grub2/grub.cfg angehängt . Das folgende Beispiel aktiviert Kdump und reserviert 128 MB Speicher:
linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=128M
Zusätzlich zum Reservieren von Speicher können Sie die Startadresse (Offset) dieses reservierten Speichers angeben. Wenn Sie beispielsweise die folgende Option zur Kernel-Zeile hinzufügen, werden 128 MB Speicher reserviert, beginnend bei der physischen Adresse 0x01000000 (16 MB):
crashkernel=128M@16M
– Um den Offset auf 48M einzustellen:
crashkernel=128M@48M
– Wenn Sie mehr als 128 GB RAM haben, verwenden Sie die folgende Einstellung:
crashkernel=512M@64M
– Wenn mehr Kontrolle über die Größe und Platzierung des reservierten Speichers benötigt wird, verwenden Sie das folgende Format:
crashkernel=range1:size1[,range2:size2,...][@offset]
– Der Wert range[n] gibt einen Wertebereich an, der mit der Größe des im System vorhandenen physischen RAM abgeglichen wird. Der entsprechende size[n]-Wert gibt die Menge des zu reservierenden Kexec-Speichers an.
– Das folgende Beispiel weist Kexec an, 64 MB RAM zu reservieren, wenn das System zwischen 512 MB und 2 GB Arbeitsspeicher enthält. Wenn das System über mehr als 2 GB physischen Speicher verfügt, reservieren Sie 128 MB:
crashkernel=512M-2G:64M,2G-:128M
– Auf x86_64-Systemen mit mindestens 2 GB Speicher können Sie Speicher für kdump automatisch zuweisen. Verwenden Sie den folgenden Parameter, um automatisch Speicher für kdump zuzuweisen:
crashkernel=auto
Aktiviere kdump
Nachdem Sie den Parameter crashkernel zur Datei /boot/grub2/grub.cfg hinzugefügt haben, starten Sie Ihr System neu, damit Speicher für den Capture-Kernel reserviert wird. Das „kostenlose –m ”-Befehl zeigt korrekt an, dass weniger Arbeitsspeicher für das System zur Verfügung steht.
Verwenden Sie den Befehl systemctl, um den Kdump-Dienst so zu aktivieren, dass er beim Booten startet. Verwenden Sie den Befehl systemctl, um den Kdump-Dienst zu starten.
# systemctl enable kdump # systemctl start kdump
Dadurch wird Ihr Kernel-kdump-Image über Kexec geladen, sodass Ihr System bereit ist, beim Absturz einen virtuellen Kern zu erfassen.
Crash-Dump erzwingen
Sie können die kdump-Konfiguration testen, indem Sie Ihr System mit dem folgenden Befehl zum Absturz bringen:
# echo c > /proc/sysrq-trigger
Dadurch wird eine Panikausgabe angezeigt, gefolgt von einem Neustart des Systems im Kdump-Kernel. Wenn der Startvorgang den Punkt erreicht, an dem der Kdump-Dienst gestartet wird, wird der virtuelle Kern auf die Festplatte an den Standardspeicherort /var/crash/[YYYY-MM-DD-HH:MM]/vmcore kopiert. Das System bootet dann wieder in den normalen Kernel.
Hinweis :Kdump wird auf Xen domU-Gästen nicht unterstützt. Virtualisierte Systeme können den Befehl xm dump-core für Panikattacken verwenden. CentOS / RHEL 7 :So konfigurieren Sie kdumpCentOS / RHEL 6 :So konfigurieren Sie kdump />Kdump-Konfigurationsdatei /etc/kdump.conf verstehen