Erinevus lehekülje "FreeBSD Watchdog" redaktsioonide vahel

Allikas: Kuutõrvaja
(Uus lehekülg: '===FreeBSD kerneli baasil toimiv Watchdog=== Watchdog on mikrokontrollerites levinud lahendus. Igasugustes väikestes kivides, pultides jms kohtades. Andes nii neile suure töökin...')
 
 
(ei näidata sama kasutaja 14 vahepealset redaktsiooni)
1. rida: 1. rida:
===FreeBSD kerneli baasil toimiv Watchdog===
+
{{Täienda}}
 +
 
 +
===Sissejuhatus===
  
 
Watchdog on mikrokontrollerites levinud lahendus. Igasugustes väikestes
 
Watchdog on mikrokontrollerites levinud lahendus. Igasugustes väikestes
 
kivides, pultides jms kohtades. Andes nii neile suure töökindluse.
 
kivides, pultides jms kohtades. Andes nii neile suure töökindluse.
  
BSD saab läbi kerneli panna tiksuma watchdog countdowni...ehk mahalugemise. Kuni töötab teatud deemon (watchdogd) siis lükkab see deemon iga sekundi järel countdowni nulli. Kui aga masin panges siis jookseb countdown lõpuni ja emaplaat teeb masinale reboodi.
+
Paljud emaplaadid on varustatud spetsiaalse kiibiga mida saab seadistada tegema masinale restardi kui OS pole talle endast mõni aeg märka andnud. Täpsemalt toimib see nõnda, et kiibis pannakse tiksuma countdown - ehk mahalugemine, mille lõppedes tehakse restart. Kuni süsteemis töötab teatud deemon (watchdogd) siis lükkab see iga sekundi järel emaplaadil asuva mahalugemise/countdowni uuesti tagasi algusesse. Kui aga masin on kinni kiilunud siis jookseb countdown takistuseta lõpuni ja emaplaadi kontroller teeb arvutile restardi.
Mitte päris täielik lahendus aga asjalik kindlasti.
 
  
FreeBSD sisaldab tarkvaralist watchdog võimalust mis viib masina rebooti kui kui see peaks kokku jooksma.
+
===Raudvaraline valvekoer===
  
Laadime ichwd mooduli. Täpsem nimetus asjal Intel ICH watchdog interrupt timer.
+
Laadime ichwd mooduli. Täpsem nimetus asjal Intel ICH watchdog interrupt timer. NB! Kui emaplaat ei toeta seda lahendust saab kasutada vaid tarkvaralist ehk kernelisse endasse sisseehitatud timerit mis pole kaugeltki sama tõhus.
NB! Kui emaplaat ei toeta seda lahendust saab kasutada vaid tarkvaralist ehk kernelisse endasse
 
sisseehitatud timerit mis pole kaugeltki sama tõhus.
 
  
 
  # kldload ichwd
 
  # kldload ichwd
  
Väljund
+
Dmesg väljund peaks peale seda välja nägema umbes järgnev:
  
 
  ichwd module loaded
 
  ichwd module loaded
21. rida: 20. rida:
 
  ichwd0: Intel ICH7 watchdog timer (ICH7 or equivalent)
 
  ichwd0: Intel ICH7 watchdog timer (ICH7 or equivalent)
  
loader.conf fiali
+
/boot/loader.conf faili tuleb lisada:
  
 
  ichwd_load="YES"
 
  ichwd_load="YES"
  
Esiteks on vaja ehitada kernel võtmega:
+
Teiseks on vaja lisada faili /etc/rc.conf rida watchdogd startimise kohta:
  
  options SW_WATCHDOG
+
  watchdogd_enable="YES"
  
Teiseks on vaja lisada faili /etc/rc.conf rida
+
Ja käivitada see käsuga:
  
  watchdogd_enable="YES"
+
  # /etc/rc.d/watchdogd start
  
