Panik Masalah Kernel Logging untuk Debugging

8

Saya menjalankan Ubuntu 12,04 pada AWS / EC2 dan memiliki sejumlah besar host akan naik. Saya mencoba untuk mengaktifkan dumping kernel, tetapi ketika saya mensimulasikan panik kernel, tidak ada file .crash yang ditulis di mana saja pada sistem file.

Saya mengikuti instruksi di sini: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe

Dan hal-hal tampaknya diatur dengan benar:

# 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

Tetapi ketika saya mengeksekusi:

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

Sistem reboot seperti yang diharapkan, tetapi tidak ada file 'crash' apa pun yang dihasilkan. Apa yang mungkin saya lakukan salah?

Stephan
sumber
Ada catatan /var/log/messages?
Banjer
Tidak ada yang aneh di / var / log / syslog, kern.log, atau dmesg sayangnya.
Stephan

Jawaban:

2

Pastikan skrip init kdump diaktifkan. paket kexec_crash bergantung pada skrip init untuk mem-bypass rutin startup normal. Ini menentukan apakah pemanggilan saat ini initadalah salah satu yang dipanggil oleh crash, dan menggunakannya untuk menentukan apakah negara yang berjalan sebelumnya perlu dibuang sebelum melakukan reboot yang benar.

Yang mengatakan, jika sistem pengujian Anda tidak cukup kecil untuk masuk ke 64Mb tanpa Anda perhatikan bahwa setiap kerusakan lainnya mengurangi total memori Anda, ini mungkin bukan yang sedang terjadi.

Hal utama yang perlu Anda cari adalah apakah yang kedua initmenembak. Segera setelah Anda crash sistem, Anda akan melihat urutan startup skrip init pada konsol yang tidak didahului oleh reboot .

  • Jika ini tidak terjadi, crash kernel Anda sama sekali tidak diaktifkan.
  • Jika ini terjadi dan Anda langsung diminta, skrip init Anda tidak melakukan tugasnya. (Entah itu tidak diaktifkan atau tidak mendeteksi keadaan pasca-kecelakaan)
  • Jika ini terjadi, initkebakaran kedua , sistem reboot, initdimulai lagi , dan meskipun semua ini Anda masih tidak memiliki file ... Anda perlu memecahkan masalah apa yang terjadi tepat sebelum skrip ineddash kdump mengeluarkan reboot. Ironisnya, salah satu metode yang lebih baik adalah menonaktifkan initcript dan menjalankan perintah dengan tangan. (hati-hati: pastikan layanan Anda dapat masuk ke dalam memori crash kernel sebelum mencoba ini!)
Andrew B
sumber
1
Terima kasih banyak atas sarannya! Saya akan menggali lebih dalam sekarang. Sebagai latar belakang, kami sedang menyelidiki contoh AWS EC2 yang jatuh pada tingkat yang belum pernah kami alami sebelumnya, dan Amazon mengklaim tidak ada yang melaporkan kesalahan dengan perangkat keras yang mendasarinya; dengan demikian berusaha menyingkirkan kepanikan kernel, dll.
Stephan
@Stephan Keberuntungan? Pertanyaannya masih terbuka.
Andrew B