มันเกิดขึ้นอีกครั้ง! ฉันมีเซิร์ฟเวอร์ 4 เครื่องซึ่งหยุดทำงานเป็นระยะและไม่มีข้อมูลที่พิมพ์ไปยังบันทึกระบบหรือคอนโซลอนุกรม
นอกจากนี้ลินุกซ์บริการ kdump/var/crash
ไม่ได้เขียนทิ้งหลักในการตั้งค่าเริ่มต้นของ
- คุณช่วยฉันหาสาเหตุได้ไหม
- มันสำคัญไหมถ้าระบบไฟล์รูทของฉันเป็นโวลุ่ม LVM
นี่คือสิ่งที่ฉันได้ลอง
ระบบของฉันคือ Scientific Linux 6.5 พร้อมเคอร์เนลล่าสุด
[root@host1 ~]# uname -r 2.6.32-431.11.2.el6.x86_64 [root@host1 ~]# cat /etc/issue Scientific Linux release 6.5 (Carbon)
ไฟล์
/etc/kdump.conf
นี้เป็นไฟล์วานิลลาที่มีการตั้งค่าเริ่มต้น สายส่วนใหญ่จะออกความเห็นมีเพียงสองสายที่ใช้งานและpath
core_collector
#net my.server.com:/export/tmp #net user@my.server.com path /var/crash core_collector makedumpfile -c --message-level 1 -d 31 #core_collector scp
ฉันแน่ใจว่า
kdump
บริการกำลังทำงานและที่ไม่จำเป็นต้องสร้างของฉันkdump
initrd
[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 ~]#
จากนั้นฉันบังคับเคอร์เนลที่ขัดข้องโดยใช้คำสั่งเหล่านี้ที่ยืมมาจากคำแนะนำในการปรับใช้ RHEL6: บทที่ 29. kdump Crash Recovery Service :
จากนั้นพิมพ์คำสั่งต่อไปนี้ที่ shell prompt:
echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger
สิ่งนี้จะบังคับให้เคอร์เนล Linux ขัดข้อง
ระบบล่ม ฉันสามารถดูความคืบหน้าในคอนโซลอนุกรมของฉันได้ ฉันเห็นข้อความ
Saving to the local filesystem UUID=e7abcdeb-1987-4c69-a867-fabdceffghi2
แต่หลังจากนั้นฉันก็เห็นข้อความแปลก ๆUsage: fsck.ext4
ซึ่งดูเหมือนว่ามีอะไรบางอย่างกำลังโทรหาโดยไม่ตั้งใจfsck
แทนที่จะทำอะไรก็ตาม ฉันไม่เห็นการพูดถึงข้อผิดพลาดออกจากหน่วยความจำหรืออะไร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
จากนั้นระบบจะรีบูต (ซึ่งเป็นค่าเริ่มต้น)
เมื่อระบบกลับมาออนไลน์ไม่มีสิ่งใดเข้า
/var/crash
มา ฉันคิดว่าดัมพ์ความผิดพลาดไม่ได้ถูกเขียน[root@host1 ~]# ls -lA /var/crash/ total 0 [root@host1 ~]#
ฉันรู้ว่าการถ่ายโอนข้อมูลผิดพลาดสามารถทำงานได้โดยทั่วไป หากฉันบอก
kdump
ให้คัดลอก core dump ไปยังระบบอื่นด้วยการกำหนดค่าต่อไปนี้ kdump จะเขียน core dump ไปยังโฮสต์อื่นได้สำเร็จ:path vmcore ssh user@hostb.example.org sshkey /root/.ssh/kdump_id_rsa
หากฉันตั้ง
default shell
ใน/etc/kdump.conf
และสร้าง initrd แล้วผิดพลาดของระบบอีกครั้งที่ฉันได้รับข้อผิดพลาดเล็กน้อยข้อมูลเพิ่มเติมเกี่ยวกับmount: 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 #
แต่ตอนนี้ฉันติดอยู่