Peale järgmist rebooti käivitatakse watchdogd deemon. Deemon käib iga sekund
+
Peale järgmist rebooti käivitatakse watchdogd deemon. Deemon käib iga sekund kerneli kaudu emaplaadil asuvat timerit resetimas. Kui tappa protsess tavalisel moel eemaldab see etevaatlikult kivilt timer'i. Kuid kui tappa deemon -9 signaaliga siis timer jääb toimima ja teeb masinale restardi.
kerneli kaudu emaplaadil asuvat timerit resetimas. Kui deemon pole aga 16 sekundit timerit restartinud
 
satub kernel paanikasse, väljastab katkestuste kohta info ja teeb reboodi.
 
  
 
Watchdogi saab sundida käivitama spetsiifilisi käske süsteemi kontrolliks, nt
 
Watchdogi saab sundida käivitama spetsiifilisi käske süsteemi kontrolliks, nt
41. rida: 38. rida:
 
  watchdogd_flags="-e /bin/ps"
 
  watchdogd_flags="-e /bin/ps"
  
Või
+
Pikemad parameetritega käsud tuleb eraldada ülakomadega.
  
 
  watchdogd_flags="-e 'ls -al /etc'"
 
  watchdogd_flags="-e 'ls -al /etc'"
  
Faili /etc/sysctl.conf oleks soovitatav lisada järgnevad read:
+
Kui käsk kldload ichwd Väljastab:
 +
 
 +
chwd module loaded
 +
ichwd0: <Intel 63XXESB watchdog timer> on isa0
 +
ichwd0: ICH WDT present but disabled in BIOS or hardware
 +
device_attach: ichwd0 attach returned 6
 +
ppc0: cannot reserve I/O port range
 +
 
 +
Siis tähendab see, et biosis tuleb watchdog sisse lülitada.
 +
 
 +
===Tarkvaraline valvekoer===
 +
 
 +
Juhul kui emaplaat ei toeta raudwaralist watchdogi on võimalik kasutada ka tarkvaralist võimalust ehk lisada see kernelisse. Selline lahendus pole küll nii tõhus nagu on riistvaraline aga asi seegi. Kasutamiseks tuleb ehitada kernel võtmega:
 +
 
 +
options SW_WATCHDOG
 +
 
 +
Seejärel tuleb käivitada watchdogd deemon nagu ülal kirjeldatud. Kui deemon pole aga 16 sekundit timerit restartinud
 +
satub kernel paanikasse, väljastab katkestuste kohta info ja teeb reboodi.
 +
 
 +
PS: Faili /etc/sysctl.conf oleks soovitatav lisada järgnevad read:
  
 
  # selleks, et paanika korral tehtaks reboot mitte ei laskutaks debugerisse
 
  # selleks, et paanika korral tehtaks reboot mitte ei laskutaks debugerisse
52. rida: 68. rida:
 
  # et paanikas ei proovitaks peale paanikat suurt dump faili kettale kirjutada (mis võib takistada masinal restarti teha)
 
  # et paanikas ei proovitaks peale paanikat suurt dump faili kettale kirjutada (mis võib takistada masinal restarti teha)
 
  kern.coredump=0
 
  kern.coredump=0
 
and have modified /etc/rc.d/watchdogd to pass "-t 300" to the daemon instead of the default 16.
 
  
 
* http://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug-options.html
 
* http://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug-options.html
  
Probleemide korral, ehk kui käsk:
+
* http://rwmj.wordpress.com/2010/03/03/what-is-a-watchdog/ KVM watchdog
 
 
# kldload ichwd
 
 
 
Väljastab:
 
 
 
chwd module loaded
 
ichwd0: <Intel 63XXESB watchdog timer> on isa0
 
ichwd0: ICH WDT present but disabled in BIOS or hardware
 
device_attach: ichwd0 attach returned 6
 
ppc0: cannot reserve I/O port range
 
 
 
