GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie die Early-kdump-Unterstützungsfunktion in CentOS/RHEL 8

Was ist frühe kdump-Unterstützung?

In früheren Versionen von CentOS/RHEL (5/6/7) startete der kdump-Dienst sehr spät in der Startsequenz. Daher gehen Informationen zu frühen Abstürzen während des Bootens verloren. Ab CentOS/RHEL 8 wurde ein neuer kdump-Mechanismus namens „early kdump support“ eingeführt, um dieses Problem anzugehen. Early Kdump speichert die vmlinuz und initramfs des Crash-Kernels innerhalb der initramfs des bootenden Kernels und lädt sie während der frühen Boot-Phase direkt in den reservierten Speicher (crashkernel).

Das „kexec-tools“-Paket hat jetzt 2 zusätzliche Module, um den Crash-Kernel und initramfs so früh wie möglich während der Boot-Sequenz zu laden, um den Kernel-Crash-Dump des bootenden Kernels zu erfassen.

/usr/lib/dracut/modules.d/99earlykdump/early-kdump.sh
/usr/lib/dracut/modules.d/99earlykdump/module-setup.sh
# dracut --list-modules | grep earlykdump
earlykdump

Standardmäßig ist die frühe kdump-Unterstützung deaktiviert und wir müssen sie manuell aktivieren. Es unterstützt auch alle Dump-Ziele und Konfigurationsparameter, die von den früheren kdump-Konfigurationen in CentOS/RHEL 5,6,7 unterstützt wurden.

Kdump-Dienst konfigurieren

1. Lesen Sie den folgenden Post zur kdump-Konfiguration, um kdump zu konfigurieren und sicherzustellen, dass der kdump-Dienst ausgeführt wird.

CentOS / RHEL 7 :So konfigurieren Sie kdump
# systemctl enable --now kdump.service
# systemctl status kdump.service
● kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2019-08-19 23:42:11 IST; 16h ago
Main PID: 1255 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 26213)
Memory: 0B
CGroup: /system.slice/kdump.service

Aug 19 23:42:09  systemd[1]: Starting Crash recovery kernel arming...
Aug 19 23:42:11  kdumpctl[1255]: Kdump already running: [WARNING]
Aug 19 23:42:11  systemd[1]: Started Crash recovery kernel arming.

2. Listen Sie die Early-Dump-Module auf, die im System verfügbar sind

# dracut --list-modules | grep earlykdump
earlykdump 

3. Hängen Sie den Parameter rd.earlykdump an zu kernelopts Zeile in /boot/grub2/grubenv Datei:

# cat /boot/grub2/grubenv
# GRUB Environment Block
saved_entry=4eb68bf18e86437d9c957ff4863a3288-4.18.0-80.el8.x86_64
kernelopts=root=/dev/mapper/ol-root ro crashkernel=auto resume=/dev/mapper/ol-swap rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rd.earlykdump
boot_success=0
###################################################################################################
###################################################################################################
###################################################################################################

iniramfs neu erstellen

1. Der nächste Schritt besteht nun darin, initramfs neu zu erstellen, um frühe kdump-Module hinzuzufügen:

# lsinitrd | grep -i early
# dracut -f --add earlykdump

Zum Beispiel:

# lsinitrd |grep -i early
Arguments: -f --add 'earlykdump'
earlykdump
-rwxr-xr-x 1 root root 1940 Jun 17 10:29 usr/lib/dracut/hooks/cmdline/00-early-kdump.sh 

2. Starten Sie die Box neu, um die Änderungen zu laden

# reboot

3. Sobald der Server wieder online ist, prüfen Sie den Status von early-kdump:

# journalctl -x |grep -i early-kdump
Aug 20 16:08:09 [HOSTNAME] dracut-cmdline[196]: early-kdump is enabled.
Aug 20 16:08:10 [HOSTNAME] dracut-cmdline[196]: kexec: loaded early-kdump kernel

Testen von frühem kdump

