Перестаём терять stack trace после kernel panic: Настраиваем systemd-pstore на Linux
Segfault в пользовательском пространстве оставляет после себя труп процесса. Kernel panic оставляет после себя перезагрузку - и часто ничего полезного в системном журнале.
Если машина уходит в жесткий ресет, зависает или срабатывает watchdog, последние полезные строки из dmesg умирают вместе с предыдущей загрузкой. Именно для этого и нужен Linux pstore: это крошечное энергонезависимое хранилище (переменные UEFI, ACPI ERST или зарезервированная RAM через ramoops), которое может сохранить хвост лога ядра между перезагрузками. Затем systemd-pstore при следующей загрузке архивирует эти записи в /var/lib/systemd/pstore/ и в журнал, после чего очищает небольшой бэкенд, чтобы место осталось и для следующего паники.
Это не kdump. Вы не получите полный vmcore. Зато вы получите стек паники и последние сообщения ядра после неудачной перезагрузки - причем практически без поднятия инфраструктуры.
В этом руководстве мы будем придерживаться документированного поведения из systemd-pstore.service(8), pstore.conf(5), вендорского фрагмента tmpfiles.d и документации ядра по ramoops.
https://telegra.ph/Perestayom-teryat-stack-trace-posle-kernel-panic-Nastraivaem-systemd-pstore-na-Linux-08-01
#ит_статьи #devops #linux #kernel #panic #pstore #dmesg