Article ID: 10044, created on Jan 19, 2012, last review on Aug 22, 2014

  • Applies to:
  • Virtuozzo
  • Virtuozzo containers for Linux
  • Virtuozzo hypervisor

Симптомы

Создание аварийных дампов ядра может оказаться полезным для диагностики критических ошибок на физических серверах с Parallels Cloud Server, Parallels Server Bare Metal и Parallels Virtuozzo Containers для Linux.

Решение

  1. Установите kexec-tools на физическом сервере:

    [root@pvcfl46x64 ~]# yum install kexec-tools
    

    Примечание. В дистрибутивах на базе RHEL 6.x kexec-tools устанавливается автоматически. Эти шаги можно использовать для проверки конфигурации.

  2. Добавьте в конфигурацию GRUB опцию crashkernel=128M@16M (для i386 и x86_64) или crashkernel=256M@256M (для Itanium для PVC 4.7 и ранее). В версиях выше 4.7 для архитектур i386 и x86_64 рекомендуется использовать crashkernel=129M@0M.

    [root@pvcfl46x64 ~]# grep crash /etc/grub.conf
    kernel /boot/vmlinuz-2.6.18-028stab070.14 ro root=LABEL=/1 debug console=ttyS0,115200 console=tty crashkernel=128M@16M
    

    Примечание. В случае с ядрами 2.6.32-042stabXXX и выше необходимо использовать опцию "crashkernel=129M@0M", упомянутую в пункте 2.

  3. Перезагрузите физический сервер.
  4. Включите Kdump:

    [root@pvcfl46x64 ~]# chkconfig kdump on
    [root@pvcfl46x64 ~]# chkconfig --list kdump
    kdump 0:off 1:off 2:on 3:on 4:on 5:on 6:off
    
  5. Запустите Kdump:

    [root@pvcfl46x64 ~]# service kdump start
    No kdump initial ramdisk found. [WARNING]
    Rebuilding /boot/initrd-2.6.18-028stab070.14kdump.img
    Starting kdump: [ OK ]
    

    Примечание. Если вы настраиваете аварийные дампы на компьютере с Parallels Server Bare Metal, то перед запуском/перезапуском kdump добавьте модули Parallels в черный список:

    [root@psbm5~]# tail -n1 /etc/kdump.conf
    blacklist extra/parallels/
    

    Или остановите Parallels Hypervisor перед созданием образа initrd, чтобы в него не вошли модули:

    ~# service parallels-server stop
    ~# touch /etc/kdump.conf
    ~# service kdump restart
    
  6. Если вы хотите хранить дампы на внешнем сервере, необходимо внести соответствующие изменения в файл "/etc/kdump.conf":

    [root@pvcfl46x64 ~]# cat /etc/kdump.conf
    net root@10.55.63.11
    path /var/crash/pvcfl46x64/
    

    Примечание. Убедитесь, что вы указали раздел, и проверьте, достаточно ли свободного места в выбранной папке. Свободного места должно быть достаточно для хранения нескольких дампов размером, эквивалентным объему оперативной памяти.

  7. Распространите настройки:

    [root@pvcfl46x64 ~]# service kdump propagate
    Generating new ssh keys... done.
    root@10.55.63.11's password:
    /root/.ssh/kdump_id_rsa.pub has been added to ~root/.ssh/authorized_keys2 on 10.55.63.11
    [root@pvcfl46x64 ~]#
    
  8. Перезапустите Kdump:

    [root@pvcfl46x64 ~]# service kdump restart
    Stopping kdump: [ OK ]
    Detected change(s) the following file(s):
    /etc/kdump.conf
    Rebuilding /boot/initrd-2.6.18-028stab070.14kdump.img
    Starting kdump: [ OK ]
    [root@pvcfl46x64 ~]#
    

Теперь в случае критической ошибки ядра вы сможете найти соответствующий дамп в папке "/var/crash/pvcfl46x64/."

На тестовом сервере эту конфигурацию можно проверить следующим образом: В случае с рабочим сервером убедитесь, что на нем остановлены критические службы - чтобы избежать возможной потери данных:

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

Если все в порядке, в консоли должен отобразиться примерно такой результат:

Console screen with a kernel crash

Аварийный дамп должен выглядеть так:

[root@pvcfl46x64 ~]# ls -la /var/crash/2011-03-03-05\:55/
total 649940
drwxr-xr-x 2 root root 4096 Mar 3 05:56 .
drwxr-xr-x 3 root root 4096 Mar 3 05:55 ..
-r-------- 1 root root 2018588492 Mar 3 05:56 vmcore

Дополнительная информация

Руководство пользователя Parallels Containers:

Кроме того, много полезной информации о диагностике сбоев ядра доступно на сайте Dedoimedo.com:

Служба поддержки Parallels не анализирует дампы, созданные при использовании решения Ksplice Uptrack. Такие дампы следует отправлять команде Ksplice.

Также смотрите

10055 Как настроить создание дампа памяти в Windows

a26b38f94253cdfbf1028d72cf3a498b e8e50b42231236b82df27684e7ec0beb d02f9caf3e11b191a38179103495106f 2897d76d56d2010f4e3a28f864d69223 0dd5b9380c7d4884d77587f3eb0fa8ef

Email subscription for changes to this article
Save as PDF