Problemas ao registrar o pânico do kernel para depuração


8

Estou executando o Ubuntu 12.04 no AWS / EC2 e tendo um grande número de hosts em processo de recuperação. Estou tentando ativar o despejo do kernel, mas quando simulo um pânico no kernel, não há arquivo .crash gravado em qualquer lugar do sistema de arquivos.

Eu segui as instruções aqui: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe

E as coisas parecem configuradas corretamente:

# cat /proc/cmdline 
root=LABEL=cloudimg-rootfs ro console=hvc0  crashkernel=384M-2G:64M,2G-:128M

# dmesg |grep crash
[    0.000000] Command line: root=LABEL=cloudimg-rootfs ro console=hvc0  crashkernel=384M-2G:64M,2G-:128M
[    0.000000] Reserving 64MB of memory at 832MB for crashkernel (System RAM: 1708MB)
[    0.000000] Kernel command line: root=LABEL=cloudimg-rootfs ro console=hvc0  crashkernel=384M-2G:64M,2G-:128M

# cat /sys/kernel/kexec_crash_loaded
1

Mas quando executo:

# echo c | sudo tee /proc/sysrq-trigger

O sistema é reiniciado conforme o esperado, mas nenhum arquivo 'crash' de qualquer tipo é gerado. O que eu posso estar fazendo de errado?


Alguma coisa de nota /var/log/messages?
Banjer

Nada de anormal no / var / log / syslog, kern.log ou dmesg infelizmente.
Stephan

Respostas:


2

Verifique se o kdump initscript está ativado. Os pacotes kexec_crash contam com um initscript para ignorar a rotina normal de inicialização. Ele determina se a chamada atual initfoi ou não a invocada por uma falha e a utiliza para determinar se o estado de execução anterior precisa ou não ser descartado antes de executar uma reinicialização verdadeira.

Dito isto, se o seu sistema de teste não for pequeno o suficiente para caber em 64 Mb sem você perceber que todas as outras falhas estão reduzindo sua memória total, provavelmente não é isso que está acontecendo.

A principal coisa que você precisa procurar é se o segundo initestá disparando. Imediatamente após o travamento do sistema, você deverá ver seqüências de inicialização initscript no console que não sejam precedidas por uma reinicialização .

  • Se isso não estiver acontecendo, seu kernel de falha não está disparando.
  • Se isso estiver acontecendo e você for direcionado para um prompt, seu initscript não está fazendo seu trabalho. (ele não está ativado ou não está detectando o estado pós-falha)
  • Se isso estiver acontecendo, o segundo initdispara, o sistema é reiniciado, é initiniciado novamente e, apesar de tudo isso, você ainda não possui um arquivo ... você precisa solucionar o que está acontecendo antes que o kdump initscript emita a reinicialização. Ironicamente, um dos melhores métodos é desativar o initscript e executar os comandos manualmente. (cuidado: verifique se seus serviços podem caber na memória do kernel de falha antes de tentar isso!)

1
Muito obrigado pelas sugestões! Eu vou cavar agora. Como pano de fundo, estamos investigando as instâncias do AWS EC2 simplesmente caindo a uma taxa que nunca tivemos antes, e a Amazon alega que não houve nada de errado com o hardware subjacente; tentando assim afastar kernel panic, etc.
Stephan

@Stephan Alguma sorte? A questão ainda está em aberto.
Andrew B
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.