Problemi nella registrazione del panico del kernel per il debug


8

Sto eseguendo Ubuntu 12.04 su AWS / EC2 e ho un gran numero di host che vanno a gonfie vele. Sto cercando di abilitare il dumping del kernel, ma quando simulo il panico del kernel, non c'è alcun file .crash scritto in alcun punto del file system.

Ho seguito le istruzioni qui: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe

E le cose sembrano impostate correttamente:

# 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

Ma quando eseguo:

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

Il sistema si riavvia come previsto, ma non viene generato alcun file "crash" di alcun tipo. Cosa potrei fare di sbagliato?


Qualcosa di interessante in /var/log/messages?
Banjer,

Niente di insolito in / var / log / syslog, kern.log, e sfortunatamente dmesg.
Stephan,

Risposte:


2

Assicurati che l'input di kdump sia abilitato. I pacchetti kexec_crash si basano su un initscript per bypassare la normale routine di avvio. Determina se l'attuale invocazione di initera stata invocata o meno da un arresto anomalo e lo utilizza per determinare se è necessario eseguire il dump dello stato di esecuzione precedente prima di eseguire un vero riavvio.

Detto questo, se il tuo sistema di test non è abbastanza piccolo da adattarsi a 64 Mb senza che tu ti accorga che ogni altro crash sta riducendo la tua memoria totale, probabilmente non è quello che sta succedendo.

La cosa principale che devi cercare è se il secondo initsta sparando. Immediatamente dopo l'arresto anomalo del sistema, dovresti vedere sulla console sequenze di avvio initscript che non sono precedute da un riavvio .

  • Se ciò non accade, il kernel del crash non si attiva affatto.
  • Se ciò accade e vieni indirizzato a un prompt, il tuo initscript non sta facendo il suo lavoro. (o non è abilitato o non rileva lo stato post-crash)
  • Se questo sta accadendo, i secondi initincendi, il riavvio del sistema, initinizia di nuovo , e nonostante tutto questo si devono ancora nessun file ... è necessario risolvere quello che sta succedendo a destra prima del kdump initscript problemi il riavvio. Ironia della sorte, uno dei metodi migliori è disabilitare l'initscript ed eseguire i comandi a mano. (attenzione: assicurati che i tuoi servizi possano adattarsi alla memoria del kernel crash prima di tentare questo!)

1
Grazie mille per i suggerimenti! Ci approfondirò ora. Come sfondo, stiamo studiando le istanze di AWS EC2 semplicemente cadendo a una velocità che non avevamo mai avuto prima, e Amazon afferma che non c'è stato nulla di totalmente sbagliato nell'hardware sottostante; cercando così di escludere il panico del kernel, ecc.
Stephan,

@Stephan Qualche fortuna? La domanda è ancora aperta.
Andrew B,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.