Ketika mekanisme crash dumping kdump diaktifkan, sistem akan di-boot dari konteks kernel lain. Kernel kedua ini menyimpan sejumlah kecil memori dan satu-satunya tujuannya adalah untuk menangkap gambar dump inti jika sistem mogok.
Mampu menganalisis dump inti secara signifikan membantu menentukan penyebab pasti kegagalan sistem, dan oleh karena itu sangat disarankan untuk mengaktifkan fitur ini. Bab ini menjelaskan cara mengonfigurasi, menguji, dan menggunakan layanan kdump di Red Hat Enterprise Linux, dan memberikan ikhtisar singkat tentang cara menganalisis core dump yang dihasilkan menggunakan utilitas debug kerusakan.
Menginstal Layanan kdump
Untuk menggunakan layanan kdump di sistem Anda, pastikan Anda memiliki kexec-tools paket diinstal. Untuk melakukannya, ketik perintah berikut pada prompt shell sebagai root:
# yum install kexec-tools
Mengonfigurasi Layanan kdump
Mengonfigurasi Penggunaan Memori
Untuk mengkonfigurasi jumlah memori yang akan dicadangkan untuk kernel kdump, edit /boot/grub/grub.conf file dan tambahkan crashkernel=[size]M atau crashkernel=auto . Perhatikan bahwa opsi crashkernel=auto hanya menyimpan memori jika memori fisik sistem sama dengan atau lebih besar dari:
- 2 GB pada arsitektur x86 32-bit dan 64-bit
Contoh file /boot/grub/grub.conf
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/sda3 # initrd /initrd #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.32-220.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/sda3 crashkernel=128M initrd /initramfs-2.6.32-220.el6.x86_64.img
Mengonfigurasi Jenis Target
Saat kernel crash ditangkap, core dump dapat disimpan sebagai file di sistem file lokal, ditulis langsung ke perangkat, atau dikirim melalui jaringan menggunakan protokol NFS (Network File System) atau SSH (Secure Shell). Hanya satu dari opsi ini yang dapat disetel saat ini, dan opsi default adalah menyimpan file vmcore di /var/crash/ direktori sistem file lokal. Untuk mengubahnya, sebagai root, buka file konfigurasi /etc/kdump.conf di editor teks dan edit opsi seperti yang dijelaskan di bawah ini.
Untuk mengubah direktori lokal tempat penyimpanan inti dump, hapus tanda hash (“#”) dari awal baris #path /var/crash, dan ganti nilainya dengan jalur direktori yang diinginkan. Opsional, jika Anda ingin menulis file ke partisi yang berbeda, ikuti prosedur yang sama dengan baris #ext4 /dev/sda3 juga, dan ubah jenis sistem file dan perangkat (nama perangkat, label sistem file, dan UUID semuanya didukung) yang sesuai. Misalnya:
ext3 /dev/sda4 path /usr/local/cores
Untuk menulis dump langsung ke perangkat, hapus tanda hash (“#”) dari awal baris #raw /dev/sda5, dan ganti nilainya dengan nama perangkat yang diinginkan. Misalnya:
raw /dev/sdb1
Untuk menyimpan dump ke mesin jarak jauh menggunakan protokol NFS, hapus tanda hash (“#”) dari awal baris #net my.server.com:/export/tmp, dan ganti nilainya dengan nama host yang valid dan jalur direktori. Misalnya:
net penguin.example.com:/export/cores
Untuk menyimpan dump ke mesin jarak jauh menggunakan protokol SSH, hapus tanda hash (“#”) dari awal baris #net [email protected], dan ganti nilainya dengan nama pengguna dan nama host yang valid . Misalnya:
net [email protected]
Saat mentransfer file inti ke target jarak jauh melalui SSH, file inti perlu dibuat serial untuk transfer. Ini membuat file vmcore.flat di direktori /var/crash/ pada sistem target, yang tidak dapat dibaca oleh utilitas crash. Untuk mengonversi vmcore.flat ke file dump yang dapat dibaca oleh crash, jalankan perintah berikut sebagai root pada sistem target:
# /usr/sbin/makedumpfile -R */tmp/vmcore-rearranged* < *vmcore.flat*
Mengonfigurasi Kolektor Inti
Untuk mengurangi ukuran file dump vmcore, kdump memungkinkan Anda untuk menentukan aplikasi eksternal (yaitu, pengumpul inti) untuk mengompresi data, dan secara opsional mengabaikan semua informasi yang tidak relevan. Saat ini, satu-satunya kolektor inti yang didukung penuh adalah makedumpfile.
Untuk mengaktifkan kolektor inti, sebagai root, buka file konfigurasi /etc/kdump.conf di editor teks, hapus tanda hash (“#”) dari awal #core_collector makedumpfile -c --message-level 1 - d 31 baris, dan edit opsi baris perintah seperti yang dijelaskan di bawah ini.
Untuk mengaktifkan kompresi file dump, tambahkan parameter -c. Misalnya:
core_collector makedumpfile -c
Untuk menghapus halaman nol dan halaman gratis, gunakan yang berikut ini:
core_collector makedumpfile -d 17 -c
Lihat halaman manual untuk makedumpfile untuk daftar lengkap opsi yang tersedia.
Mengubah Tindakan Default
Secara default, ketika kdump gagal membuat dump inti, sistem file root di-mount dan /sbin/init dijalankan. Untuk mengubah perilaku ini, sebagai root, buka file konfigurasi /etc/kdump.conf di editor teks, hapus tanda hash (“#”) dari awal baris shell #default, dan ganti nilainya dengan tindakan yang diinginkan seperti yang dijelaskan di bawah ini:
Tindakan yang didukung
Opsi | Deskripsi |
---|---|
boot ulang | Reboot sistem, kehilangan inti dalam prosesnya. |
berhenti | Hentikan sistem. |
matikan | Matikan sistem. |
kulit | Jalankan sesi msh dari dalam initramfs, yang memungkinkan pengguna untuk merekam inti secara manual. |
Misalnya:
default halt
Mengaktifkan Layanan
Untuk memulai daemon kdump saat boot, ketik perintah berikut pada prompt shell sebagai root:
# chkconfig kdump on
Ini akan mengaktifkan layanan untuk runlevel 2, 3, 4, dan 5. Demikian pula, mengetik "chkconfig kdump off" akan menonaktifkannya untuk semua runlevel. Untuk memulai layanan di sesi saat ini, gunakan perintah berikut sebagai root:
# service kdump start
Menguji Konfigurasi
Perintah di bawah ini akan menyebabkan kernel crash. Berhati-hatilah saat mengikuti langkah-langkah ini, dan jangan menggunakannya di mesin produksi. Untuk menguji konfigurasi, reboot sistem dengan kdump diaktifkan, dan pastikan layanan berjalan:
# service kdump status Kdump is operational
Kemudian ketik perintah berikut pada prompt shell:
# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
Ini akan memaksa kernel Linux mogok, dan file address-YYYY-MM-DD-HH:MM:SS/vmcore akan disalin ke lokasi yang telah Anda pilih dalam konfigurasi (yaitu, ke /var/crash/ oleh bawaan).