Introdução
Este documento descreve como solucionar problemas de reinicialização de VM do CPS (Cisco Policy Suite) causados por travamento do kernel CentOS.
Problema
Cada VM do CPS (qns,lb,pcrfclient e assim por diante) é executada com base no CentOS. Essas VMs podem ser reinicializadas devido a um problema no lado do CentOS, em vez de um problema no lado do aplicativo do CPS. Se uma reinicialização ocorrer devido a um problema com o kernel CentOS, a causa raiz não pode ser encontrada mesmo se o CPS capture_env for investigado. Os logs capture_env não contêm nenhum log de erros da VM reinicializada durante a reinicialização. Nesses casos, os logs em /var/crash podem ser usados para investigação.
Solução
O CentOS pode gerar um despejo de memória do kernel quando ocorre um problema com o kernel. Por padrão, o CPS é configurado para coletar despejos de memória do kernel para todas as VMs.
O status pode ser verificado com esse 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
Se ocorrer um travamento do kernel com o kdump.service habilitado, um diretório com o nome "address-YYYY-MM-DD-HH:MM:SS" será gerado em /var/crash. O CentOS gera 2 arquivos nesse diretório.
[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:
Um arquivo que armazena o conteúdo da memória do kernel como um arquivo binário. A análise requer ferramentas como kernel-debuginfo e crash.
- vmcore-dmesg.txt:
arquivo de texto dmesg quando ocorrer falha.
Por exemplo, no log no lado do CPS, os logs de erro logo antes da reinicialização não foram confirmados a partir dos logs da VM que foi reinicializada. Resultado da análise do lado do VMWare, a reinicialização foi causada com este log de erros que seria causado pelo SO convidado.
The CPU has been disabled by the guest operating system. Power off or reset the virtual machine.
Verifique o /var/crash da VM reinicializada, se houver um diretório correspondente ao tempo de reinicialização. Descobrimos que a reinicialização foi devido a um problema no kernel no lado do CentOS, e fomos capazes de prosseguir com a investigação.