Introducción
Este documento describe cómo resolver el problema de reinicio de VM de CPS(Cisco Policy Suite) causado por el desperfecto del kernel de CentOS.
Problema
Cada VM de CPS (qns,lb,pcrfclient, etc.) se ejecuta según CentOS. Estas máquinas virtuales se pueden reiniciar debido a un problema del lado de CentOS en lugar de un problema del lado de la aplicación CPS. Si se produce un reinicio debido a un problema con el kernel de CentOS, no se puede encontrar la causa raíz aunque se investigue el comando capture_env de CPS. Los registros capture_env no contienen ningún registro de errores de la VM reiniciada durante el reinicio. En tales casos, los registros bajo /var/crash pueden ser usados para la investigación.
Solución
CentOS puede generar un volcado de memoria del núcleo cuando ocurre un problema con el núcleo. De forma predeterminada, CPS está configurado para recopilar volcados de memoria del kernel para todas las VM.
El estado se puede comprobar con este comando.
[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
Si se produce un desperfecto del núcleo con kdump.service habilitado, se genera un directorio con el nombre "address-YYYY-MM-DD-HH:MM:SS" bajo /var/crash. CentOS genera 2 archivos en este directorio.
[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:
Archivo que almacena el contenido de la memoria del núcleo como archivo binario. El análisis requiere herramientas como kernel-debuginfo y crash.
- vmcore-dmesg.txt:
archivo de texto dmesg cuando se produce un crash.
Por ejemplo, en el registro del lado de CPS, los registros de errores justo antes del reinicio no se confirmaron a partir de los registros de la VM que se reinició. Resultado del análisis del lado VMWare, el reinicio fue causado por este registro de errores que sería causado por el SO invitado.
The CPU has been disabled by the guest operating system. Power off or reset the virtual machine.
Verifique el /var/crash de la VM reiniciada, si hay un directorio coincidente con el tiempo de reinicio. Resultó que el reinicio se debió a un problema del núcleo del lado de CentOS, y pudimos continuar con la investigación.