Compartilhar via


Pânico do kernel em VMs Linux do Azure

Aplica-se a: ✔️ VMs linux

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 do Azure para exibir a saída do log do console serial da VM na folha de diagnóstico de inicialização, na folha do console serial ou na CLI da AZ para identificar a cadeia de caracteres de pânico do kernel específica.

Um kernel panic é semelhante à saída abaixo e aparecerá no 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 despejo de memória foi iniciado pelo usuário com sysrq-c ou ecoando 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 bloqueio suave encontrou uma CPU que não agendou a tarefa de watchdog dentro do limite de bloqueio suave.
Pânico do kernel - não sincronizando: Watchdog detectou LOCKUP rígido 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 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: sem memória. panic_on_oom é selecionado O sistema ficou sem memória e troca e foi forçado a começar a matar processos para liberar memória (não comportamento padrão).
Pânico do kernel - não sincronizado: Sem memória e sem processos matáveis... O sistema ficou sem memória e troca e tem matado processos para liberar memória, mas ficou sem processos para matar.
Pânico do kernel - não sincronizando: ocorreu um NMI, consulte o Log de Gerenciamento Integrado para obter detalhes. O Watchdog interceptou um NMI (interrupção não mascarável).
Kernel panic - não sincronizando: erro NMI OCK: não continua O sistema recebeu uma verificação de E/S NMI do hardware (não um erro de paridade de memória) e kernel.panic_on_io_nmi foi definido (não é o padrão).
Pânico do kernel - não sincronizando: NMI: não continuando O sistema recebeu um NMI (erro de paridade de hardware ou memória) e kernel.panic_on_unrecovered_nmi foi definido (não o padrão).
Kernel panic - não sincronizando: nmi watchdog O sistema recebeu um NMI e kernel.panic_on_timeout ou kernel.panic_on_oops foi definido (não os valores padrão).
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 do kernel - não sincronizando: VFS: Não é possível montar o 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 do Azure

Use o console serial do Azure para interromper o processo de inicialização e selecione 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 do 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 mount 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 do Azure em um kernel com base em 3.10 sofre pane após uma atualização de nó host Este artigo discute um problema que ocorre quando uma VM Linux do Azure que está executando o kernel baseado em 3.10 falha após uma atualização de nó de host no Azure.
Como recuperar uma máquina virtual linux do 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.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.