Il servizio watchdog

Tempo di lettura: 2 minuti
Aggiornata 3 mesi fa

Nel luglio 2024 i servizi Cloud VPS hanno sostituito i precedenti Server Cloud. I servizi attivati in precedenza restano pienamente supportati e tutte le guide riferite ai Cloud VPS rimangono valide anche per i vecchi Server Cloud. In alcuni punti gli screen illustrativi potrebbero riportare ancora la vecchia dicitura, ma le indicazioni sono comunque corrette.

I piani Cloud VPS e le istanze virtuali (virtual machine) dei Private Cloud prevedono una funzionalità che assicura il ripristino automatico del sistema in caso di kernel panic: il servizio di watchdog, supportato dai sistemi operativi Linux CentOS, Debian e Ubuntu.

Cos’è il Linux kernel watchdog?

Si tratta di un meccanismo di sicurezza e monitoraggio integrato nel kernel di Linux, progettato per rilevare e gestire situazioni in cui il sistema operativo o parti del kernel stesso smettono di funzionare correttamente. Il watchdog dovrebbe intervenire autonomamente riavviando il sistema in condizioni di kernel panic o di fuori RAM, in caso ci sia un eccessivo carico o, più in generale, nel caso in cui la macchina non risponda.

Attenzione! Configurazioni errate di watchdog possono causare problemi come:

  • loop di riavvio senza fine;
  • corruzione di dati dovuti agli arresti forzati;
  • riavvii casuali non previsti.

Si raccomanda di non modificare i parametri del servizio senza essere certi delle implicazioni.

Il modulo watchdog

Ci sono due timer che watchdog utilizza: uno hardware e uno software. Al termine del timer software, questo fa ripartire il timer hardware. In caso il timer software non effettui l’azzeramento di quello hardware, viene effettuato un reset hardware  del sistema.

Per verificare che watchdog sia correttamente caricato nel sistema controllate che esista il file /dev/watchdog. Il sistema continuerà a scrivere all’interno di /dev/watchdog, e in caso fallisca la sua scrittura, dopo un po’ verrà riavviato.

Il demone watchdog

Il demone watchdog fornisce il refresh necessario (software) per evitare che il sistema venga riavviato. Esso può testare l’accessibilità a file, carico del server (CPU e I/O), raggiungibilità di IP via ping, traffico di rete, temperatura, processi i esecuzione e molto altro. Se uno di questi test fallisce, il watchdog effettua il riavvio del server.

Start e stop di watchdog

Il servizio watchdog dovrebbe partire al boot del server, è possibile controllare che il processo sia in esecuzione tramite il seguente comando:

ps -af | grep watch*

É possibile stoppare comunque il servizio di watchdog tramite i soliti comandi:

service watchdog stop
service watchdog start

Modificare il comportamento di watchdog

Puoi modificare a tuo piacimento il comportamento di watchdog attivando, per esempio, il riavvio del server in base al carico di lavoro.

Il file da modificare è /etc/watchdog.conf e, per esempio, per attivare il riavvio con un carico al di sopra di 10 punti sulla media dei 5 minuti, imposta il seguente valore sul file .conf:

max-load-5=10

Un volta modificati i valori del file di configurazione, stoppa e riavvia il servizio:

service watchdog stop 
service watchdog start

Per maggiori informazioni sui parametri disponibili, ti consigliamo di consultare il manuale ufficiale: https://linux.die.net/man/5/watchdog.conf

[print-me target=".print-target" printstyle="pom-small-black"/]