stringtranslate.com

кдамп (Linux)

kdump — это функция ядра Linux , которая создает аварийные дампы в случае сбоя ядра . При запуске kdump экспортирует образ памяти (также известный как vmcore ), который можно проанализировать в целях отладки и определения причины сбоя. К дампу основной памяти , экспортированному как объект исполняемого и связываемого формата (ELF), можно получить доступ либо напрямую через /proc /vmcore во время обработки сбоя ядра, либо он может быть автоматически сохранен в локально доступной файловой системе . на необработанное устройство или в удаленную систему, доступную по сети . [1] [2]

Внутренности

В схеме «двойного ядра» kdump использует kexec для загрузки другого ядра и получения дампа памяти. [3] : 10 

В случае сбоя ядра kdump сохраняет согласованность системы, загружая другое ядро ​​Linux , известное как ядро ​​захвата дампа , и используя его для экспорта и сохранения дампа памяти. В результате система загружается в чистую и надежную среду вместо того, чтобы полагаться на уже поврежденное ядро, которое может вызвать различные проблемы, например, повреждение файловой системы при записи файла дампа памяти. Чтобы реализовать эту схему «двойного ядра», kdump использует kexec для «теплой» загрузки ядра, захватывающего дамп, сразу после сбоя ядра, используя способность kexec загружаться «поверх» текущего работающего ядра, избегая при этом выполнения загрузчика и аппаратного обеспечения. инициализация, выполняемая прошивкой системы ( BIOS или UEFI ). Ядро для захвата дампа может представлять собой либо отдельный образ ядра Linux , созданный специально для этой цели, либо основной образ ядра может быть повторно использован в архитектурах , поддерживающих перемещаемые ядра. [1] [3] [4] [5] : 5–6 

Содержимое основной памяти ( ОЗУ ) сохраняется во время загрузки и работы ядра захвата дампа за счет предварительного резервирования небольшого объема ОЗУ, в которое предварительно загружается ядро ​​захвата дампа, поэтому никакая часть ОЗУ, используемая основным ядром, не используется. перезаписывается при обработке сбоя ядра. Этот зарезервированный объем оперативной памяти используется исключительно ядром захвата дампа и в противном случае не используется во время нормальной работы системы. Некоторые архитектуры, включая x86 и ppc64 , требуют небольшой фиксированной части оперативной памяти для загрузки ядра независимо от того, где оно загружено; в этом случае kexec создает копию этой части ОЗУ, чтобы она также была доступна ядру захвата дампа. Размер и необязательное положение зарезервированной части ОЗУ указываются с помощью параметра загрузки ядра крашкернел , а утилита командной строки kexec используется после загрузки основного ядра для предварительной загрузки образа ядра для захвата дампа и связанного с ним образа initrd в зарезервированную часть. оперативной памяти. [1] [3] [4]

Помимо функциональности, входящей в состав ядра Linux, механизм kdump поддерживают дополнительные утилиты пользовательского пространства , включая упомянутую выше утилиту kexec . [1] [4] Помимо официальных утилит, которые предоставляются в виде патча к набору утилит пользовательского пространства kexec, некоторые дистрибутивы Linux предоставляют дополнительные утилиты, упрощающие настройку работы kdump, включая настройку автоматического сохранения файлов дампа памяти. [6] [7] [8] Созданные файлы дампа памяти можно проанализировать с помощью отладчика GNU ( gdb ) или с помощью специальной утилиты аварийного восстановления Red Hat . [9] [10]

История

Функциональность kdump вместе с kexec была объединена с основной веткой ядра Linux в версии ядра 2.6.13, выпущенной 29 августа 2005 г. [11]

Смотрите также

Рекомендации

  1. ↑ abcd Джонатан Корбет (27 октября 2004 г.). «Аварийные дампы с помощью kexec». LWN.net . Проверено 9 августа 2014 г.
  2. ^ «13.2 О Kdump (Глава 13: Поддержка инструментов диагностики)» . Корпорация Оракл . 2012 . Проверено 9 августа 2014 г.
  3. ^ abc Вивек Гоял; Эрик В. Бидерман; Харипрасад Неллитерта (14 июня 2006 г.). «Kdump: механизм дампа сбоя ядра на основе Kexec» (PDF) . lse.sourceforge.net . Проверено 9 августа 2014 г.
  4. ^ abc «Документация по ядру Linux: Documentation/kdump/kdump.txt». ядро.орг . 12 августа 2013 года . Проверено 9 августа 2014 г.
  5. Такаши Иваи (26 июля 2006 г.). «Отладка с помощью Kdump» (PDF) . СУЗЕ . Проверено 9 августа 2014 г.
  6. ^ «29.2.2. Использование утилиты настройки дампа ядра (Руководство по развертыванию Red Hat Enterprise Linux 6)» . Красная Шапка . Проверено 9 августа 2014 г.
  7. ^ «kexec и kdump: базовая конфигурация kdump (Руководство по системному анализу и настройке)» . СУЗЕ . 25 апреля 2014 года . Проверено 9 августа 2014 г.
  8. ^ «Как использовать kdump для отладки сбоев ядра» . Федора . 9 апреля 2014 года . Проверено 9 августа 2014 г.
  9. Дэвид Андерсон (27 августа 2010 г.). «Информационный документ: Утилита Red Hat Crash». Красная Шапка . Проверено 9 августа 2014 г.
  10. ^ «kexec и kdump: анализ аварийного дампа (Руководство по системному анализу и настройке)» . СУЗЕ . 25 апреля 2014 года . Проверено 9 августа 2014 г.
  11. ^ «Ядро Linux 2.6.13» . kernelnewbies.org . 29 августа 2005 года . Проверено 9 августа 2014 г.

Внешние ссылки