Тревожное ядро ​​Паника ядра для отладки

8

Я использую Ubuntu 12.04 на AWS / EC2, и у меня большое количество хостов. Я пытаюсь включить дамп ядра, но когда я имитирую панику ядра, в файловой системе нигде не записывается файл .crash.

Я следовал инструкциям здесь: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe

И кажется, что все настроено правильно:

# 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

Но когда я выполню:

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

Система перезагружается, как и ожидалось, но никакого файла сбоев не создается. Что я могу делать не так?

Stephan
источник
Что-нибудь заметное в /var/log/messages?
Banjer
Ничего необычного в / var / log / syslog, kern.log или dmesg, к сожалению, нет.
Стефан

Ответы:

2

Убедитесь, что inducript kdump включен. Пакеты kexec_crash полагаются на initscript, чтобы обойти обычную процедуру запуска. Он определяет, был ли текущий вызов того, initкоторый был вызван сбоем, и использует его, чтобы определить, нужно ли сбросить предыдущее рабочее состояние перед выполнением истинной перезагрузки.

Тем не менее, если ваша тестирующая система не достаточно мала, чтобы уместиться в 64 МБ, и вы не заметите, что каждый другой сбой уменьшает вашу общую память, вероятно, это не то, что происходит.

Главное, на что нужно обратить внимание, это на то init, стреляет ли второй . Сразу после сбоя системы вы должны увидеть на консоли последовательности запуска initscript, которым не предшествует перезагрузка .

  • Если этого не происходит, ваше аварийное ядро ​​вообще не запускается.
  • Если это происходит, и вы получаете запрос, ваш initscript не выполняет свою работу. (либо он не включен, либо не обнаруживает состояние после сбоя)
  • Если это происходит, происходит второй initзапуск, система перезагружается, initзапускается снова , и, несмотря на все это, у вас все еще нет файла ... вам нужно устранить неполадки, происходящие непосредственно перед тем, как inducript kdump выполнит перезагрузку. По иронии судьбы, один из лучших способов - отключить начальный скрипт и выполнить команды вручную. (Осторожно: убедитесь, что ваши службы могут поместиться в память ядра аварийного отказа, прежде чем пытаться это сделать!)
Андрей Б
источник
1
Большое спасибо за предложения! Я сейчас покопаюсь в этом. В качестве предыстории мы изучаем случаи падения AWS EC2 со скоростью, которой у нас никогда не было прежде, и Amazon утверждает, что с базовым оборудованием вообще ничего не сообщалось о неправильности; таким образом пытаясь исключить панику ядра и т. д.
Стефан
@ Стефан Удачи? Вопрос все еще открыт.
Эндрю Б