Siis tuleb bios'ist kõigepealt watchdog lubada.
 

Viimane redaktsioon: 29. november 2011, kell 20:29

                                        Roheline.jpg Toores. Ehk seda pala võib täiendada.

Sissejuhatus

Watchdog on mikrokontrollerites levinud lahendus. Igasugustes väikestes kivides, pultides jms kohtades. Andes nii neile suure töökindluse.

Paljud emaplaadid on varustatud spetsiaalse kiibiga mida saab seadistada tegema masinale restardi kui OS pole talle endast mõni aeg märka andnud. Täpsemalt toimib see nõnda, et kiibis pannakse tiksuma countdown - ehk mahalugemine, mille lõppedes tehakse restart. Kuni süsteemis töötab teatud deemon (watchdogd) siis lükkab see iga sekundi järel emaplaadil asuva mahalugemise/countdowni uuesti tagasi algusesse. Kui aga masin on kinni kiilunud siis jookseb countdown takistuseta lõpuni ja emaplaadi kontroller teeb arvutile restardi.

Raudvaraline valvekoer

Laadime ichwd mooduli. Täpsem nimetus asjal Intel ICH watchdog interrupt timer. NB! Kui emaplaat ei toeta seda lahendust saab kasutada vaid tarkvaralist ehk kernelisse endasse sisseehitatud timerit mis pole kaugeltki sama tõhus.

# kldload ichwd

Dmesg väljund peaks peale seda välja nägema umbes järgnev:

ichwd module loaded
ichwd0: <Intel ICH7 watchdog timer> on isa0
ichwd0: Intel ICH7 watchdog timer (ICH7 or equivalent)

/boot/loader.conf faili tuleb lisada:

ichwd_load="YES"

Teiseks on vaja lisada faili /etc/rc.conf rida watchdogd startimise kohta:

watchdogd_enable="YES"

Ja käivitada see käsuga:

# /etc/rc.d/watchdogd start

Peale järgmist rebooti käivitatakse watchdogd deemon. Deemon käib iga sekund kerneli kaudu emaplaadil asuvat timerit resetimas. Kui tappa protsess tavalisel moel eemaldab see etevaatlikult kivilt timer'i. Kuid kui tappa deemon -9 signaaliga siis timer jääb toimima ja teeb masinale restardi.

Watchdogi saab sundida käivitama spetsiifilisi käske süsteemi kontrolliks, nt

watchdogd_flags="-e /bin/ps"

Pikemad parameetritega käsud tuleb eraldada ülakomadega.

watchdogd_flags="-e 'ls -al /etc'"

Kui käsk kldload ichwd Väljastab:

chwd module loaded
ichwd0: <Intel 63XXESB watchdog timer> on isa0
ichwd0: ICH WDT present but disabled in BIOS or hardware
device_attach: ichwd0 attach returned 6
ppc0: cannot reserve I/O port range

Siis tähendab see, et biosis tuleb watchdog sisse lülitada.

Tarkvaraline valvekoer

Juhul kui emaplaat ei toeta raudwaralist watchdogi on võimalik kasutada ka tarkvaralist võimalust ehk lisada see kernelisse. Selline lahendus pole küll nii tõhus nagu on riistvaraline aga asi seegi. Kasutamiseks tuleb ehitada kernel võtmega:

options SW_WATCHDOG

Seejärel tuleb käivitada watchdogd deemon nagu ülal kirjeldatud. Kui deemon pole aga 16 sekundit timerit restartinud satub kernel paanikasse, väljastab katkestuste kohta info ja teeb reboodi.

PS: Faili /etc/sysctl.conf oleks soovitatav lisada järgnevad read:

# selleks, et paanika korral tehtaks reboot mitte ei laskutaks debugerisse
debug.debugger_on_panic=0

# et paanikas ei proovitaks peale paanikat suurt dump faili kettale kirjutada (mis võib takistada masinal restarti teha)
kern.coredump=0