Síntesis del Linux kernel watchdog
12 de junio de 2017 • fjbalon
El watchdog (perro guardían o vigilante) del kernel de Linux se utiliza para monitorizar y vigilar un sistema que se está ejecutando, de forma que pueda ser reiniciado automáticamente en caso de fallo de software irrecuperable.
El módulo de watchdog es específico para el hardware o chip que se utiliza.
Los usuarios, por norma general, no necesitan de vigilancia en sus sistemas, pues pueden ellos mismos restablecer el sistema manualmente; así está pensado para dispositivos críticos que requieran de restablecimientos sin intervención humana, por ejemplo servidores en una ubicación remota o equipos integrados en naves espaciales.
En su intervención es necesario proceder con precaución, ya que configuraciones incorrectas o erróneas podrían provocar:
Por lo que es preferible evitar el uso de servidores en vivo para probar el funcionamiento de watchdog.
La funcionalidad de watchdog sobre hardware configura un temporizador que agota el tiempo de espera después de un período predeterminado. El software de watchdog actualiza periódicamente el temporizador del hardware, y si éste deja de actualizarse luego del período establecido el temporizador realizará un restablecimiento de hardware del dispositivo. Para que un temporizador watchdog sea funcional, el fabricante de la placa base tiene que permitir esta funcionalidad en el chip.
A menudo, la documentación del fabricante de hardware no deja claro sobre si se implementó o no esta funcionalidad. En ese caso hay que testearlo directamente.
Además es necesario el módulo del kernel de vigilancia correcto, que será cargado en el sistema Linux. Diferentes chips utilizan diferentes módulos, por ejemplo:
Una vez corroborado la carga del módulo es posible verificar
El demonio de watchdog abre el dispositivo y proporciona la actualización necesaria para evitar que el sistema se restablezca. Éste puede comprobar el espacio de la tabla de procesos, el uso de memoria (memory usage), la accesibilidad de archivos, la carga de trabajo, desbordamientos en la tabla de archivos, ping a direcciones IP, tráfico de interfaz de red, temperatura, procesos en ejecución, etc. Como ya hemos visto, si las pruebas fallan el perro provocará el apagado.
El demonio de watchdog debería iniciarse en el momento del arranque. Podemos verificar si está iniciado con:
ps -af | grep watch*
Si el kernel no estuviera compilado con
Si queremos comprobar que el control de hardware está funcionando, podemos lanzar la siguiente orden con privilegios root:
cat >> /dev/watchdog
Una vez haya pasado el tiempo esperado, dependiendo de la configuración del kernel, el sistema realizará el hard reboot.
Una vez conocemos watchdog, podemos iniciar su configuración. El fichero de configuración de watchdog se encuentra en
# cat /etc/watchdog.conf
realtime = yes
priority = 1