Einleitung
In diesem Dokument wird beschrieben, wie Sie das durch den CentOS-Kernelabsturz verursachte Problem eines VM-Neustarts bei CPS(Cisco Policy Suite) beheben.
Problem
Alle CPS VMs (qns, lb, pcrfclient usw.) werden auf CentOS-Basis ausgeführt. Diese VMs können neu gestartet werden, wenn auf CentOS-Seite ein Problem vorliegt, anstatt auf CPS-Anwendungsseite. Wenn ein Neustart aufgrund eines Problems mit dem CentOS-Kernel auftritt, kann die Ursache nicht gefunden werden, selbst wenn der CPS capture_env untersucht wird. Die capture_env-Protokolle enthalten keine Fehlerprotokolle vom neu gestarteten virtuellen System während des Neustarts. In solchen Fällen können die Logs unter /var/crash zur Untersuchung verwendet werden.
Lösung
CentOS kann einen Kernel-Absturzabbild erzeugen, wenn ein Problem mit dem Kernel auftritt. Standardmäßig ist CPS so konfiguriert, dass es Kernel-Crash-Dumps für alle VMs sammelt.
Der Status kann mit diesem Befehl überprüft werden.
[root@dc1-qns01 ~]# 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 Tue 2023-01-10 07:29:35 UTC; 4 months 4 days ago
Main PID: 1023 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 75300)
Memory: 0
CGroup: /system.slice/kdump.service
Wenn bei aktiviertem kdump.service ein Kernelabsturz auftritt, wird unter /var/crash ein Verzeichnis mit dem Namen "address-YYYY-MM-DD-HH:MM:SS" generiert. CentOS generiert 2 Dateien in diesem Verzeichnis.
[root@dc1-lb02 127.0.0.1-2022-10-18-06:18:41]# pwd
/var/crash/127.0.0.1-2022-10-18-06:18:41
[root@dc1-lb02 127.0.0.1-2022-10-18-06:18:41]# ls -rtl
total 161436
-rw-r--r-- 1 root root 89787 Oct 18 2022 vmcore-dmesg.txt
-rw------- 1 root root 165215218 Oct 18 2022 vmcore
- vmcore:
Eine Datei, die den Inhalt des Kernelspeichers als Binärdatei speichert. Die Analyse erfordert Werkzeuge wie kernel-debuginfo und crash.
- vmcore-dmesg.txt:
dmesg-Textdatei bei einem Absturz.
Im CPS-seitigen Protokoll wurden beispielsweise Fehlerprotokolle kurz vor dem Neustart nicht aus Protokollen der VM bestätigt, die neu gestartet wurde. Analyseergebnis von VMWare-Seite, der Neustart wurde mit diesem Fehlerprotokoll verursacht, die durch Gast-Betriebssystem verursacht würde.
The CPU has been disabled by the guest operating system. Power off or reset the virtual machine.
Überprüfen Sie /var/crash des neu gebooteten virtuellen Rechners, ob ein Verzeichnis vorhanden ist, das mit der Zeit des Neustarts übereinstimmt. Es stellte sich heraus, dass der Neustart auf ein Kernel-Problem auf CentOS-Seite zurückzuführen war, und wir konnten weitere Untersuchungen durchführen.