Panduan Ubuntu Server: 2.5. Kernel Crash Dump

Daftar Isi

2.5. Kernel Crash Dump

2.5.1. Pengantar

Kernel Crash Dump merujuk pada suatu porsi konten dari memori labil (RAM) yang disalin ke disk manakala eksekusi kernel terganggu. Situasi berikut ini bisa menyebabkan disrupsi kernel:

  • Kernel Panic
  • Non Maskable Interrupts (NMI)
  • Machine Check Exceptions (MCE)
  • Hardware failure
  • Manual intervention

Pada kejadian kernel panic atau NMI, kernel akan bereaksi secara otomatis dan memicu mekanisme crash dump melalui kexec. Pada situasi lainnya, intervensi manual diperlukan untuk mengambil memori. Manakala salah satu dari situasi di atas terjadi, kita harus mencari tahu akar masalahnya untuk mencegah agar tak terulang kembali. Penyebabnya bisa ditemukan dengan menginspeksi konten memori yang tersimpan.

2.5.2. Mekanisme Kernel Crash Dump

Saat terjadi kernel panic, kernel bergantung pada mekanisme kexec untuk segera menjalankan boot kernel baru pada suatu bagian memori yang telah dialokasikan pada boot sebelumnya. Hal ini membuat area memori yang ada tidak terganggu, sehingga kontennya bisa disalin dengan baik ke penyimpanan.

2.5.3. Instalasi

Utilitas kernel crash dump bisa diinstal dengan perintah:

sudo apt-get install linux-crashdump

Sesudahnya, sistem harus di-boot ulang.

2.5.4. Konfigurasi

Mekanisme kernel dump tidak memerlukan konfigurasi apapun untuk mengaktifkannya.

2.5.5. Verifikasi

Untuk memastikan mekanisme kernel crash dump telah aktif, ada beberapa hal yang bisa kita periksa. Pertama, pastikan parameter boot crashkernel sudah ada.

cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-3.2.0-17-server root=/dev/mapper/PreciseS-root ro crashkernel=384M-2G:64M,2G-:128M

Parameter crashkernel memiliki sintaks sebagai berikut:

crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset]range=start-[end] 'start' is inclusive and 'end' is exclusive.

Jika parameter crashkernel terdapat pada /proc/cmdline, kita akan melihat:

crashkernel=384M-2G:64M,2G-:128M

Larik di atas berarti:

  • jika RAM kurang dari 384M, sistem tidak akan menyediakan ruang (ini adalah kasus darurat)
  • jika RAM berukuran antara 384M sampai 2G (ekslusif), maka sediakan ruang sebesar 64M
  • jika RAM lebih dari 2G, maka sediakan ruang sebesar 128M

Kedua, pastikan bahwa kernel telah menyiapkan area memori untuk kdump kernel dengan perintah:

dmesg | grep -i crash

...

[0.000000] Reserving 64MB of memory at 800MB for crashkernel (System RAM: 1023MB)

2.5.6. Pengujian Mekanisme Crash Dump

Catatan: Pengujian mekanisme crash dump akan menyebabkan sistem menjalankan boot ulang. Dalam kondisi tertentu, misalnya sistem berada dalam muatan kinerja berat, hal ini bisa mengakibatkan data loss. Jadi, saat menjalankan pengujian, kita harus memastikan bahwa sistem sedang idle atau bermuatan kinerja ringan.

Pastikan mekanisme SysRQ aktif dengan memeriksa keluaran dari parameter kernel:

cat /proc/sys/kernel/sysrq

Jika outputnya 0, maka fitur ini non-aktif. Kita bisa mengaktifkannya dengan perintah:

sudo sysctl -w kernel.sysrq=1

Sesudahnya, kita harus login sebagai root, sebab penggunaan sudo saja tidak cukup. Sebagai root, kita akan mengetikkan perintah:

echo c > /proc/sysrq-trigger

Jika kita menggunakan koneksi jaringan, kita akan putus kontak dengan sistem. Oleh karena itu, pengujian ini seharusnya dijalankan saat kita terkoneksi dengan konsol sistem. Dengan begitu, kita bisa melihat proses kernel dump berjalan.

Output dari pengujian kurang lebih seperti ini:

sudo -s

[sudo] password for ubuntu:

# echo c > /proc/sysrq-trigger

[31.659002] SysRq : Trigger a crash

[31.659749] BUG: unable to handle kernel NULL pointer dereference at (null)

[31.662668] IP: [<ffffffff8139f166>] sysrq_handle_crash+0x16/0x20

[31.662668] PGD 3bfb9067 PUD 368a7067 PMD 0

[31.662668] Oops: 0002 [#1] SMP

[31.662668] CPU 1

....

Kelanjutan output di atas terpangkas, namun saat proses boot berjalan – juga di dalam log – kita bisa menemukan larik berikut:

Begin: Saving vmcore from kernel crash ...

Setelah proses selesai, sistem akan menjalankan boot lagi untuk kembali ke mode operasional. Kemudian kita bisa melihat file Kernel Crash Dump di dalam direktori /var/crash dengan perintah:

ls /var/crash

linux-image-3.0.0-12-server.0.crash

2.5.7. Sumber Referensi

Kernel Crash Dump adalah suatu topik luas yang membutuhkan pengetahuan yang cukup mengenai kernel linux. Kita bisa menemukan informasi lebih lanjut pada sumber-sumber berikut:

  • Kdump kernel documentation1.
  • The crash tool2
  • Analyzing Linux Kernel Crash3 (berbasis Fedora, namun menyajikan panduan analisis kernel dump)

1http://www.kernel.org/doc/Documentation/kdump/kdump.txt

2http://people.redhat.com/~anderson/

3http://web.archive.org/web/20160419000005/http://www.dedoimedo.com:80/computers/crash-analyze.html


Indeks Panduan Ubuntu Server

Bab 3.1. Manajemen Paket (Pengantar) →

Tak ada komentar

Tuliskan pendapatmu

Alamat surel Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *