Debian watchdog (Stretch)

Innen: AdminWiki

A hardver watchdog olyan szerkezet, amelyik igyekszik észlelni a számítógép "lefagyását" mely esetben (lehetőleg hardveresen) újraindítja azt. Az eszköz lehet hardver kártya, illetve integrálva lehet az alaplapi chipsetbe. Általában úgy működik, hogy inicializálás után elvárja, hogy az operációs rendszer (pl. egy portra írással) periodikusan jeleket adjon neki (heartbeat). Ha ez a jel az inicializálásnál beállított ideig kimarad, az eszköz resetel.

A szoftver watchdog olyan program, amelyik periodikusan figyel beállított paramétereket - load, ping time, stb. - és beállított határértékük meghaladása esetén szabályos újraindítást (reboot) végez. Ez tehát "lefagyott" gép esetén nem használható, arra az esetre való, amikor az operációs rendszer még működik, de a gép már semmi hasznosat nem csinál.

A Debian watchdog daemon mindkettőt kezeli. TODO: natív systemd megoldást keresni!

Watchdog driver

Ha van a gépben hardware watchdog device (és a Debian tartalmazza hozzá a drivert), akkor használjuk azt; ha nincsen, akkor használjuk a software watchdog modult.

Intel chipset built-in

Intel chipset esetén (ICH4,5,6,7, stb.) - gyári kernellel - érdemes kipróbálni hogy van-e built-in watchdog:

ls /dev/watchdog
# Ha megvan az eszköz, a továbbiakat átléphetjük.
# Ha nincs device, vajon be van-e töltve a kernel modul?
lsmod | grep iTCO_wdt
# Ha nem lenne betöltve, próbáljuk meg:
modprobe iTCO_wdt heartbeat=30

Siker esetén létezni fog a /dev/watchdog device. Ha szükséges, egy, a /etc/modules-load.d könyvtárbeli include állománnyal írjuk elő a kernel modul betöltését, hogy az már a rendszerindulástól elérhető legyen:

-rw-r--r-- root root /etc/modules-load.d/watchdog.conf

iTCO_wdt heartbeat=30

Software watchdog

Ha nincs a gépben elérhető hardware watchdog (pl. virtuális gépen), akkor a softdog modult használhatjuk:

modprobe softdog

Ekkor létrejön a /dev/watchdog device. Siker esetén egy, a /etc/modules-load.d könyvtárbeli include állománnyal írjuk elő a modul betöltését, hogy az már a rendszerindulástól elérhető legyen:

-rw-r--r-- root root /etc/modules-load.d/watchdog.conf

softdog

Watchdog beállítások

Ha sikerült megfelelő watchdog drivert találni, akkor telepíteni kell a watchdog Debian csomagot, ami induláskor elindítja a figyelést, majd ébren is tartja:

apt-get install watchdog

Az eredeti állomány elmentése után készítsünk egy alkalmas /etc/watchdog.conf-ot (szoftver watchdog beállítások):

mv /etc/watchdog.conf /etc/watchdog.conf.bak
mcedit /etc/watchdog.conf

amelyben az alábbiakat írjuk elő:

-rw-r--r-- root root /etc/watchdog.conf

watchdog-device = /dev/watchdog

# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime                = yes
priority                = 1

# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
max-load-1              = 24
max-load-5              = 18
max-load-15             = 12

Indítsuk újra a watchdog daemont:

systemctl restart watchdog; tail -f /var/log/syslog 

Gyorsteszt: TODO!