¿Tengo un perro guardián?

11

Muy a menudo, cuando reinicio, aparece el siguiente mensaje de error:

kernel: watchdog watchdog0: watchdog did not stop!

Intenté averiguar más sobre watchdog haciendo man watchdog, pero dice que no hay entrada manual. Intenté yum list watchdogy descubrí que no estaba instalado. Sin embargo, cuando miro el /devdirectorio, en realidad encontré dos perros guardianes:

watchdog y watchdog0

Tengo curiosidad ¿De verdad tengo perros guardianes? ¿Por qué el núcleo se queja de que no se detuvo cuando reinicio?

Desbordamiento de preguntas
fuente

Respuestas:

7

El hardware de PC más moderno incluye funciones de temporizador de vigilancia. Puede leer más sobre ellos aquí a través de wikipedia: Watchdog Timers . También de los documentos del kernel de Linux:

extracto: https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt

Un temporizador de vigilancia (WDT) es un circuito de hardware que puede restablecer el sistema informático en caso de una falla de software. Probablemente ya lo sabías.

Por lo general, un demonio de espacio de usuario notificará al controlador de vigilancia del kernel a través del archivo de dispositivo especial / dev / watchdog que el espacio de usuario todavía está vivo, a intervalos regulares. Cuando se produce una notificación de este tipo, el controlador generalmente le indicará al perro guardián del hardware que todo está en orden y que el perro guardián debería esperar un momento más para reiniciar el sistema. Si el espacio de usuario falla (error de RAM, error del kernel, lo que sea), las notificaciones dejan de ocurrir y el perro guardián del hardware reiniciará el sistema (provocando un reinicio) después de que se agote el tiempo de espera.

La API de vigilancia de Linux es una construcción bastante ad-hoc y diferentes controladores implementan partes diferentes y, a veces, incompatibles. Este archivo es un intento de documentar el uso existente y permitir que los futuros escritores de controladores lo utilicen como referencia.

Este SO Q&A titulado, ¿Quién está actualizando el watchdog de hardware en Linux? , cubre el enlace entre el kernel de Linux y el temporizador de vigilancia del hardware.

¿Qué pasa con el paquete de vigilancia?

La descripción en el RPM lo deja bastante claro, en mi opinión. El watchdogdaemon puede actuar como un perro guardián de software o puede interactuar con la implementación del hardware.

extracto de la descripción de RPM

El programa de vigilancia se puede usar como un poderoso demonio de vigilancia de software o se puede usar alternativamente con un dispositivo de vigilancia de hardware, como la interfaz del controlador de vigilancia de hardware de IPMI a un controlador de administración de placa base (BMC) residente. watchdog escribe periódicamente en / dev / watchdog; El intervalo entre las escrituras en / dev / watchdog es configurable a través de la configuración en el archivo sysconfig de watchdog.

Este archivo de configuración también se usa para configurar el watchdog para que se use como un watchdog de hardware en lugar de su operación predeterminada de watchdog de software. En cualquier caso, si el dispositivo está abierto pero no está escrito dentro del período de tiempo configurado, la caducidad del temporizador de vigilancia activará el reinicio de la máquina. Cuando funciona como un perro guardián de software, la capacidad de reiniciar dependerá del estado de la máquina y las interrupciones.

Al operar como un perro guardián de hardware, la máquina experimentará un restablecimiento completo (o cualquier acción que se haya configurado para que se realice al vencimiento del temporizador del perro guardián) iniciada por el BMC.

slm
fuente
Gracias, el documento del kernel es útil. Para aclarar, ¿significa esto que el núcleo posee un perro guardián y que el usuario, yo, no posee uno ya que no he instalado ninguno?
Desbordamiento de preguntas
1
@QuestionOverflow: según tengo entendido, el sistema proporciona la función de vigilancia (es esencialmente hardware). Por lo tanto, el núcleo lo posee y administra este hardware tal como lo haría con cualquier otra pieza de hardware dentro del sistema. Usted, el usuario, interactúa con él a través del núcleo, pero no lo posee en ninguna capacidad oficial. Simplemente eres un consumidor de eso. Los WDT se usan como protección incorporada, en caso de que el software en ejecución inmovilice el hardware de formas imprevistas. Son un mecanismo de seguridad que le permite al sistema la capacidad de recuperación.
slm
Ya veo ... Pero parece que puedo interactuar con él directamente si instalo watchdog. Parece que hay un archivo de configuración /etc/watchdog.confpara alterar su comportamiento directamente.
Desbordamiento de preguntas
@QuestionOverflow: eche un vistazo a la descripción del watchdog en el RPM. Lo explica todo. Lo
agregaré