ทำไม Linux kdump ถึงไม่เขียนถึง / var / crash?


10

มันเกิดขึ้นอีกครั้ง! ฉันมีเซิร์ฟเวอร์ 4 เครื่องซึ่งหยุดทำงานเป็นระยะและไม่มีข้อมูลที่พิมพ์ไปยังบันทึกระบบหรือคอนโซลอนุกรม

นอกจากนี้ลินุกซ์บริการ kdump/var/crashไม่ได้เขียนทิ้งหลักในการตั้งค่าเริ่มต้นของ

  • คุณช่วยฉันหาสาเหตุได้ไหม
  • มันสำคัญไหมถ้าระบบไฟล์รูทของฉันเป็นโวลุ่ม LVM

นี่คือสิ่งที่ฉันได้ลอง

  1. ระบบของฉันคือ 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)
    
  2. ไฟล์/etc/kdump.confนี้เป็นไฟล์วานิลลาที่มีการตั้งค่าเริ่มต้น สายส่วนใหญ่จะออกความเห็นมีเพียงสองสายที่ใช้งานและpathcore_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
    
  3. ฉันแน่ใจว่าkdumpบริการกำลังทำงานและที่ไม่จำเป็นต้องสร้างของฉันkdumpinitrd

    [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 ~]# 
    
  4. จากนั้นฉันบังคับเคอร์เนลที่ขัดข้องโดยใช้คำสั่งเหล่านี้ที่ยืมมาจากคำแนะนำในการปรับใช้ RHEL6: บทที่ 29. kdump Crash Recovery Service :

    จากนั้นพิมพ์คำสั่งต่อไปนี้ที่ shell prompt:

    echo 1 > /proc/sys/kernel/sysrq
    echo c > /proc/sysrq-trigger
    

    สิ่งนี้จะบังคับให้เคอร์เนล Linux ขัดข้อง

  5. ระบบล่ม ฉันสามารถดูความคืบหน้าในคอนโซลอนุกรมของฉันได้ ฉันเห็นข้อความ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
    
  6. จากนั้นระบบจะรีบูต (ซึ่งเป็นค่าเริ่มต้น)

  7. เมื่อระบบกลับมาออนไลน์ไม่มีสิ่งใดเข้า/var/crashมา ฉันคิดว่าดัมพ์ความผิดพลาดไม่ได้ถูกเขียน

    [root@host1 ~]# ls -lA /var/crash/
    total 0
    [root@host1 ~]#
    
  8. ฉันรู้ว่าการถ่ายโอนข้อมูลผิดพลาดสามารถทำงานได้โดยทั่วไป หากฉันบอกkdumpให้คัดลอก core dump ไปยังระบบอื่นด้วยการกำหนดค่าต่อไปนี้ kdump จะเขียน core dump ไปยังโฮสต์อื่นได้สำเร็จ:

    path vmcore
    ssh user@hostb.example.org
    sshkey /root/.ssh/kdump_id_rsa
    
  9. หากฉันตั้ง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 #
    
  10. แต่ตอนนี้ฉันติดอยู่


ยี่ห้อ / รุ่นของเซิร์ฟเวอร์คืออะไร
ewwhite

นี่คือ Supermicro ที่มีมาเธอร์บอร์ด X9DRW4 และไบออสรุ่นล่าสุด
Stefan Lasiewski

คนเกียจคร้าน ฉันมีความผิดพลาดที่คล้ายกันใน HP ProLiantsพร้อมเคอร์เนล RHEL6 ใหม่ล่าสุด ฉันสงสัยว่ามันเป็นปัญหาที่ลึกกว่านี้หรือไม่
ewwhite

สำหรับฉันมันดูเหมือนเป็นข้อบกพร่อง แต่ฉันจำไม่ได้ว่าผลลัพธ์ควรเป็นอย่างไร
Stefan Lasiewski

1
สวัสดี คุณแก้ไขปัญหานี้หรือไม่? ฉันกำลังเผชิญกับปัญหาที่คล้ายกันมาก
Chul-Woong Yang

คำตอบ:


5

สายไปเล็กน้อยสำหรับเกม แต่ถ้าคุณต้องการกำหนดค่า kdump สำหรับอนาคต:

ฉันคิดว่าเส้นทางสั่งกำหนดเส้นทางจากพาร์ทิชันหรือระบบไฟล์ที่กำหนด โดยค่าเริ่มต้นนี่คือรูท fs หากคุณมีพาร์ติชันแยกต่างหากใน fstab สำหรับ / var พาร์ติชันนั้นจะทำให้งงงวยไดเรกทอรีขัดข้องเมื่อระบบของคุณถูกบูทตามปกติ นั่นคือถ้าคุณต้องบูตตามปกติและยกเลิกการต่อเชื่อม / var คุณจะเห็นความผิดพลาด / [UniqCoreDir] คุณสามารถปรับได้โดยเพิ่มคำสั่ง "ext4 / PATH / TO / DEVICE" ใน kdump.conf นอกจากนี้คุณสามารถใช้เส้นทางอื่นที่จะไม่ติดตั้ง

เพียงเดา แต่อาจมีจำนวน vmcores ฝังอยู่ใต้ / var


2

ดึงแยก kdump initrd ของคุณใน / boot / check เพื่อดูเส้นทางสุดท้ายที่มันพยายามถ่ายโอนไป

  • ฉันคิดว่าตัวเลือก "path" นั้นแปลกเล็กน้อยฉันอาจปล่อยให้มันเป็นค่าเริ่มต้นหรือตั้งไว้ที่ / var / crash

  • คุณมีสุนัขเฝ้าบ้านที่กำลังรีบูตเครื่องอยู่หรือไม่? สิ่งนี้อาจป้องกันแกนที่ถูกสร้างขึ้นโดยการรีบูตเครื่องก่อนที่จะเริ่ม


ฉันจะตรวจสอบผู้ประทับจิตและดูสิ่งที่ฉันค้นหา pathตัวเลือกใน # 2 เป็นเส้นทางเริ่มต้น ( /var/crash)
Stefan Lasiewski

ไม่ฉันไม่ได้มีสุนัขเฝ้าบ้านรีบูตเครื่อง ปรากฎว่าคอนโทรลเลอร์ LSI + Samsung SSD นั้นจะหยุดนิ่งเป็นระยะ ๆ ด้วยเหตุผลที่เราไม่เข้าใจโดยสิ้นเชิง
Stefan Lasiewski

คุณได้รับข้อเสนอแนะใด ๆ เนื่องจากเป็นสิ่งที่ค่อนข้างบ้าบางทีอาจจะมีปัญหาในการดึงพลังงานที่ทำให้แรงดันไฟฟ้าต่ำเกินไปหรือไม่?
ไม่มีชื่อผู้ใช้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.