Partilhar via


Pânico do kernel em VMs Linux do Azure

Aplica-se a: ✔️ VMs Linux

Resumo

Este artigo discute várias condições que podem levar a um kernel panic e fornece diretrizes de solução de problemas.

Em geral, um kernel panic é uma situação em que o kernel não consegue carregar corretamente e, portanto, o sistema falha ao inicializar. Outra forma de kernel panic ocorre quando o kernel encontra uma situação com a qual não sabe como lidar e se protege parando.

Pré-requisitos

Verifique se o console serial está habilitado e funcional na VM do Linux.

Como identificar um kernel panic?

Use o portal Azure para exibir a saída de log do console serial da VM na folha de diagnóstico de inicialização, na folha do console serial ou na CLI AZ para identificar a cadeia de caracteres de pânico do kernel específica.

Uma situação de kernel panic é semelhante à saída abaixo e aparecerá ao final do log do console serial.

Probing EDD (edd=off to disable)... ok
Memory KASLR using RDRAND RDTSC...
[  300.206297] Kernel panic - xxxxxxxx
[  300.207216] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G               ------------ T 3.xxx.x86_64 #1

Alguns dos eventos de kernel panic mais comuns:

Mensagem de pânico Motivo
Opa: 0000 [# 1] SMP " (verifique o log para obter detalhes) O sistema entrou em pânico devido à desreferência de um endereço incorreto.
SysRq: Disparar um crashdump O core dump foi iniciado pelo usuário com sysrq-c ou ao ecoar c em /proc/sysrq-trigger.
kernel BUG no <nome do caminho / nome do arquivo>:< número da> linha! Este formato é o padrão para uma verificação de BUG com falha (que é como um ASSERT, mas a lógica é invertida). O nome do arquivo e o número da linha indicarão qual verificação de BUG falhou.
Pânico do kernel - não sincronizando: softlockup: tarefas suspensas O detector de impasse leve encontrou uma CPU que não agendou a tarefa de monitoramento dentro do limite de impasse leve.
Pânico do kernel - não sincronizando: Watchdog detectou travamento profundo na cpu 0 O detector de travamento rígido encontrou uma CPU que não recebeu nenhuma interrupção de hrtimer dentro do limite de travamento rígido.
Kernel panic - não está sincronizando: hung_task: tarefas bloqueadas O watchdog de tarefa suspensa detectou pelo menos uma tarefa que esteve em um estado ininterrupto por mais do que o valor de tempo limite da tarefa bloqueada.
Kernel panic - não sincronizando: falta de memória. panic_on_oom é selecionado O sistema ficou sem memória e swap e foi forçado a começar a encerrar processos para liberar memória (esse não é o comportamento padrão).
Pânico no kernel - sem sincronização: Memória insuficiente e nenhum processo passível de encerramento... O sistema ficou sem memória e swap e vem matando processos para liberar memória, mas não há mais processos para matar.
Pânico do kernel - não sincronizando: ocorreu um NMI, consulte o Registro de Gerenciamento Integrado para obter detalhes. O Watchdog interceptou um NMI (interrupção não mascarável).
Kernel panic - não sincronizando: erro NMI IOCK: não continua O sistema recebeu um NMI de verificação de E/S do hardware (não um erro de paridade de memória) e kernel.panic_on_io_nmi estava configurado (não é o padrão).
Pânico do kernel - falha na sincronização: NMI: não vai continuar O sistema recebeu um NMI (erro de paridade de hardware ou de memória), e kernel.panic_on_unrecovered_nmi foi configurado (não é o padrão).
Kernel panic - não está sincronizando: nmi watchdog O sistema recebeu um NMI, e foi configurado para kernel.panic_on_timeout ou kernel.panic_on_oops (valores diferentes dos padrões).
Kernel panic - não sincroniza: verificação de máquina fatal Um evento de exceção de verificação de máquina foi gerado para uma condição fatal.
Kernel panic - não sincronizando: Tentativa de matar o init! O processo de inicialização é o primeiro processo a ser iniciado e nunca deve sair.
Pânico no kernel - não está sincronizando: VFS: Não é possível montar fs raiz no bloco desconhecido (0,0) Supõe-se que o kernel usará um initramfs para montar o rootfs. Esse erro ocorre quando o kernel não tem initramfs.

Cenário 1: o pânico do kernel ocorre no momento da inicialização

Um pânico do kernel no momento da inicialização impede que a VM conclua o processo de inicialização do sistema operacional. Isso acontece toda vez que a máquina virtual é iniciada e não permite o login.

Esse tipo de evento é comumente relacionado, mas não limitado a:

Resolução para o cenário 1

Para lidar com esse tipo de kernel panic, as seguintes abordagens podem ser usadas:

Método 1: Usando o console serial Azure

Use o console serial Azure para interromper o processo de inicialização e selecionar uma versão anterior do kernel, se disponível. Dessa forma, a VM poderá inicializar novamente e, em seguida, você poderá usar um dos seguintes métodos para corrigir o problema específico com o kernel que não inicializa:

Método 2: Reparo offline usando uma VM de resgate

Caso o console serial Azure não esteja disponível ou nenhum kernel anterior esteja disponível, você precisará de uma VM de resgate/reparo para fazer um reparo offline.

Use o comando Reparar VM para criar uma VM de reparo que tenha uma cópia do disco do sistema operacional da VM de destino anexada. Em seguida, use chroot para montar a cópia dos sistemas de arquivos do sistema operacional na VM de reparo. Depois disso, tente os seguintes métodos para corrigir os problemas do kernel:

Cenário 2: Kernel panic em tempo de execução

Esse tipo de pânico do kernel geralmente será disparado em momentos imprevisíveis após a conclusão do processo de inicialização do sistema operacional e fará com que a VM pare de responder, impedindo-a de fazer logon. É comumente relacionado, mas não limitado a:

Resolução para o cenário 2

Para lidar com esse tipo de kernel panic, as seguintes abordagens podem ser usadas:

  • Revise o uso de recursos e o desempenho geral do sistema. O pânico do kernel pode estar relacionado a uma possível escassez de recursos que pode levar a um redimensionamento da VM.
  • Se possível, instale as atualizações mais recentes disponíveis nos repositórios de distribuição do Linux correspondentes. O kernel panic pode estar relacionado a bugs conhecidos no kernel ou em outro software.
  • Existe a possibilidade de que o kernel panic esteja relacionado a uma alteração recente do kernel, caso em que também é aconselhável inicializar sobre uma versão anterior do kernel, conforme explicado em Resolução para o cenário 1.
  • Se as opções acima não forem aplicáveis, talvez seja necessário configurar o kdump e gerar um despejo principal para compartilhar com suporte para análise posterior.

Cenários de pânico do kernel mais específicos

Cenários comuns de kernel panic com instruções específicas de solução de problemas/recuperação:

Documento Cenário
Uma VM Linux no Azure em um kernel 3.10 baseado entra em estado de pânico após uma atualização do nó de host Este artigo discute um problema que ocorre quando uma VM Linux do Azure que executa o kernel baseado no 3.10 falha após uma atualização do nó de host no Azure.
Como recuperar uma máquina virtual linux Azure de problemas de inicialização relacionados ao kernel Este artigo fornece soluções para um problema em que uma VM (máquina virtual) Linux não pode ser reiniciada após a aplicação de alterações de kernel.