Itu terjadi lagi! Saya memiliki 4 server yang mogok secara berkala, dan tidak ada informasi yang dicetak ke log sistem atau konsol serial.
Selain itu, layanan Linux kdump tidak menulis dump inti ke lokasi default /var/crash
.
- Bisakah Anda membantu saya mencari tahu mengapa?
- Apakah penting jika filesystem root saya adalah volume LVM?
Inilah yang saya coba.
Sistem saya adalah Scientific Linux 6.5 dengan kernel terbaru.
[root@host1 ~]# uname -r 2.6.32-431.11.2.el6.x86_64 [root@host1 ~]# cat /etc/issue Scientific Linux release 6.5 (Carbon)
File tersebut
/etc/kdump.conf
adalah file vanilla yang berisi pengaturan default. Sebagian besar baris dikomentari, hanya ada dua baris aktif untukpath
dancore_collector
.#net my.server.com:/export/tmp #net [email protected] path /var/crash core_collector makedumpfile -c --message-level 1 -d 31 #core_collector scp
Saya memastikan bahwa
kdump
layanan berjalan, dan itukdump
tidak perlu membangun kembaliinitrd
.[root@host1 ~]# chkconfig --list kdump kdump 0:off 1:off 2:off 3:on 4:on 5:on 6:off [root@host1 ~]# /etc/init.d/kdump restart Stopping kdump: [ OK ] Starting kdump: [ OK ] [root@host1 ~]#
Kemudian, saya memaksakan crash Kernel menggunakan perintah-perintah ini yang dipinjam dari RHEL6 Deployment Guide: Bab 29. Layanan Pemulihan Crash kdump :
Kemudian ketik perintah berikut di prompt shell:
echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger
Ini akan memaksa kernel Linux crash
Sistem macet. Saya dapat melihat kemajuan pada konsol serial saya. Saya melihat pesan itu
Saving to the local filesystem UUID=e7abcdeb-1987-4c69-a867-fabdceffghi2
, tetapi segera setelah itu saya melihat pesan aneh ituUsage: fsck.ext4
, yang kelihatannya seperti sesuatu yang secara tidak sengaja memanggilfsck
bukan apa yang seharusnya dilakukan. Saya tidak melihat adanya kesalahan memori atau apa pun.host1.example.org login: SysRq : Trigger a crash BUG: unable to handle kernel NULL pointer dereference at (null) ... ... skipping 50 lines of output ... Creating block device ram8 Creating block device ram9 Creating Remain Block Devices Making device-mapper control node Scanning logical volumes Reading all physical volumes. This may take a while... No volume groups found No volume groups found Activating logical volumes No volume groups found No volume groups found Free memory/Total memory (free %): 58272 / 116616 ( 49.9691 ) Saving to the local filesystem UUID=e7abcdeb-1987-4c69-a867-fabdceffghi2 Usage: fsck.ext4 [-panyrcdfvtDFV] [-b superblock] [-B blocksize] [-I inode_buffer_blocks] [-P process_inode_size] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] device Emergency help: -p Autom
Dan kemudian sistem reboot (yang merupakan default).
Ketika sistem kembali online, tidak ada apa-apa di dalamnya
/var/crash
. Saya berasumsi bahwa crash dump tidak ditulis.[root@host1 ~]# ls -lA /var/crash/ total 0 [root@host1 ~]#
Saya tahu bahwa dump crash dapat bekerja secara umum. Jika saya meminta
kdump
untuk menyalin core dump ke sistem lain dengan konfigurasi berikut, kdump akan berhasil menulis core dump ke host lain:path vmcore ssh [email protected] sshkey /root/.ssh/kdump_id_rsa
Jika saya set
default shell
di/etc/kdump.conf
dan membangun kembali initrd, dan kemudian sistem crash lagi saya mendapatkan error sedikit lebih informatif tentangmount: can't find /mnt in /etc/fstab
Free memory/Total memory (free %): 58272 / 116616 ( 49.9691 ) Saving to the local filesystem UUID=e720481b-1987-4c69-a867-f2b4cba3b312 Usage: fsck.ext4 [-panyrcdfvtDFV] [-b superblock] [-B blocksize] [-I inode_buffer_blocks] [-P process_inode_size] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] device Emergency help: -p Automatic repair (no questions) -n Make no changes to the filesystem -y Assume "yes" to all questions -c Check for bad blocks and add them to the badblock list -f Force checking even if filesystem is marked clean -v Be verbose -b superblock Use alternative superblock -B blocksize Force blocksize when looking for superblock -j external_journal Set location of the external journal -l bad_blocks_file Add to badblocks list -L bad_blocks_file Set badblocks list mount: can't find /mnt in /etc/fstab dropping to initramfs shell exiting this shell will reboot your system /sys/block #
Tapi sekarang, saya mandek.
sumber
Jawaban:
Sedikit terlambat ke gim tetapi jika Anda perlu mengkonfigurasi kdump untuk masa depan:
Saya pikir direktif jalur menunjuk jalur dari partisi atau sistem file yang ditunjuk. Secara default ini adalah root fs. Jika Anda memiliki partisi terpisah di fstab untuk / var itu akan mengaburkan direktori crash ketika sistem Anda boot secara normal. yaitu jika Anda boot dengan normal dan unmount / var Anda akan melihat crash / [UniqCoreDir]. Anda dapat menyesuaikan ini dengan menambahkan direktif "ext4 / PATH / TO / DEVICE" di kdump.conf. Anda juga dapat menggunakan jalur berbeda yang tidak akan dipasang.
Hanya tebakan tetapi mungkin ada sejumlah vmcores yang terkubur di bawah / var.
sumber
Pisahkan initrd kdump Anda di / boot / centang untuk melihat path terakhir yang ingin dibuang.
Saya pikir opsi "path" agak aneh, saya mungkin akan membiarkannya ke default atau mengaturnya secara eksplisit ke / var / crash
Apakah Anda memiliki semacam pengawas me-reboot mesin? ini juga dapat mencegah inti dibuat dengan me-reboot mesin sebelum dimulai.
sumber
path
pilihan di # 2 adalah jalan default (/var/crash
).