NUT tarkvara kasutamine Debian Squeeze operatsioonisüsteemiga: erinevus redaktsioonide vahel
| 1550. rida: | 1550. rida: | ||
TODO |
TODO |
||
| + | [[Fail:20260908-eaton-9px-1500i-rt-2u-01.png|800px]] |
||
| − | TODO |
||
kus |
kus |
||
Redaktsioon: 8. september 2026, kell 19:47
Sissejuhatus
- FSD - forced shutdown sequence
Tööpõhimõte
Kõige olulisem katkematu toitepingeallika ja arvuti ühedamise tulemus peaks olema, et enne kui UPSi aku saab päris tühjaks, tehakse arvutile korralikult shutdown. Shutdowniga kaasnev sündmuste järgnevus võiks olla üldiselt selline
- UPS'i enda toide kaob ja UPS jätkab tööd oma aku pealt; NUT tarkvara saab UPS'ilt teada, et ta töötab aku pealt (OB - on battery)
- NUT tarkvara saab UPS'ilt teada, et aku ressurss hakkab lõppema (LB - low battery)
- NUT tarkvara käivitab operatsioonisüsteemi tavalise shutdown järgnevuse, moodustab /etc/powerkill faili (nö signaali saatmiseks)
- operatsioonisüsteemi shutdowni skript (praktiliselt skriptide kogumik) saab /etc/powerkill faili abil teada, et tuleb ütleda NUT tarkvara abil UPS'ile, et ta lülitaks kõnealuse arvuti toite välja
Kui UPS enda toide taastub (OL - on line), peaks reeglina UPS ootama arvuti toite taastamisega seni kuni aku on laaditud piisavalt selleks, et vajadusel kannatada shutdown järgnevust sooritada. NUT koosneb sellistest komponentidest
- draiverid - oskavad suhelda konkreetsete seadmete mudelitega
- upsd - suhteleb draiveriga, cache'ib andmeid
- upsmon - juhtib upsd kaudu katkematu toitepinge allikat, või vastupidi, allikast saadud andmete alusel otsustab arvuti shutdown'ida
Tarkvara paigaldamine
# apt-get install nut
Paigaldamise käigus moodustatakse kasutaja:grupp nut:nut
# id nut uid=107(nut) gid=111(nut) groups=111(nut)
Kusjuures serial ühenduse kasutamisel tuleb lisada nut kasutaja gruppi dialout.
Tarkvara seadistamine ja käivitamine
Operatsioonisüsteemi Debian Squeeze paketihalduse nut tarkvara seadistusfailid asuvad kataloogis /etc/nut kusjuures ei kasutata faili /etc/default/nut. Käivitusskript /etc/init.d/nut sooritab kolm tegevust
- laadib draiveri
- käivitab upsd deemoni
- käivitab upsmon deemoni
draiveri käivitamine
Seadistusfailis /etc/nut/ups.conf tuleb esmalt kirjeldada pingeallikale vastav draiver, nt bcmxcp mida sobib kasutada Powerware 5115 mudeliga üle serial ühenduse suhtlemiseks
[powerware5111] driver = bcmxcp port = /dev/ttyS0 desc = "AT"
ja seejärel öelda testimiseks, st et esitada milline käsk antakse draiveri käivitamiseks
# upsdrvctl -t start Network UPS Tools - UPS driver controller 2.4.3 *** Testing mode: not calling exec/kill 0.000000 .... 0.000476 Starting UPS: powerware5115 0.000534 exec: /lib/nut/bcmxcp -a powerware5115
ning draiveri tegelikuks käivitamiseks
# upsdrvctl start Network UPS Tools - UPS driver controller 2.4.3 Network UPS Tools - BCMXCP UPS driver 0.23 (2.4.3) RS-232 communication subdriver 0.17 Attempting to autodect baudrate Connected to UPS on /dev/ttyS0 with baudrate 9600
Draiveri töötamisega kaasneb selline protsess
# ps aux | grep bcmxcp | grep -v grep nut 8177 0.0 0.1 14484 616 ? Ss 11:52 0:00 /lib/nut/bcmxcp -a powerware5115
Draiveri seiskamiseks
# upsdrvctl stop Network UPS Tools - UPS driver controller 2.4.3
Tõenäoliselt saab draiveri korralikult töötamist kasutaja ise kõige vähem mõjutada, st see sõltub kasutatava UPS riistvarast ja ühendusest arvutiga. Draiveri käivitamise järel tasub vaadata, kas logifailidesse tekib vigu (nt /var/log/kern.log). Draiveri stabiilne vigadeta töötamine on eelduseks, et muud NUT tarkvara komponendid töötaksid korralikult.
upsd seadistamine
upsd deemonit juhivad failid /etc/nut/upsd.conf ja /etc/nut/upsd.users mis võiksid olla nt sellise sisuga
- /etc/nut/upsd.conf
LISTEN 127.0.0.1 3493
- /etc/nut/upsd.users
[local_mon] password = SalaJane123 upsmon master actions = SET instcmds = ALL
kus
- actions = set - sedasi saab upsrw utiliidiga teatud parameetrite väärtusi muuta
- instcmds - millised käske saab kasutada
upsmon seadistamine
upsmon komponenti juhib seadistusfail /etc/nut/upsmon.conf, mis võiks sisaldada nt, viimane rida tuleb kasutajal lisada
# egrep -v "^#|^$" /etc/nut/upsmon.conf MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5
MONITOR powerware5115@localhost 1 local_mon SalaJane123 master
Protsesesside käivitamine
Kuna käivitusskript /etc/init.d/nut laadib draiveri ja käivitab upsd ja upsmon protsessid, siis ei tohi enne selle kasutamist draiver olla laaditud
# /etc/init.d/nut start Starting Network UPS Tools: driver(s) upsd upsmon.
Tulemusena töötavad ja suhtlevad omavahel sellised protsessid, upsd kuulab pordil 3493/tcp
# ps U nut PID TTY STAT TIME COMMAND 3100 ? Ss 0:09 /lib/nut/bcmxcp -a powerware5115 3102 ? Ss 0:00 /sbin/upsd 3106 ? S 0:00 /sbin/upsmon
# netstat -anp -A inet | grep ups tcp 0 0 127.0.0.1:3493 0.0.0.0:* LISTEN 8391/upsd tcp 0 0 127.0.0.1:3493 127.0.0.1:49636 ESTABLISHED 8391/upsd tcp 0 0 127.0.0.1:49636 127.0.0.1:3493 ESTABLISHED 8395/upsmon
Arvuti töötamist ei sega, st sellega ei kaasne shutdown kui öelda
# /etc/init.d/nut stop # /etc/init.d/nut start
Millegipärast on lisaks nut skriptile endale talle link nimega ups-monitor
# ls -ld /etc/init.d/ups-monitor /etc/init.d/nut -rwxr-xr-x 1 root root 5454 Dec 27 2010 /etc/init.d/nut lrwxrwxrwx 1 root root 3 Aug 3 2012 /etc/init.d/ups-monitor -> nut
Märkused
Tundub, et vahel draiver lõpetab töötamise, protesside nimekirjast puudub sarnane rida
6912 ? Ss 0:00 /lib/nut/bcmxcp -a powerware5115
Sel puhul aitab öelda
# /etc/init.d/nut stop # /etc/init.d/nut start
NUT kasutamine
Pingeallikalt andmete küsimiseks sobib kasutada utiliiti upsc, kas ühe
# upsc powerware5115@localhost ups.status OL
või kõigi draiverile teada olevate andmete küsimiseks
# upsc powerware5115 ambient.temperature: 42 ambient.temperature.high: 75 battery.charge: 94 battery.runtime: 7082 battery.voltage: 38.85 device.mfr: Eaton device.model: PW5115 RM 1500i device.serial: GE116A0583 device.type: ups driver.name: bcmxcp driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ttyS0 driver.version: 2.4.3 driver.version.internal: 0.23 ... ups.status: OL
kus
- ups.status: OL - pingeallikas on liini toitel (ingl. k. on line), muud võimalikud olekud on OB (on battery), LB (low battery), RB (replace battery)
Pingeallikale korralduste andmine toimub upscmd utiliidiga
# upscmd -l powerware5115@localhost Instant commands supported on UPS [powerware5115]:
outlet.1.shutdown.return - Description unavailable outlet.2.shutdown.return - Description unavailable shutdown.return - Turn off the load and return when power is back shutdown.stayoff - Turn off the load and remain off test.battery.start - Start a battery test
UPSi sisemiste parameetrite muutmiseks sobib öelda upsrw, ilma argumentideta näitatakse, milliseid parameetreid saaks muuta koos olemasolevate väärtustega, muutmiseks sobib öelda nt
# upsrw -u local_mon -p parool -s outlet.1.desc="Teine valjapaas" eaton-9130 OK # upsc eaton-9130 outlet.1.desc Teine valjapaas
Low battery protsendi väärtuse määramine (tundub, et see ei ela puhvertoiteallika enda toite tagasitulemist üle)
# upsrw -s battery.charge.low=40 e9130
nut-cgi
Veebiliidese tarkvara paigaldamiseks sobib öelda
# apt-get install nut-cgi # a2enmod cgi # systemctl restart apache2
Veebiserveri seadisusfailis peab olema, Apache v. 2.2
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
Alias /nut/ "/usr/share/nut/www/"
Veebiserveri seadisusfailis peab olema, Apache v. 2.4
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> Alias /nut/ "/usr/share/nut/www/"
ning seadistusfailis /etc/nut/hosts.conf
MONITOR powerware5115@localhost "Local UPS"
Seejärel saab pöörduda aadressile
http://172.17.35.21/cgi-bin/nut/upsstats.cgi
NUT süsteemile teadaolevate puhvertoite-allikate nimekiri
Konkreetse pingeallika omadused
kus
- UPS mudel - 9130 3000 VA-T
- runtime
- ups temperatuur
- input - sisend V ja sagedus
- output - väljund V, A ja sagedus
- nut cgi liidese tööd juhib seadistufail /etc/nut/upsstats.html
upslog
Pingeallika andmeid saab logida tekstifaili etteantud formaadi, sageduse jms upslog programmi abil selliselt
root@at-dom0:~# upslog -l - -s powerware5115 -f "%TIME @Y@m@d @H@M@S% %VAR battery.charge% %VAR input.voltage% \ %VAR ups.load% [%VAR ups.status%] %VAR ambient.temperature% %VAR input.frequency%" -i 5 Network UPS Tools upslog 2.4.3 logging status of powerware5115 to - (5s intervals) 20110625 182347 94 222 0.2 [OL] 42 50.34 20110625 182352 94 225 0.2 [OL] 42 50.00 20110625 182357 94 225 0.2 [OL] 42 50.34 20110625 182402 94 222 0.2 [OL] 42 50.34 20110625 182407 94 225 0.2 [OL] 42 50.00 20110625 182412 94 225 0.2 [OL] 42 50.34 20110625 182417 94 222 0.2 [OL] 42 50.34 ...
upssched
TODO
NUT tarkvara abil puhvertoiteallika kasutamise testimine
Selleks, et veenduda NUT tarkvara abil seadistatud süsteemi korrektses toimimises tuleb kindlasti lahendust testida. Esmalt sobib selleks öelda
# upsmon -c fsd
Selle käsuga saadetakse upsmon protsessile fsd (forced shutdown) signaal so sama signaal, mille akude tühjenemisel saadab upsmon protsessile läbi upsd serveri ups ise. Seejärel upsmon käivitab arvuti shutdown järgnevuse.
Päris testiks oleks UPS enda toite eemaldamine ning arvutis toimuvate sündmuste jälgimine
- upsmon protsessi logi /var/log/daemon.log failis
- upsd protsessi logi /var/log/daemon.log failis
- upsc ups.status väärtuse muutumine OL -> OB
- ups-cgi väljundi jälgimine veebiliideses
- arvuti konsooli jälgimine ja veendumine, et soortitatakse korrektselt shutdown
- UPS'ile toite tagasiühendamisel peab arvuti uuesti käivituma (soovitavalt mitte koha, aga kui akud on niivõrd laaditud, et vajadusel kannataksid nad ära teha järgmist shutdown'i)
Aku test
Eeldusel, et UPS seda toetab, saab talle öelda nii
# upscmd -u kasutaja -p parool powerware5115@localhost test.battery.start
Seejärel lülitatakse UPS käima aku pealt, logisse tekitab midagi sellist
Mar 29 12:03:12 at-dom0 bcmxcp[6045]: [test.battery.start] Testing now Mar 29 12:03:24 at-dom0 upsmon[6084]: UPS powerware5115@localhost on battery
Mitme arvuti kasutamine ühe UPSiga
Tööpõhimõte
Mitme arvuti kasutamisel ühe UPSiga on otstarbekas korraldada nii, et kõik arvutid teevad shutdown kui UPS enda toide on olnud piisavalt kaua ära. Selleks on UPS ühendatud ühe arvutiga (NUT master) ning muud arvutid (NUT slave) suhtlevad NUT masteriga
NUT master NUT slave 1 NUT slave 2
_____ _____ _____
| | | | | |
|_____| |_____| |_____|
| 3493/tcp | |
| | |
---|-------------------|---------------|---
kus
- NUT masteris kuulab upsd protsess pordil 3493/tcp slave arvutite pöördumisi
NUT serveri seadistamine
NUT serveris tuleb kirjeldada lisaks NUT klientide ligipääsud failis /etc/nut/upsd.users, nt arvutite moraal ja fs jaoks
... [slave_moraal] password = parool_moraal upsmon slave
[slave_fs] password = parool_fs upsmon slave
NUT serverile ligipääsu piiramiseks soovitatakse kasutada lisaks paketifiltrit.
NUT klientide kasutamine
NUT klientides peab käima vaid upsmon protsess, kusjuures upsmon.conf seadistusfailis on kirjeldatud NUT serveri ühendus, nt reaga
MONITOR powerware5115@172.17.35.21 1 slave_moraal parool_moraal slave
ning /etc/nut/nut.conf failis peab olema rida
MODE=netclient
Tulemusena logib klient serverisse näidatud kasutajana sisse porti 3493 ja üle suhteliselt hästi säiliva tcp ühenduse liigutatakse taolisi sõnumeid (Wireshark andmetel)
.. GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OL CHRG" GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OL CHRG" ... GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OB DISCHRG" GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OB DISCHRG" ... GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "FSD OB DISCHRG LB"
Süsteemi kasutamine
Peale upsmon protsesside käivitamist ilmub NUT masteri logisse
... Sep 3 18:07:05 keskus upsd[19074]: User local_mon@127.0.0.1 logged into UPS [powerware5115] Sep 3 18:07:05 keskus upsd[19074]: User slave_moraal@192.168.10.10 logged into UPS [powerware5115] Sep 3 18:13:23 keskus upsd[19074]: User slave_fs@192.168.10.211 logged into UPS [power5115]
kus
- esimene rida vastab lokaalses arvutis, st NUT masteris töötavale upsmon protsessile
- kask järgmist rida vastavad NUT klientidele
Mitme UPSi kasutamine ühe arvutiga
TODO
Probleemid
Tundub, et NUT (nii paketihalduse v. 2.4 kui lähtetekstist paigaldatud v. 2.6) ei taha töötada korrektselt USB kaudu
- bcmxcp_usb draiveri vead kern.log failis
Jun 24 13:37:26 at-dom0 kernel: [98427.223048] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110 Jun 24 13:37:28 at-dom0 kernel: [98428.551055] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110 Jun 24 13:37:29 at-dom0 kernel: [98429.703050] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110 Jun 24 13:37:30 at-dom0 kernel: [98430.855213] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110
- upsd vead daemon.log failis
Jun 24 05:42:29 at-dom0 upsd[16723]: Data for UPS [powerware5115] is stale - check driver Jun 24 05:42:34 at-dom0 upsd[16723]: UPS [powerware5115] data is no longer stale Jun 24 05:43:16 at-dom0 upsd[16723]: Data for UPS [powerware5115] is stale - check driver .. Jun 24 05:43:25 at-dom0 bcmxcp_usb[16655]: Warning: excessive comm failures, limiting error reporting Jun 24 05:43:25 at-dom0 bcmxcp_usb[16655]: Communications with UPS lost: Error executing command Jun 24 05:43:25 at-dom0 bcmxcp_usb[16655]: Short read from UPS .. Jun 24 13:31:59 at-dom0 upsd[25191]: Data for UPS [powerware5115] is stale - check driver Jun 24 13:31:59 at-dom0 upsd[25191]: UPS [powerware5115] data is no longer stale Jun 24 13:34:45 at-dom0 upsd[25191]: Data for UPS [powerware5115] is stale - check driver Jun 24 13:34:52 at-dom0 upsd[25191]: UPS [powerware5115] data is no longer stale
Monitooring Nagiosega
Pakett nagios-plugins-basic sisaldab check_ups kontrolli, mida sobib kasutada nt selliselt
# /usr/lib/nagios/plugins/check_ups -H localhost -u powerware5115 UPS OK - Status=Online Utility=222.0V Batt=94.0% Load=0.2% |voltage=222000mV;;;0 battery=94%;;;0;100 load=0%;;;0;100
ja kui UPS enda toide puudub
# /usr/lib/nagios/plugins/check_ups -H localhost -u powerware5115 UPS WARNING - Status=On Battery, Unknown Utility=0.0V Batt=90.0% Load=0.2% |voltage=0mV;;;0 battery=90%;;;0;100 load=0%;;;0;100
NUT kasutamine Debian Lenny operatsioonisüsteemiga
Debian Lenny sisaldab nut tarkvara v. 2.2.2, paigaldamiseks sobib öelda
# apt-get install nut
NUT kliendi kasutamisel tuleb
- seadisusfailis /etc/default/nut kasustada rida
# start upsmon START_UPSMON=yes
- seadistusfailis /etc/nut/upsmon.conf kasutada ridu
# egrep -v "^#|^$" /etc/nut/upsmon.conf MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5 MONITOR powerpal@192.168.10.250 1 slave_lenovo parool_lenovo slave
Käivitamiseks öelda
# /etc/init.d/nut
ePDU kasutamine
ePDU haldamine toimub üle SNMP, selleks tuleb ePDU haldusliideses lubada SNMP ning paigaldada nut-snmp pakett
# apt-get install nut-snmp
Seadistusfailis kasutada nt sektsiooni
[eaton-epdu] driver = snmp-ups port = 192.168.10.131 community = public snmp_version = v1 pollfreq = 15 desc = "Example SNMP v1 device"
Laadida prooviks draiver
# upsdrvctl start Network UPS Tools - UPS driver controller 2.6.4 Network UPS Tools - Generic HID driver 0.37 (2.6.4) USB communication driver 0.31 Using subdriver: MGE HID 1.31 Network UPS Tools - Generic SNMP UPS driver 0.66 (2.6.4) Detected Eaton ePDU MA 1P IN:IEC309 16A OUT:20xC13, 4xC on host 192.168.10.131 (mib: eaton_epdu 0.06)
Parameetreid saab esitada nt
# upsc eaton-epdu
TODO
- mis on nut-powerman-pdu pakett
SNMP kasutamine
Üldiselt sobib SNMP kasutada puhvertoiteallika seireks, kuigi tehnilises mõttes on võimalik ka upsi juhtida üle SNMP. Esmalt tuleb SNMP kaardi haldusliidses seadistada SNMP teenusele ligipääs, nt v1 protokolliga valides
Settings -> SNMP
Parema loetavuse saamiseks tasub kopeerida tootja lehelt MIB'id ja paigutada nt /var/tmp kataloogi
/var/tmp/stdupsv1.mib
ning uurida snmpwalk abil, mis paistab puhvertoiteallika SNMP kaardilt
# export MIBFILES=/var/tmp/stdupsv1.mib # snmpwalk -v 1 -c public 192.168.10.130 2>&1 | grep "^UPS-MIB" UPS-MIB::upsIdentManufacturer.0 = STRING: "Eaton" UPS-MIB::upsIdentModel.0 = STRING: "Powerware 9130 3000" UPS-MIB::upsIdentUPSSoftwareVersion.0 = STRING: "INV: 1.29" UPS-MIB::upsIdentAgentSoftwareVersion.0 = STRING: "Network Management Card V6.00 JA" UPS-MIB::upsIdentName.0 = STRING: "ID: GG414A0357 , Msg: 103006437-6591 " ...
nimeliselt
# snmpget -v 1 -c public 192.168.10.130 UPS-MIB::upsOutputPercentLoad.1 UPS-MIB::upsOutputPercentLoad.1 = INTEGER: 38
numbriliselt
# snmpget -v 1 -c public 192.168.10.130 -On UPS-MIB::upsOutputPercentLoad.1 .1.3.6.1.2.1.33.1.4.4.1.5.1 = INTEGER: 38
Viimast saab kasutada Zabbix SNMP kontrolli seadistamiseks.
Kasulikud lisamaterjalid
- http://www.auul.pri.ee/wiki/Zabbix_kasutamine_Debian_operatsioonis%C3%BCsteemiga#SNMP_kasutamine
- http://www.auul.pri.ee/wiki/SNMP_kasutamine#SNMP_klient
- https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/snmp
Network Management Card kasutamine netxml-ups draiveriga
Tarkvara paigaldamiseks sobib öelda
# apt-get install nut-xml
Seadistamiseks tuleb näidata puhvertoiteallika halduse aadress
# cat /etc/nut/ups.conf ... [eaton-9130-net] driver = netxml-ups port = http://192.168.10.130:80 login = admin password = parool
Tulemusena saab kasutada tavapärasel viisil, kui UPS'iga on ühendatud nn environmental probe, siis saab ka tolle näite küsida
# upsc eaton-9130-net ambient.temperature 20.7
NUT ja Debian v. 7 Wheezy
Debian v. 7 Wheezy keskkonnas esineb NUT tarkvara kahe paketi kujul
- nut-server - puhvertoiteallikaga suhtlev komponent
- nut-client - arvutiga tegelev komponent
Seadistusfailid ja programmide nimed on praktiliselt samasugused.
# apt-get install nut-server ... nut-client disabled, please adjust the configuration to your needs. Then set MODE to a suitable value in /etc/nut/nut.conf to enable it. Setting up nut-server (2.6.4-2.3+deb7u1) ... nut-server disabled, please adjust the configuration to your needs. Then set MODE to a suitable value in /etc/nut/nut.conf to enable it.
Viivitusega käivitamiseks sobib öelda nt
# snmpset -v 1 -c private 192.168.10.130 UPS-MIB::upsStartupAfterDelay.0 i 60
NUT tarkvara ütleb UPS'ile, et UPS ennast välja lülitaks, -t testib
# upsdrvctl -t shutdown # upsdrvctl shutdown
Käivitamisskriptid
- /etc/init.d/nut-server
- /etc/init.d/nut-client
- /etc/init.d/ups-monitor -> nut-client link
Intelligent Power Protector
Paigaldamiseks sobib moodustada privaatne repositoorium ja öelda
# apt-get install ipp-linux_1.30.096-1_amd64.deb
Tulemusena tekivad failisüsteemi
- /etc/init.d/Eaton-IPP - käivitusskript
- /usr/local/Eaton/IntelligentPowerProtector - rakenduse kataloog
Kasutamiseks tuleb avada brauser ja paistab selline pilt
kus
- TODO
Tarkvaraga kaasnevad kaks protsessi
- watchdog, töötab ka siis kui rakendus on stop'itud
root 5557 0.0 0.0 4176 612 ? S Jan13 0:00 /bin/sh /usr/local/Eaton/IntelligentPowerProtector/bin/mc2_wd.sh
- rakendus ise
root 12296 35.0 0.9 267588 19212 ? Ssl 00:06 0:00 /usr/local/Eaton/IntelligentPowerProtector/Eaton-IPP -service
Märkused
- millegipärast skript stop argumendiga ilusti ei tööta, kuigi rakenduse protsess lõpetatakse
# /etc/init.d/Eaton-IPP stop [FAIL] Stopping Intelligent Power Protector: Eaton-IPP failed!
ja kindlasti maksab veenduda, et mingeid protsesse ei ole ripakile jäänud, vajadusel tappa
# ps aux | grep -i eaton
Wake-on-LAN
WOL ehk Wake-on-LAN (ingl. k. võrgust äratus) tehnika võimaldab nö väljalülitatud arvuti käivitada saates etherneti kaudu spetsiaalse WOL paketi. WOL töötamiseks peab seda toetama arvuti BIOS ja võrguseade, lisaks peavad nad olema sobivalt seadistatud. Linux puhul toimub võrgukaardi seadistuse kontroll nt programmiga ethtool
# ethtool eth0 | grep "Wake-on: g"
Wake-on: g
Võrgust äratuseks sobib mõnest muust arvutist öelda
# wakeonlan 00:1c:c0:38:89:07 Sending magic packet to 255.255.255.255:9 with 00:1c:c0:38:89:07
NUT kasutamisega on Wake-on-LAN seotud sedasi, et kuigi põhimõtteliselt NUT kasutamisel arutitel ei lasta ennast nö ACPI mõttes välja lülitada võib see vahel nii minna ja siis on WOL abil mõnus arvutit käivitada.
Kasulikud lisamaterjalid
- http://en.wikipedia.org/wiki/Wake-on-LAN
- http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface
dummy-ups draiveri kasutamine
dummy-ups draiveriga saab emuleerida füüsilist puhvertoiteallikat.
# cat /etc/nut/ups.dev ups.status: OL
ning seadistufailis ups.conf
[dummy] driver = dummy-ups port = /etc/nut/ups.dev desc = "dummy-ups in dummy mode"
Kasutamine paistab nt selline
# upsc dummy device.mfr: Dummy Manufacturer device.model: Dummy UPS device.type: ups driver.name: dummy-ups driver.parameter.mode: dummy driver.parameter.pollinterval: 2 driver.parameter.port: /var/tmp/ups.dev driver.version: 2.6.5 driver.version.internal: 0.13 ups.mfr: Dummy Manufacturer ups.model: Dummy UPS ups.status: OL
Märkmed
- Arvuti, kus töötab NUT server ja millele öeldaks nö niisama 'shutdown -h now' kirjutab konsoolile lõpus 'Power down flag is not set (UPS poweroff not needed).', vastasel korral lülitatakse kõik UPS taga olevate tarbijate toide välja
[ ok ] Waiting for MD arrays to become idle...[....] Stopping MD array md126...done (stopped). [ ok ] Stopping MD array md127...done (stopped). [info] Power down flag is not set (UPS poweroff not needed). [info] Will now halt. [ 426.349307] sd 1:0:0:0: [sdb] Synchronizing SCSI cache [ 426.410988] sd 1:0:0:0: [sdb] Stopping disk [ 426.870178] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 426.931856] sd 0:0:0:0: [sda] Stopping disk [ 427.394219] ACPI: Preparing to enter system sleep state S5 [ 427.460806] Power down.
- /etc/killpower faili abil saab süsteem järgmise käivitumise ajal teada, et akud võivad veel olla suhteliselt tühjad ja vajadusel saab sedakaudu edasi korraldada arvuti käivitamisele viivituse; praktiliselt võib olla küll lihtsam kasutada grub vms seadistustes nt 15 min pikkust viivitust
- upsmon -c fsd järel oodatakse FINALDELAY ära
- ebaõnnestunud shutdown paistab selline
.. Initiating UPS shutdown Shutdown failed! Driver failed to start (exit status=1) [ ok down failed. Waiting for UPS batteries to run down. [info] Will now halt. [ 1403.001856] sd 3:0:0:0: [sdb] Synchronizing SCSI cache [ 1403.059989] sd 3:0:0:0: [sdb] Stopping disk [ 1403.519328] sd 2:0:0:0: [sda] Synchronizing SCSI cache [ 1403.580903] sd 2:0:0:0: [sda] Stopping disk [ 1404.044397] ACPI: Preparing to enter system sleep state S5 [ 1404.110936] Power down.
- millegipärast vahel näitab upsc sellist infot ainult
# upsc eaton-9130 device.mfr: EATON Powerware device.model: 9130 device.serial: GG414A0357 device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.version: 2.6.4 driver.version.data: MGE HID 1.31 driver.version.internal: 0.37 ups.mfr: EATON Powerware ups.model: 9130 ups.productid: ffff ups.serial: GG414A0357 ups.status: OB ups.vendorid: 0463
override kasutamine
override direktiivide kasutamine võimaldab toime tulla muus osas normaalsete, kuid enda kohta ebasobival ajal Low Battery teadet ütlevate UPSide, juhtimisega. Nt kui peale UPS enda toite kadumist on UPSil veel mitmeid veerandtunde akut ja jõudu tarbijaid üleval hoida, aga ta ütleb OB ja seejärel mõne minuti pärast LB. Tavaliselt paneb NUT
tarkvara selle peale arvutid ja UPSi enda ka kinni. Sellisel juhul võib olla abil man ups.conf õpetusest, mis juhendab NUT tarkvara muu osas jaoks ignoreerida UPS enda käest tulevate näidatud parameetrite väärtusi, need kirjutatakse üle sobivamate staatiliste väärtustega (kusjuures, kui algselt UPS väljundis näidatud parameeter puudub, t
a tekitatakse). Praktiliselt tähendab see, et kasutades ignorelb direktiivi (ingnoreerida low battery signaali) otsustakse, et LB on käes kui on täidetud üks järgnevatest tingimustest
battery.charge < battery.charge.low battery.runtime < battery.runtime.low
Seejuures saab kasutada nn override.* direktiive, mis kirjutavad NUT tarkvara jaoks üle näidatud parameetrite väärtused staatiliselt.
Nt üks SMART-UPS armastab sellist seadistust
[smartups] driver = apcsmart port = /dev/ttyS0 desc = "APC SMART-UPS" ignorelb override.battery.runtime = 300 override.battery.runtime.low = 200 override.battery.charge.low = 20
kus
- override.battery.runtime - kukub kiiresti 0 peale
- override.battery.runtime.low - vist on fikseeritud 120 peale, aga parem on ise tagada, et runtime > runtime.low ja see tingimus on nii alati tõene
- override.battery.charge.low - fikseerida meelepärane charge.low väärtus
- eeldatakse, et UPS väljastab mõistlikku sh mõistlikult muutuvat charge väärtust
Kasulikud lisamaterjalid
- Katkematu toitepinge allikad
- http://www.networkupstools.org/documentation.html
- http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux/
- http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#NUT_tarkvara_kasutamine
- http://lists.alioth.debian.org/pipermail/nut-upsuser/
- http://srackham.wordpress.com/2013/02/27/configuring-nut-for-the-eaton-3s-ups-on-ubuntu-linux/
Sissejuhatus
- FSD - forced shutdown sequence
Tööpõhimõte
Kõige olulisem katkematu toitepingeallika ja arvuti ühedamise tulemus peaks olema, et enne kui UPSi aku saab päris tühjaks, tehakse arvutile korralikult shutdown. Shutdowniga kaasnev sündmuste järgnevus võiks olla üldiselt selline
- UPS'i enda toide kaob ja UPS jätkab tööd oma aku pealt; NUT tarkvara saab UPS'ilt teada, et ta töötab aku pealt (OB - on battery)
- NUT tarkvara saab UPS'ilt teada, et aku ressurss hakkab lõppema (LB - low battery)
- NUT tarkvara käivitab operatsioonisüsteemi tavalise shutdown järgnevuse, moodustab /etc/powerkill faili (nö signaali saatmiseks)
- operatsioonisüsteemi shutdowni skript (praktiliselt skriptide kogumik) saab /etc/powerkill faili abil teada, et tuleb ütleda NUT tarkvara abil UPS'ile, et ta lülitaks kõnealuse arvuti toite välja
Kui UPS enda toide taastub (OL - on line), peaks reeglina UPS ootama arvuti toite taastamisega seni kuni aku on laaditud piisavalt selleks, et vajadusel kannatada shutdown järgnevust sooritada. NUT koosneb sellistest komponentidest
- draiverid - oskavad suhelda konkreetsete seadmete mudelitega
- upsd - suhteleb draiveriga, cache'ib andmeid
- upsmon - juhtib upsd kaudu katkematu toitepinge allikat, või vastupidi, allikast saadud andmete alusel otsustab arvuti shutdown'ida
Tarkvara paigaldamine
# apt-get install nut
Paigaldamise käigus moodustatakse kasutaja:grupp nut:nut
# id nut uid=107(nut) gid=111(nut) groups=111(nut)
Kusjuures serial ühenduse kasutamisel tuleb lisada nut kasutaja gruppi dialout.
Tarkvara seadistamine ja käivitamine
Operatsioonisüsteemi Debian Squeeze paketihalduse nut tarkvara seadistusfailid asuvad kataloogis /etc/nut kusjuures ei kasutata faili /etc/default/nut. Käivitusskript /etc/init.d/nut sooritab kolm tegevust
- laadib draiveri
- käivitab upsd deemoni
- käivitab upsmon deemoni
draiveri käivitamine
Seadistusfailis /etc/nut/ups.conf tuleb esmalt kirjeldada pingeallikale vastav draiver, nt bcmxcp mida sobib kasutada Powerware 5115 mudeliga üle serial ühenduse suhtlemiseks
[powerware5111] driver = bcmxcp port = /dev/ttyS0 desc = "AT"
ja seejärel öelda testimiseks, st et esitada milline käsk antakse draiveri käivitamiseks
# upsdrvctl -t start Network UPS Tools - UPS driver controller 2.4.3 *** Testing mode: not calling exec/kill 0.000000 .... 0.000476 Starting UPS: powerware5115 0.000534 exec: /lib/nut/bcmxcp -a powerware5115
ning draiveri tegelikuks käivitamiseks
# upsdrvctl start Network UPS Tools - UPS driver controller 2.4.3 Network UPS Tools - BCMXCP UPS driver 0.23 (2.4.3) RS-232 communication subdriver 0.17 Attempting to autodect baudrate Connected to UPS on /dev/ttyS0 with baudrate 9600
Draiveri töötamisega kaasneb selline protsess
# ps aux | grep bcmxcp | grep -v grep nut 8177 0.0 0.1 14484 616 ? Ss 11:52 0:00 /lib/nut/bcmxcp -a powerware5115
Draiveri seiskamiseks
# upsdrvctl stop Network UPS Tools - UPS driver controller 2.4.3
Tõenäoliselt saab draiveri korralikult töötamist kasutaja ise kõige vähem mõjutada, st see sõltub kasutatava UPS riistvarast ja ühendusest arvutiga. Draiveri käivitamise järel tasub vaadata, kas logifailidesse tekib vigu (nt /var/log/kern.log). Draiveri stabiilne vigadeta töötamine on eelduseks, et muud NUT tarkvara komponendid töötaksid korralikult.
upsd seadistamine
upsd deemonit juhivad failid /etc/nut/upsd.conf ja /etc/nut/upsd.users mis võiksid olla nt sellise sisuga
- /etc/nut/upsd.conf
LISTEN 127.0.0.1 3493
- /etc/nut/upsd.users
[local_mon] password = SalaJane123 upsmon master actions = SET instcmds = ALL
kus
- actions = set - sedasi saab upsrw utiliidiga teatud parameetrite väärtusi muuta
- instcmds - millised käske saab kasutada
upsmon seadistamine
upsmon komponenti juhib seadistusfail /etc/nut/upsmon.conf, mis võiks sisaldada nt, viimane rida tuleb kasutajal lisada
# egrep -v "^#|^$" /etc/nut/upsmon.conf MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5
MONITOR powerware5115@localhost 1 local_mon SalaJane123 master
Protsesesside käivitamine
Kuna käivitusskript /etc/init.d/nut laadib draiveri ja käivitab upsd ja upsmon protsessid, siis ei tohi enne selle kasutamist draiver olla laaditud
# /etc/init.d/nut start Starting Network UPS Tools: driver(s) upsd upsmon.
Tulemusena töötavad ja suhtlevad omavahel sellised protsessid, upsd kuulab pordil 3493/tcp
# ps U nut PID TTY STAT TIME COMMAND 3100 ? Ss 0:09 /lib/nut/bcmxcp -a powerware5115 3102 ? Ss 0:00 /sbin/upsd 3106 ? S 0:00 /sbin/upsmon
# netstat -anp -A inet | grep ups tcp 0 0 127.0.0.1:3493 0.0.0.0:* LISTEN 8391/upsd tcp 0 0 127.0.0.1:3493 127.0.0.1:49636 ESTABLISHED 8391/upsd tcp 0 0 127.0.0.1:49636 127.0.0.1:3493 ESTABLISHED 8395/upsmon
Arvuti töötamist ei sega, st sellega ei kaasne shutdown kui öelda
# /etc/init.d/nut stop # /etc/init.d/nut start
Millegipärast on lisaks nut skriptile endale talle link nimega ups-monitor
# ls -ld /etc/init.d/ups-monitor /etc/init.d/nut -rwxr-xr-x 1 root root 5454 Dec 27 2010 /etc/init.d/nut lrwxrwxrwx 1 root root 3 Aug 3 2012 /etc/init.d/ups-monitor -> nut
Märkused
Tundub, et vahel draiver lõpetab töötamise, protesside nimekirjast puudub sarnane rida
6912 ? Ss 0:00 /lib/nut/bcmxcp -a powerware5115
Sel puhul aitab öelda
# /etc/init.d/nut stop # /etc/init.d/nut start
NUT kasutamine
Pingeallikalt andmete küsimiseks sobib kasutada utiliiti upsc, kas ühe
# upsc powerware5115@localhost ups.status OL
või kõigi draiverile teada olevate andmete küsimiseks
# upsc powerware5115 ambient.temperature: 42 ambient.temperature.high: 75 battery.charge: 94 battery.runtime: 7082 battery.voltage: 38.85 device.mfr: Eaton device.model: PW5115 RM 1500i device.serial: GE116A0583 device.type: ups driver.name: bcmxcp driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ttyS0 driver.version: 2.4.3 driver.version.internal: 0.23 ... ups.status: OL
kus
- ups.status: OL - pingeallikas on liini toitel (ingl. k. on line), muud võimalikud olekud on OB (on battery), LB (low battery), RB (replace battery)
Pingeallikale korralduste andmine toimub upscmd utiliidiga
# upscmd -l powerware5115@localhost Instant commands supported on UPS [powerware5115]:
outlet.1.shutdown.return - Description unavailable outlet.2.shutdown.return - Description unavailable shutdown.return - Turn off the load and return when power is back shutdown.stayoff - Turn off the load and remain off test.battery.start - Start a battery test
UPSi sisemiste parameetrite muutmiseks sobib öelda upsrw, ilma argumentideta näitatakse, milliseid parameetreid saaks muuta koos olemasolevate väärtustega, muutmiseks sobib öelda nt
# upsrw -u local_mon -p parool -s outlet.1.desc="Teine valjapaas" eaton-9130 OK # upsc eaton-9130 outlet.1.desc Teine valjapaas
Low battery protsendi väärtuse määramine (tundub, et see ei ela puhvertoiteallika enda toite tagasitulemist üle)
# upsrw -s battery.charge.low=40 e9130
nut-cgi
Veebiliidese tarkvara paigaldamiseks sobib öelda
# apt-get install nut-cgi # a2enmod cgi # systemctl restart apache2
Veebiserveri seadisusfailis peab olema, Apache v. 2.2
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
Alias /nut/ "/usr/share/nut/www/"
Veebiserveri seadisusfailis peab olema, Apache v. 2.4
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> Alias /nut/ "/usr/share/nut/www/"
ning seadistusfailis /etc/nut/hosts.conf
MONITOR powerware5115@localhost "Local UPS"
Seejärel saab pöörduda aadressile
http://172.17.35.21/cgi-bin/nut/upsstats.cgi
NUT süsteemile teadaolevate puhvertoite-allikate nimekiri
Konkreetse pingeallika omadused
kus
- UPS mudel - 9130 3000 VA-T
- runtime
- ups temperatuur
- input - sisend V ja sagedus
- output - väljund V, A ja sagedus
- nut cgi liidese tööd juhib seadistufail /etc/nut/upsstats.html
upslog
Pingeallika andmeid saab logida tekstifaili etteantud formaadi, sageduse jms upslog programmi abil selliselt
root@at-dom0:~# upslog -l - -s powerware5115 -f "%TIME @Y@m@d @H@M@S% %VAR battery.charge% %VAR input.voltage% \ %VAR ups.load% [%VAR ups.status%] %VAR ambient.temperature% %VAR input.frequency%" -i 5 Network UPS Tools upslog 2.4.3 logging status of powerware5115 to - (5s intervals) 20110625 182347 94 222 0.2 [OL] 42 50.34 20110625 182352 94 225 0.2 [OL] 42 50.00 20110625 182357 94 225 0.2 [OL] 42 50.34 20110625 182402 94 222 0.2 [OL] 42 50.34 20110625 182407 94 225 0.2 [OL] 42 50.00 20110625 182412 94 225 0.2 [OL] 42 50.34 20110625 182417 94 222 0.2 [OL] 42 50.34 ...
upssched
TODO
NUT tarkvara abil puhvertoiteallika kasutamise testimine
Selleks, et veenduda NUT tarkvara abil seadistatud süsteemi korrektses toimimises tuleb kindlasti lahendust testida. Esmalt sobib selleks öelda
# upsmon -c fsd
Selle käsuga saadetakse upsmon protsessile fsd (forced shutdown) signaal so sama signaal, mille akude tühjenemisel saadab upsmon protsessile läbi upsd serveri ups ise. Seejärel upsmon käivitab arvuti shutdown järgnevuse.
Päris testiks oleks UPS enda toite eemaldamine ning arvutis toimuvate sündmuste jälgimine
- upsmon protsessi logi /var/log/daemon.log failis
- upsd protsessi logi /var/log/daemon.log failis
- upsc ups.status väärtuse muutumine OL -> OB
- ups-cgi väljundi jälgimine veebiliideses
- arvuti konsooli jälgimine ja veendumine, et soortitatakse korrektselt shutdown
- UPS'ile toite tagasiühendamisel peab arvuti uuesti käivituma (soovitavalt mitte koha, aga kui akud on niivõrd laaditud, et vajadusel kannataksid nad ära teha järgmist shutdown'i)
Aku test
Eeldusel, et UPS seda toetab, saab talle öelda nii
# upscmd -u kasutaja -p parool powerware5115@localhost test.battery.start
Seejärel lülitatakse UPS käima aku pealt, logisse tekitab midagi sellist
Mar 29 12:03:12 at-dom0 bcmxcp[6045]: [test.battery.start] Testing now Mar 29 12:03:24 at-dom0 upsmon[6084]: UPS powerware5115@localhost on battery
Mitme arvuti kasutamine ühe UPSiga
Tööpõhimõte
Mitme arvuti kasutamisel ühe UPSiga on otstarbekas korraldada nii, et kõik arvutid teevad shutdown kui UPS enda toide on olnud piisavalt kaua ära. Selleks on UPS ühendatud ühe arvutiga (NUT master) ning muud arvutid (NUT slave) suhtlevad NUT masteriga
NUT master NUT slave 1 NUT slave 2
_____ _____ _____
| | | | | |
|_____| |_____| |_____|
| 3493/tcp | |
| | |
---|-------------------|---------------|---
kus
- NUT masteris kuulab upsd protsess pordil 3493/tcp slave arvutite pöördumisi
NUT serveri seadistamine
NUT serveris tuleb kirjeldada lisaks NUT klientide ligipääsud failis /etc/nut/upsd.users, nt arvutite moraal ja fs jaoks
... [slave_moraal] password = parool_moraal upsmon slave
[slave_fs] password = parool_fs upsmon slave
NUT serverile ligipääsu piiramiseks soovitatakse kasutada lisaks paketifiltrit.
NUT klientide kasutamine
NUT klientides peab käima vaid upsmon protsess, kusjuures upsmon.conf seadistusfailis on kirjeldatud NUT serveri ühendus, nt reaga
MONITOR powerware5115@172.17.35.21 1 slave_moraal parool_moraal slave
ning /etc/nut/nut.conf failis peab olema rida
MODE=netclient
Tulemusena logib klient serverisse näidatud kasutajana sisse porti 3493 ja üle suhteliselt hästi säiliva tcp ühenduse liigutatakse taolisi sõnumeid (Wireshark andmetel)
.. GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OL CHRG" GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OL CHRG" ... GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OB DISCHRG" GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "OB DISCHRG" ... GET VAR eaton-9130 ups.status VAR eaton-9130 ups.status "FSD OB DISCHRG LB"
Süsteemi kasutamine
Peale upsmon protsesside käivitamist ilmub NUT masteri logisse
... Sep 3 18:07:05 keskus upsd[19074]: User local_mon@127.0.0.1 logged into UPS [powerware5115] Sep 3 18:07:05 keskus upsd[19074]: User slave_moraal@192.168.10.10 logged into UPS [powerware5115] Sep 3 18:13:23 keskus upsd[19074]: User slave_fs@192.168.10.211 logged into UPS [power5115]
kus
- esimene rida vastab lokaalses arvutis, st NUT masteris töötavale upsmon protsessile
- kask järgmist rida vastavad NUT klientidele
Mitme UPSi kasutamine ühe arvutiga
TODO
Probleemid
Tundub, et NUT (nii paketihalduse v. 2.4 kui lähtetekstist paigaldatud v. 2.6) ei taha töötada korrektselt USB kaudu
- bcmxcp_usb draiveri vead kern.log failis
Jun 24 13:37:26 at-dom0 kernel: [98427.223048] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110 Jun 24 13:37:28 at-dom0 kernel: [98428.551055] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110 Jun 24 13:37:29 at-dom0 kernel: [98429.703050] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110 Jun 24 13:37:30 at-dom0 kernel: [98430.855213] usb 1-1.6: usbfs: USBDEVFS_CONTROL failed cmd bcmxcp_usb rqt 66 rq 13 len 4 ret -110
- upsd vead daemon.log failis
Jun 24 05:42:29 at-dom0 upsd[16723]: Data for UPS [powerware5115] is stale - check driver Jun 24 05:42:34 at-dom0 upsd[16723]: UPS [powerware5115] data is no longer stale Jun 24 05:43:16 at-dom0 upsd[16723]: Data for UPS [powerware5115] is stale - check driver .. Jun 24 05:43:25 at-dom0 bcmxcp_usb[16655]: Warning: excessive comm failures, limiting error reporting Jun 24 05:43:25 at-dom0 bcmxcp_usb[16655]: Communications with UPS lost: Error executing command Jun 24 05:43:25 at-dom0 bcmxcp_usb[16655]: Short read from UPS .. Jun 24 13:31:59 at-dom0 upsd[25191]: Data for UPS [powerware5115] is stale - check driver Jun 24 13:31:59 at-dom0 upsd[25191]: UPS [powerware5115] data is no longer stale Jun 24 13:34:45 at-dom0 upsd[25191]: Data for UPS [powerware5115] is stale - check driver Jun 24 13:34:52 at-dom0 upsd[25191]: UPS [powerware5115] data is no longer stale
Monitooring Nagiosega
Pakett nagios-plugins-basic sisaldab check_ups kontrolli, mida sobib kasutada nt selliselt
# /usr/lib/nagios/plugins/check_ups -H localhost -u powerware5115 UPS OK - Status=Online Utility=222.0V Batt=94.0% Load=0.2% |voltage=222000mV;;;0 battery=94%;;;0;100 load=0%;;;0;100
ja kui UPS enda toide puudub
# /usr/lib/nagios/plugins/check_ups -H localhost -u powerware5115 UPS WARNING - Status=On Battery, Unknown Utility=0.0V Batt=90.0% Load=0.2% |voltage=0mV;;;0 battery=90%;;;0;100 load=0%;;;0;100
NUT kasutamine Debian Lenny operatsioonisüsteemiga
Debian Lenny sisaldab nut tarkvara v. 2.2.2, paigaldamiseks sobib öelda
# apt-get install nut
NUT kliendi kasutamisel tuleb
- seadisusfailis /etc/default/nut kasustada rida
# start upsmon START_UPSMON=yes
- seadistusfailis /etc/nut/upsmon.conf kasutada ridu
# egrep -v "^#|^$" /etc/nut/upsmon.conf MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5 MONITOR powerpal@192.168.10.250 1 slave_lenovo parool_lenovo slave
Käivitamiseks öelda
# /etc/init.d/nut
ePDU kasutamine
ePDU haldamine toimub üle SNMP, selleks tuleb ePDU haldusliideses lubada SNMP ning paigaldada nut-snmp pakett
# apt-get install nut-snmp
Seadistusfailis kasutada nt sektsiooni
[eaton-epdu] driver = snmp-ups port = 192.168.10.131 community = public snmp_version = v1 pollfreq = 15 desc = "Example SNMP v1 device"
Laadida prooviks draiver
# upsdrvctl start Network UPS Tools - UPS driver controller 2.6.4 Network UPS Tools - Generic HID driver 0.37 (2.6.4) USB communication driver 0.31 Using subdriver: MGE HID 1.31 Network UPS Tools - Generic SNMP UPS driver 0.66 (2.6.4) Detected Eaton ePDU MA 1P IN:IEC309 16A OUT:20xC13, 4xC on host 192.168.10.131 (mib: eaton_epdu 0.06)
Parameetreid saab esitada nt
# upsc eaton-epdu
TODO
- mis on nut-powerman-pdu pakett
SNMP kasutamine
Üldiselt sobib SNMP kasutada puhvertoiteallika seireks, kuigi tehnilises mõttes on võimalik ka upsi juhtida üle SNMP. Esmalt tuleb SNMP kaardi haldusliidses seadistada SNMP teenusele ligipääs, nt v1 protokolliga valides
Settings -> SNMP
Parema loetavuse saamiseks tasub kopeerida tootja lehelt MIB'id ja paigutada nt /var/tmp kataloogi
/var/tmp/stdupsv1.mib
ning uurida snmpwalk abil, mis paistab puhvertoiteallika SNMP kaardilt
# export MIBFILES=/var/tmp/stdupsv1.mib # snmpwalk -v 1 -c public 192.168.10.130 2>&1 | grep "^UPS-MIB" UPS-MIB::upsIdentManufacturer.0 = STRING: "Eaton" UPS-MIB::upsIdentModel.0 = STRING: "Powerware 9130 3000" UPS-MIB::upsIdentUPSSoftwareVersion.0 = STRING: "INV: 1.29" UPS-MIB::upsIdentAgentSoftwareVersion.0 = STRING: "Network Management Card V6.00 JA" UPS-MIB::upsIdentName.0 = STRING: "ID: GG414A0357 , Msg: 103006437-6591 " ...
nimeliselt
# snmpget -v 1 -c public 192.168.10.130 UPS-MIB::upsOutputPercentLoad.1 UPS-MIB::upsOutputPercentLoad.1 = INTEGER: 38
numbriliselt
# snmpget -v 1 -c public 192.168.10.130 -On UPS-MIB::upsOutputPercentLoad.1 .1.3.6.1.2.1.33.1.4.4.1.5.1 = INTEGER: 38
Viimast saab kasutada Zabbix SNMP kontrolli seadistamiseks.
Kasulikud lisamaterjalid
- http://www.auul.pri.ee/wiki/Zabbix_kasutamine_Debian_operatsioonis%C3%BCsteemiga#SNMP_kasutamine
- http://www.auul.pri.ee/wiki/SNMP_kasutamine#SNMP_klient
- https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/snmp
Network Management Card kasutamine netxml-ups draiveriga
Tarkvara paigaldamiseks sobib öelda
# apt-get install nut-xml
Seadistamiseks tuleb näidata puhvertoiteallika halduse aadress
# cat /etc/nut/ups.conf ... [eaton-9130-net] driver = netxml-ups port = http://192.168.10.130:80 login = admin password = parool
Tulemusena saab kasutada tavapärasel viisil, kui UPS'iga on ühendatud nn environmental probe, siis saab ka tolle näite küsida
# upsc eaton-9130-net ambient.temperature 20.7
NUT ja Debian v. 7 Wheezy
Debian v. 7 Wheezy keskkonnas esineb NUT tarkvara kahe paketi kujul
- nut-server - puhvertoiteallikaga suhtlev komponent
- nut-client - arvutiga tegelev komponent
Seadistusfailid ja programmide nimed on praktiliselt samasugused.
# apt-get install nut-server ... nut-client disabled, please adjust the configuration to your needs. Then set MODE to a suitable value in /etc/nut/nut.conf to enable it. Setting up nut-server (2.6.4-2.3+deb7u1) ... nut-server disabled, please adjust the configuration to your needs. Then set MODE to a suitable value in /etc/nut/nut.conf to enable it.
Viivitusega käivitamiseks sobib öelda nt
# snmpset -v 1 -c private 192.168.10.130 UPS-MIB::upsStartupAfterDelay.0 i 60
NUT tarkvara ütleb UPS'ile, et UPS ennast välja lülitaks, -t testib
# upsdrvctl -t shutdown # upsdrvctl shutdown
Käivitamisskriptid
- /etc/init.d/nut-server
- /etc/init.d/nut-client
- /etc/init.d/ups-monitor -> nut-client link
Intelligent Power Protector
Paigaldamiseks sobib moodustada privaatne repositoorium ja öelda
# apt-get install ipp-linux_1.30.096-1_amd64.deb
Tulemusena tekivad failisüsteemi
- /etc/init.d/Eaton-IPP - käivitusskript
- /usr/local/Eaton/IntelligentPowerProtector - rakenduse kataloog
Kasutamiseks tuleb avada brauser ja paistab selline pilt
kus
- TODO
Tarkvaraga kaasnevad kaks protsessi
- watchdog, töötab ka siis kui rakendus on stop'itud
root 5557 0.0 0.0 4176 612 ? S Jan13 0:00 /bin/sh /usr/local/Eaton/IntelligentPowerProtector/bin/mc2_wd.sh
- rakendus ise
root 12296 35.0 0.9 267588 19212 ? Ssl 00:06 0:00 /usr/local/Eaton/IntelligentPowerProtector/Eaton-IPP -service
Märkused
- millegipärast skript stop argumendiga ilusti ei tööta, kuigi rakenduse protsess lõpetatakse
# /etc/init.d/Eaton-IPP stop [FAIL] Stopping Intelligent Power Protector: Eaton-IPP failed!
ja kindlasti maksab veenduda, et mingeid protsesse ei ole ripakile jäänud, vajadusel tappa
# ps aux | grep -i eaton
Wake-on-LAN
WOL ehk Wake-on-LAN (ingl. k. võrgust äratus) tehnika võimaldab nö väljalülitatud arvuti käivitada saates etherneti kaudu spetsiaalse WOL paketi. WOL töötamiseks peab seda toetama arvuti BIOS ja võrguseade, lisaks peavad nad olema sobivalt seadistatud. Linux puhul toimub võrgukaardi seadistuse kontroll nt programmiga ethtool
# ethtool eth0 | grep "Wake-on: g"
Wake-on: g
Võrgust äratuseks sobib mõnest muust arvutist öelda
# wakeonlan 00:1c:c0:38:89:07 Sending magic packet to 255.255.255.255:9 with 00:1c:c0:38:89:07
NUT kasutamisega on Wake-on-LAN seotud sedasi, et kuigi põhimõtteliselt NUT kasutamisel arutitel ei lasta ennast nö ACPI mõttes välja lülitada võib see vahel nii minna ja siis on WOL abil mõnus arvutit käivitada.
Kasulikud lisamaterjalid
- http://en.wikipedia.org/wiki/Wake-on-LAN
- http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface
dummy-ups draiveri kasutamine
dummy-ups draiveriga saab emuleerida füüsilist puhvertoiteallikat.
# cat /etc/nut/ups.dev ups.status: OL
ning seadistufailis ups.conf
[dummy] driver = dummy-ups port = /etc/nut/ups.dev desc = "dummy-ups in dummy mode"
Kasutamine paistab nt selline
# upsc dummy device.mfr: Dummy Manufacturer device.model: Dummy UPS device.type: ups driver.name: dummy-ups driver.parameter.mode: dummy driver.parameter.pollinterval: 2 driver.parameter.port: /var/tmp/ups.dev driver.version: 2.6.5 driver.version.internal: 0.13 ups.mfr: Dummy Manufacturer ups.model: Dummy UPS ups.status: OL
Märkmed
- Arvuti, kus töötab NUT server ja millele öeldaks nö niisama 'shutdown -h now' kirjutab konsoolile lõpus 'Power down flag is not set (UPS poweroff not needed).', vastasel korral lülitatakse kõik UPS taga olevate tarbijate toide välja
[ ok ] Waiting for MD arrays to become idle...[....] Stopping MD array md126...done (stopped). [ ok ] Stopping MD array md127...done (stopped). [info] Power down flag is not set (UPS poweroff not needed). [info] Will now halt. [ 426.349307] sd 1:0:0:0: [sdb] Synchronizing SCSI cache [ 426.410988] sd 1:0:0:0: [sdb] Stopping disk [ 426.870178] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 426.931856] sd 0:0:0:0: [sda] Stopping disk [ 427.394219] ACPI: Preparing to enter system sleep state S5 [ 427.460806] Power down.
- /etc/killpower faili abil saab süsteem järgmise käivitumise ajal teada, et akud võivad veel olla suhteliselt tühjad ja vajadusel saab sedakaudu edasi korraldada arvuti käivitamisele viivituse; praktiliselt võib olla küll lihtsam kasutada grub vms seadistustes nt 15 min pikkust viivitust
- upsmon -c fsd järel oodatakse FINALDELAY ära
- ebaõnnestunud shutdown paistab selline
.. Initiating UPS shutdown Shutdown failed! Driver failed to start (exit status=1) [ ok down failed. Waiting for UPS batteries to run down. [info] Will now halt. [ 1403.001856] sd 3:0:0:0: [sdb] Synchronizing SCSI cache [ 1403.059989] sd 3:0:0:0: [sdb] Stopping disk [ 1403.519328] sd 2:0:0:0: [sda] Synchronizing SCSI cache [ 1403.580903] sd 2:0:0:0: [sda] Stopping disk [ 1404.044397] ACPI: Preparing to enter system sleep state S5 [ 1404.110936] Power down.
- millegipärast vahel näitab upsc sellist infot ainult
# upsc eaton-9130 device.mfr: EATON Powerware device.model: 9130 device.serial: GG414A0357 device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.version: 2.6.4 driver.version.data: MGE HID 1.31 driver.version.internal: 0.37 ups.mfr: EATON Powerware ups.model: 9130 ups.productid: ffff ups.serial: GG414A0357 ups.status: OB ups.vendorid: 0463
override kasutamine
override direktiivide kasutamine võimaldab toime tulla muus osas normaalsete, kuid enda kohta ebasobival ajal Low Battery teadet ütlevate UPSide, juhtimisega. Nt kui peale UPS enda toite kadumist on UPSil veel mitmeid veerandtunde akut ja jõudu tarbijaid üleval hoida, aga ta ütleb OB ja seejärel mõne minuti pärast LB. Tavaliselt paneb NUT
tarkvara selle peale arvutid ja UPSi enda ka kinni. Sellisel juhul võib olla abil man ups.conf õpetusest, mis juhendab NUT tarkvara muu osas jaoks ignoreerida UPS enda käest tulevate näidatud parameetrite väärtusi, need kirjutatakse üle sobivamate staatiliste väärtustega (kusjuures, kui algselt UPS väljundis näidatud parameeter puudub, t
a tekitatakse). Praktiliselt tähendab see, et kasutades ignorelb direktiivi (ingnoreerida low battery signaali) otsustakse, et LB on käes kui on täidetud üks järgnevatest tingimustest
battery.charge < battery.charge.low battery.runtime < battery.runtime.low
Seejuures saab kasutada nn override.* direktiive, mis kirjutavad NUT tarkvara jaoks üle näidatud parameetrite väärtused staatiliselt.
Nt üks SMART-UPS armastab sellist seadistust
[smartups] driver = apcsmart port = /dev/ttyS0 desc = "APC SMART-UPS" ignorelb override.battery.runtime = 300 override.battery.runtime.low = 200 override.battery.charge.low = 20
kus
- override.battery.runtime - kukub kiiresti 0 peale
- override.battery.runtime.low - vist on fikseeritud 120 peale, aga parem on ise tagada, et runtime > runtime.low ja see tingimus on nii alati tõene
- override.battery.charge.low - fikseerida meelepärane charge.low väärtus
- eeldatakse, et UPS väljastab mõistlikku sh mõistlikult muutuvat charge väärtust
2026 suve lõpu märkmed
Väited
- seade - Eaton 9PX 1500i RT 2U
Kasutamine - network card m3
TODO
kus
- TODO
Kasulikud lisamaterjalid
- Katkematu toitepinge allikad
- http://www.networkupstools.org/documentation.html
- http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux/
- http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#NUT_tarkvara_kasutamine
- http://lists.alioth.debian.org/pipermail/nut-upsuser/
- http://srackham.wordpress.com/2013/02/27/configuring-nut-for-the-eaton-3s-ups-on-ubuntu-linux/


