目录

简介

问题

解决方案

简介

本文档介绍如何解决由CentOS内核崩溃引起的CPS(Cisco Policy Suite)VM重启问题。

问题

每个CPS虚拟机（qns、lb、pcrfclient等）都基于CentOS运行。这些VM可能由于CentOS端的问题而重新启动，而不是CPS应用端的问题。如果由于CentOS内核的问题而重新启动，即使对CPS capture_env进行了调查，也无法找到根本原因。在重新启动期间，capture_env日志不包含来自已重新启动虚拟机的任何错误日志。在这种情况下，/var/crash下的日志可用于调查。

解决方案

CentOS可以在内核出现问题时生成内核崩溃转储。默认情况下，CPS配置为收集所有VM的内核崩溃转储。

可以使用此命令检查状态。

[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

如果在启用kdump.service的情况下发生内核崩溃，则会在/var/crash下生成名为“address-YYYY-MM-DD-HH:MM:SS”的目录。CentOS在此目录下生成2个文件。

[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:

将内核内存的内容存储为二进制文件的文件。分析需要内核调试和崩溃等工具。

- vmcore-dmesg.txt:

崩溃时的dmesg文本文件。

例如，在CPS端的日志中，未从重新启动的VM的日志中确认重新启动之前的错误日志。分析结果来自VMWare端，重新启动是由访客操作系统引起的此错误日志引起的。

The CPU has been disabled by the guest operating system. Power off or reset the virtual machine.

如果存在与重新启动时间匹配的目录，请检查重新启动的VM的/var/crash。事实证明，重新启动是由于CentOS端的一个内核问题，因此我们能够继续进一步调查。