简介
本文档介绍如何解决由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端的一个内核问题,因此我们能够继续进一步调查。