У меня есть сторожевой пес?


11

Довольно часто, когда я делаю перезагрузку, я получаю следующее сообщение об ошибке:

kernel: watchdog watchdog0: watchdog did not stop!

Я пытался узнать больше о сторожевом таймере man watchdog, но в нем нет ручного ввода. Я попытался yum list watchdogи обнаружил, что он не был установлен. Однако, когда я смотрю на /devкаталог, я на самом деле обнаружил два сторожевых пса:

watchdog и watchdog0

Мне интересно. У меня действительно есть сторожевые псы? Почему ядро ​​жалуется, что оно не остановилось, когда я делаю перезагрузку?

Ответы:


7

Самое современное аппаратное обеспечение ПК включает средства сторожевого таймера. Вы можете прочитать больше о них здесь через википедию: сторожевые таймеры . Также из документации по ядру Linux:

выдержка - https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt

Сторожевой таймер (WDT) - это аппаратная схема, которая может перезагрузить компьютерную систему в случае сбоя программного обеспечения. Вы, наверное, уже знали это.

Обычно демон userpace уведомляет драйвер сторожевого устройства ядра через специальный файл устройства / dev / watchdog о том, что пространство пользователя все еще активно, через регулярные промежутки времени. Когда такое уведомление происходит, водитель обычно сообщает аппаратному сторожевому устройству, что все в порядке, и что сторожевой таймер должен подождать еще немного, чтобы перезагрузить систему. Если произойдет сбой в пользовательском пространстве (ошибка ОЗУ, ошибка в ядре и т. Д.), Уведомления прекратятся, и аппаратный сторожевой таймер перезагрузит систему (вызвав перезагрузку) после истечения времени ожидания.

Linux watchdog API - это довольно специальная конструкция, и разные драйверы реализуют разные, а иногда и несовместимые части. Этот файл является попыткой документировать существующее использование и позволить будущим авторам драйверов использовать его в качестве ссылки.

Это SO Q & A под названием « Кто обновляет аппаратный сторожевой таймер в Linux»? , охватывает связь между ядром Linux и аппаратным сторожевым таймером.

А как насчет сторожевой пакет?

Описание в RPM проясняет это, ИМО. watchdogДемон может либо выступать в качестве программного обеспечения сторожевого или может взаимодействовать с аппаратной реализацией.

выдержка из описания RPM

Программа сторожевого таймера может использоваться в качестве мощного программного сторожевого демона или может альтернативно использоваться с аппаратным сторожевым устройством, таким как интерфейс драйвера аппаратного сторожевого таймера IPMI, с резидентным контроллером управления материнской платой (BMC). watchdog периодически пишет в / dev / watchdog; Интервал между записями в / dev / watchdog настраивается с помощью настроек в файле watchdog sysconfig.

Этот файл конфигурации также используется для установки сторожевого таймера, который будет использоваться в качестве аппаратного сторожевого таймера вместо его программной сторожевой операции по умолчанию. В любом случае, если устройство открыто, но не записано в течение заданного периода времени, истечение срока действия сторожевого таймера приведет к перезагрузке компьютера. При работе в качестве программного сторожевого устройства возможность перезагрузки будет зависеть от состояния машины и прерываний.

При работе в качестве аппаратного сторожевого устройства аппарат будет подвергнут жесткому сбросу (или любому другому действию, которое было настроено для выполнения по истечении срока действия сторожевого таймера), инициированному BMC.


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

1
@QuestionOverflow - насколько я понимаю, система предоставляет функцию сторожевого таймера (это по сути аппаратное обеспечение). Следовательно, ядро ​​владеет им и управляет этим оборудованием так же, как и любым другим оборудованием в системе. Вы пользователь взаимодействуете с ним через ядро, но не владеете им ни в каком официальном качестве. Вы просто потребитель этого. WDT используются в качестве встроенной защиты на случай, если запущенное программное обеспечение связывает оборудование непредвиденным образом. Это механизм безопасности, который позволяет системе восстанавливаться.
SLM

Я вижу .. Но, кажется, я могу взаимодействовать с ним напрямую, если я устанавливаю сторожевой таймер. Кажется, есть файл конфигурации /etc/watchdog.confдля непосредственного изменения его поведения.
Вопрос переполнен

@QuestionOverflow - взгляните на описание сторожевого таймера в RPM. Это все объясняет. Я добавлю его в мой А.
slm
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.