Устранение проблем с kdump в CentOS / RHEL

by itisgood

Механизм kdump – это функция ядра Linux, которая позволяет создавать дампы в случае сбоя ядра.

Он производит точную копию памяти, которую можно проанализировать на предмет первопричины сбоя.

Это скрипт, который настраивает kdump (дамп ядра).

Kdump предоставляет дамп памяти в файл с именем vmcore, когда в ядре возникает критическая проблема.

Vmcore часто требуется, чтобы исследовать проблему.

Аварийный дамп записывается из контекста недавно загруженного ядра, а не из контекста аварийного ядра. Kdump использует kexec для загрузки второго ядра при сбое системы.

Kexec – это механизм быстрой загрузки, который позволяет перезагружать новое ядро Linux из контекста работающего ядра без прохождения прошивки или горячего запуска.

В этом посте объясняются шаги по устранению распространенных проблем с kdump.

Проверка настройки kdump

1. Проверьте, установлен ли в системе пакет kexec-tools.

# rpm -qa | grep kexec

2. Проверьте командную строку ядра в текущем работающем ядре на наличие параметра «crashkernel»:

# cat /proc/cmdline

3. Проверьте, зарезервирована ли память для аварийного ядра при запуске ядра:

# dmesg | grep Reserving

4. Проверьте путь к дампу:

# grep -v ^# /etc/kdump.conf

5. Проверьте объем памяти, доступный в файловой системе, указанной в параметре пути на предыдущем шаге:

# df -h

6. Проверьте состояние сервиса kdump:

# service kdump status         ### В CentOS/RHEL 6
# systemctl status kdump       ### В CentOS/RHEL 7

Когда служба Kdump не работает

1. Проверьте настройку kdump, следуя приведенному выше разделу.

2. Запустите сервис kdump

# service kdump status        ### In CentOS/RHEL 6
# systemctl status kdump      ### In CentOS/RHEL 7

3. Проверьте ошибку с терминала.

4. Дополнительную информацию об ошибке запуска службы kdump можно найти в /var/log/messages.

Когда настройка kdump в порядке, а состояние службы kdump работает, но vmcore не генерируется при возникновении сбоя

1. Отредактируйте файл /etc/kdump.conf и добавьте следующую строку, чтобы получить оболочку при сбое генерации vmcore:

default shell

2. В оболочке проверьте доступное хранилище, проверьте, смонтирована ли целевая файловая система vmcore, а затем попробуйте скопировать vmcore вручную и определить,работает ли он.

# cp /proc/vmcore [destination]

Когда оболочка не получена и crashkernel застряло при загрузке

1. Проверьте сообщения на консоли и найдите сообщения о запуске аварийного ядра.

Ищите, где оно застряло.

Crashkernel – это то же самое ядро, которое запускается при запуске системы, и, следовательно, можно увидеть сообщения, похожие на обычные сообщения о загрузке ядра, но с активированными ограниченными устройствами. Например: в аварийном ядре включен только 1 процессор. Обнаружен только целевой диск хранения.

2. Если вы видите сообщения об ошибках выделения страниц, высока вероятность того, что зарезервированного crashkernel недостаточно, и вам потребуется увеличить значение параметра ядра ‘crashkernel’.

 

You may also like

Leave a Comment