Problema Logging Kernel Panic para Depuração

8

Estou executando o Ubuntu 12.04 no AWS / EC2 e tendo um grande número de hosts indo de barriga para cima. Eu estou tentando ativar o dumping do kernel, mas quando eu simular um pânico do kernel, não há nenhum arquivo .crash escrito em qualquer lugar no sistema de arquivos.

Eu segui as instruções aqui: link

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 eu executo:

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

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

    
por Stephan 09.01.2013 / 00:09

1 resposta

2

Verifique se o initscript do kdump está ativado. Pacotes kexec_crash dependem de um initscript para ignorar a rotina de inicialização normal. Ele determina se a chamada atual de init foi invocada por uma falha e usa isso para determinar se o estado de execução anterior precisa ser descartado antes de executar uma reinicialização real.

Dito isto, se o seu sistema de teste não for pequeno o suficiente para caber em 64Mb sem que você perceba que todos os outros acidentes estão reduzindo sua memória total, provavelmente não é isso que está acontecendo.

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

  • Se isso não estiver acontecendo, seu kernel de falha não será acionado.
  • Se isso estiver acontecendo e você for descartado, o seu script não está fazendo o seu trabalho. (ou não está ativado ou não está detectando o estado pós-travamento)
  • Se isso estiver acontecendo, o segundo init será disparado, o sistema será reinicializado, init será novamente e, apesar de tudo isso, você ainda não terá nenhum arquivo ... será necessário solucionar o problema está acontecendo logo antes do kdump initscript emitir a reinicialização. Ironicamente, um dos melhores métodos é desabilitar o script e executar os comandos manualmente. (cuidado: certifique-se de que seus serviços podem caber na memória do kernel do crash antes de tentar isso!)
por 10.01.2013 / 04:47