Lassen Sie uns nun den frühen kdump mit benutzerdefinierten systemd-Unit-Dateien testen und die Panik mit SysRq zum Absturz bringen.

1. Erstellen Sie einen Unit-Dateinamen /etc/systemd/system/test_early_kdump.service .

# touch /etc/systemd/system/test_early_kdump.service

2. Stellen Sie die entsprechenden Berechtigungen bereit:

# chmod 664 /etc/systemd/system/test_early_kdump.service

Die Unit-Datei sollte wie folgt aussehen:

# cat /etc/systemd/system/test_early_kdump.service
[Unit]
Description=test_early_kdump Service
Before=kdump.service

[Service]
ExecStart=/usr/local/test_early_kdump.sh
Type=simple

[Install]
WantedBy=default.target

3. Erstellen Sie dann ein weiteres Skript /usr/local/test_early_kdump.sh Datei, um den sysrq-Absturzbefehl zu übergeben:

# cat /usr/local/test_early_kdump.sh
#!/bin/bash
/usr/bin/echo c > /proc/sysrq-trigger

4. Geben Sie dem Skript die Ausführungsberechtigung:

# chmod +x /usr/local/test_early_kdump.sh

5. Laden Sie den systemd-Daemon neu:

# systemctl daemon-reload
WICHTIG :Starten Sie den Dienst test_early_kdump.service (Testabsturz) nicht, sonst stürzt das System sofort ab.

6. Aktivieren Sie diesen test_early_kdump-Dienst auf Boot-Ebene:

# systemctl enable test_early_kdump.service

7. Starten Sie das System neu:

# reboot
Hinweis :Während das System gemäß dem benutzerdefinierten Testskript hochfährt, wird es einen Absturz auslösen und immer wieder neu starten.

8. Deaktivieren Sie die benutzerdefinierten Unit- und Skriptdateien und entfernen Sie sie nach dem Test. Booten Sie das System im Rettungsmodus mit „systemd.unit=rescue.target“. “ und deaktivieren Sie den Dienst „test_early_kdump“ beim Booten.

# systemctl disable test_early_kdump.service

Der obige Befehl deaktiviert die benutzerdefinierte Einheitendatei. Beim nächsten Mal bootet das System normal.

So booten Sie in CentOS/RHEL 7 und 8 über Systemd in den Rettungsmodus oder Notfallmodus

9. Entfernen Sie die benutzerdefinierten Einheitendateien und die Absturzskriptdatei, wenn der TEST-Absturz abgeschlossen ist:

# rm /etc/systemd/system/test_edump.service
rm: remove regular file '/etc/systemd/system/test_edump.service'? y 
# rm /usr/local/test_early_kdump.sh

10. Prüfen Sie /var/crash/ Ordner gemäß der für den vmcore genannten kdump.conf (Pfad /var/crash):

# ls -l /var/crash/127.0.0.1-2019-08-20-17:09:23
total 56648
-rw-------. 1 root root 57959829 Aug 20 17:09 vmcore
-rw-r--r--. 1 root root 41452 Aug 20 17:09 vmcore-dmesg.txt


Linux
  1. So konfigurieren Sie Proxy in CentOS/RHEL/Fedora

  2. CentOS / RHEL 6 :So konfigurieren Sie kdump

  3. CentOS / RHEL 7 :So konfigurieren Sie kdump

  4. CentOS / RHEL 5:So konfigurieren Sie kdump

  5. CentOS / RHEL :So konfigurieren Sie einen DHCP-Server

So konfigurieren Sie NIC-Teaming unter CentOS 8 / RHEL 8

So konfigurieren Sie die IP-Adresse in CentOS 7 / RHEL 7 und CentOS 6 / RHEL 6

So konfigurieren Sie eine statische IP-Adresse in CentOS 7 / RHEL 7

So konfigurieren Sie eine statische IP-Adresse in CentOS 8 / RHEL 8

So installieren und konfigurieren Sie Ansible unter CentOS 8 / RHEL 8

So konfigurieren Sie VNC Server unter CentOS/RHEL 6