Debian watchdog (Wheezy)

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 működik, 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.

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:

modprobe iTCO_wdt heartbeat=30

Ha van, akkor létrejön a /dev/watchdog device. Siker esetén a /etc/modules-be be kell rakni az iTCO_wdt modult hogy induláskor elérhető legyen:

echo "# Watchdog" >>/etc/modules
echo iTCO_wdt heartbeat=30 >>/etc/modules

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 a /etc/modules-be be kell rakni az softdog modult hogy induláskor elérhető legyen:

echo "# Watchdog" >>/etc/modules
echo softdog >>/etc/modules

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 majd ébren is tartja:

apt-get install watchdog

Szerkesszük meg a /etc/watchdog.conf-ot (szoftver watchdog beállítások):

-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

és indítsuk újra a watchdog daemont:

/etc/init.d/watchdog restart; tail -f /var/log/syslog 

Gyorsteszt

A memória nullával történő teleírása lefagyasztja a gépet (megjegyzés: ezt a GRSec-es kernel nem fogja hagyni, mint ahogy a fork bombát is megöli, úgyhogy TODO!):

cat /dev/zero > /dev/mem

de ha minden jól csináltunk és működik a watchdog, akkor 30 másodpercen belül újraindul a masinánk :-).