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?
kernel-panic
crash
Stephan
fonte
fonte
/var/log/messages
?Respostas:
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
init
foi 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
init
está 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 .init
dispara, o sistema é reiniciado, éinit
iniciado 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!)fonte