Fehlerprotokollierung Kernel-Panik beim Debuggen

8

Ich verwende Ubuntu 12.04 unter AWS / EC2 und habe eine große Anzahl von Hosts. Ich versuche, das Kernel-Dumping zu aktivieren, aber wenn ich eine Kernel-Panik simuliere, wird nirgendwo im Dateisystem eine .crash-Datei geschrieben.

Ich habe die Anweisungen hier befolgt: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe

Und die Dinge scheinen richtig eingerichtet zu sein:

# 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

Aber wenn ich ausführe:

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

Das System wird wie erwartet neu gestartet, es wird jedoch keine Absturzdatei generiert. Was könnte ich falsch machen?

Stephan
quelle
Etwas Besonderes /var/log/messages?
Banjer
Nichts Ungewöhnliches in / var / log / syslog, kern.log oder dmesg leider.
Stephan

Antworten:

2

Stellen Sie sicher, dass das kdump-Initscript aktiviert ist. kexec_crash-Pakete basieren auf einem Initscript, um die normale Startroutine zu umgehen. Es bestimmt, ob der aktuelle Aufruf initvon ein Absturz war, der durch einen Absturz ausgelöst wurde, und verwendet diesen, um zu bestimmen, ob der vorherige Ausführungsstatus vor einem echten Neustart gesichert werden muss oder nicht.

Das heißt, wenn Ihr Testsystem nicht klein genug ist, um in 64 MB zu passen, ohne dass Sie bemerken, dass jeder zweite Absturz Ihren Gesamtspeicher reduziert, ist dies wahrscheinlich nicht der Fall.

Die Hauptsache, nach der Sie suchen müssen, ist, ob die zweite initfeuert. Unmittelbar nach dem Absturz des Systems sollten auf der Konsole Initscript-Startsequenzen angezeigt werden, denen kein Neustart vorausgeht .

  • Wenn dies nicht geschieht, wird Ihr Absturzkern überhaupt nicht ausgelöst.
  • Wenn dies geschieht und Sie zu einer Eingabeaufforderung weitergeleitet werden, erledigt Ihr Initscript seine Aufgabe nicht. (Entweder ist es nicht aktiviert oder der Status nach dem Absturz wird nicht erkannt.)
  • Wenn dies geschieht, werden die zweite initFeuer, das System neu startet, initbeginnt wieder , und trotz all dies haben Sie noch keine Datei ... müssen Sie zu beheben , was auf der rechten Seite vor dem kdump Init - Skript Fragen der Neustart wird. Ironischerweise besteht eine der besseren Methoden darin, das Initscript zu deaktivieren und die Befehle von Hand auszuführen. (Achtung: Stellen Sie sicher, dass Ihre Dienste in den Speicher des Absturzkerns passen, bevor Sie dies versuchen!)
Andrew B.
quelle
1
Vielen Dank für die Vorschläge! Ich werde mich jetzt damit beschäftigen. Als Hintergrund untersuchen wir AWS EC2-Instanzen, die einfach mit einer Geschwindigkeit umfallen, die wir noch nie zuvor hatten, und Amazon behauptet, es sei überhaupt nichts Falsches an der zugrunde liegenden Hardware gemeldet worden. So wird versucht, Kernel-Panik usw. auszuschließen
Stephan
@Stephan Hast du Glück? Die Frage ist noch offen.
Andrew B