Linux kdump / var / crash dizinine neden yazmıyor?


10

Yine oldu! Periyodik olarak çöküyor 4 sunucuları var ve sistem günlüklerine veya seri konsola yazdırılan hiçbir bilgi yoktur.

Ayrıca, Linux kdump hizmeti , varsayılan konumuna çekirdek dökümleri yazmıyor /var/crash.

  • Nedenini anlamama yardım eder misin?
  • Kök dosya sistemimin LVM birimi olması önemli mi?

İşte denedim.

  1. Sistemim en son çekirdeğe sahip 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. Dosya /etc/kdump.conf, varsayılan ayarları içeren vanilya dosyasıdır. Çoğu hatları için sadece iki aktif hatları vardır, yorum haline pathve 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
    
  3. kdumpHizmetin çalıştığından emin olun ve bunun kdumpyeniden yapılandırılmasına gerek yok 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 ~]# 
    
  4. Sonra, RHEL6 Dağıtım Kılavuzu'ndan alınan bu komutları kullanarak bir Çekirdek çökmesini zorlarım: Bölüm 29. kdump Crash Recovery Service :

    Ardından kabuk komut istemine aşağıdaki komutları yazın:

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

    Bu, Linux çekirdeğini çökmeye zorlar

  5. Sistem çöküyor. İlerlemeyi seri konsolumda görebilirim. Mesajı görüyorum Saving to the local filesystem UUID=e7abcdeb-1987-4c69-a867-fabdceffghi2, ama hemen sonra garip mesajını görüyorum Usage: fsck.ext4, ne tür bir şey yapılması fsckgerektiği yerine yanlışlıkla bir şey çağırıyor gibi görünüyor . Bellek yetersiz hatası veya herhangi bir şeyden bahsetmedim.

    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. Ve sonra sistem yeniden başlatılır (bu varsayılan değerdir).

  7. Sistem tekrar çevrimiçi olduğunda, hiçbir şey yoktur /var/crash. Sanırım kaza dökümü yazılmadı.

    [root@host1 ~]# ls -lA /var/crash/
    total 0
    [root@host1 ~]#
    
  8. Çökme çöplüklerinin genel olarak çalışabileceğini biliyorum. kdumpÇekirdek dökümü aşağıdaki yapılandırmayla başka bir sisteme kopyalamayı söylersem , kdump çekirdek dökümü başarıyla başka bir ana bilgisayara yazacaktır:

    path vmcore
    ssh user@hostb.example.org
    sshkey /root/.ssh/kdump_id_rsa
    
  9. Ben ayarlarsanız default shelliçinde /etc/kdump.conftekrar ben yaklaşık biraz daha bilgi hatası alıyorum initrd'yi yeniden oluşturma ve sistemin çökmesinemount: 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. Ama şimdi sıkıştım.


Sunucunun markası / modeli nedir?
ewwhite

Bu, X9DRW4 anakartlı bir Supermicro ve en son bios.
Stefan Lasiewski

Aylak. Ben yaşıyorum HP ProLiants benzer kazasında yeni RHEL6 çekirdeği ile. Daha derin bir sorun olup olmadığını merak ediyorum.
ewwhite

Bana göre, bir böcek gibi görünüyor. Ama çıktının neye benzemesi gerektiğini hatırlamıyorum.
Stefan Lasiewski

1
Selam. Bu sorunu çözdünüz mü? Çok benzer bir sorunla karşılaşıyorum.
Chul-Woong Yang

Yanıtlar:


5

Oyuna biraz geç ama gelecek için kdump'ı yapılandırmanız gerekiyorsa:

Ben yol yönergesinin belirtilen bölüm veya dosya sisteminden bir yol belirlediğini düşünüyorum. Varsayılan olarak bu kök f'dir. Fstab içinde / var için ayrı bir bölümünüz varsa, sisteminiz normal olarak önyüklendiğinde çökme dizinini gizler. yani normal önyükleme ve / var bağlantısını keserseniz, kilitlenme / [UniqCoreDir] görürdünüz. Bunu, kdump.conf dosyasına bir "ext4 / PATH / TO / DEVICE" yönergesi ekleyerek ayarlayabilirsiniz. Ayrıca, üzerine monte edilmeyecek farklı bir yol kullanabilirsiniz.

Sadece bir tahmin ama / var altında gömülü vmcores bir dizi olabilir.


2

Dökümü yapmaya çalıştığı son yolu görmek için / boot / check içindeki kdump initrd'inizi ayırın.

  • "Yol" seçeneği biraz garip, muhtemelen varsayılan olarak bırakacağım veya açıkça / var / crash olarak ayarlayacağım

  • Makineyi yeniden başlatan bir çeşit bekçi köpeğiniz var mı? bu, makineyi başlatmadan önce yeniden başlatarak çekirdeğin oluşturulmasını da önleyebilir.


Initrd'a bakıp ne bulduğumu göreceğim. path2. seçeneği varsayılan yoludur ( /var/crash).
Stefan Lasiewski

Hayır Makineyi yeniden başlatan bir bekçi köpeğim yok. LSI denetleyicisi + Samsung SSD'lerin, tam olarak anlamadığımız nedenlerle periyodik olarak donuyor olduğu ortaya çıkıyor.
Stefan Lasiewski

Herhangi bir geri bildirim aldınız mı, çünkü bu oldukça çılgın, belki de voltajı çok düşüren bir güç çekme problemi?
Kullanıcı Adı Yok
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.