Pripojenie UPS APC Power-Saving Back-UPS ES 550VA - green CyberFort k linuxu

UPS APC Power-Saving Back-UPS ES 550VA - green CyberFort je záložný zdroj, ktorý má 8 výstupov, z toho 4 sú zálohované z batérie a 4 sú iba s prepäťovou ochranou. S počítačom komunikuje cez USB port. Dodávaný softvér však neobsahuje podporu linuxu. Technické parametre sú uvedené aj na stránke spoločnosti APC

Výrobca: APC by Schneider Electric
Trieda produktu: UPS - Záložné zdroje
Výstupný výkon: 550 VA
Výstupná kapacita: 330 Watt
Architektúra UPS: off-line (standby)
Max. doba potrebná na prepnutie na batérie: 8 ms
Počet zás. s ochranou proti výpadkom prúdu: 4 x PL (10A)
Počet zásuviek len s prepäťovou ochranou: 4 x PL (10A)
Vstupný konektor: kábel so zástrčkou (10A) do steny
Doba zálohovania pri 100% zaťažení: 3.2 min
Doba výdrže pri 50% zaťažení: 12.4 min
Studený štart: Áno
Automatická regulácia napätia (AVR): Nie
Sínusová vlna pri prevádzke na batérie: Nie
Komunikačné porty: USB
Port pre ochranu dátovej linky: RJ45 - modem/ faxová linka, xDSL, 10/ 100BaseTX
Signalizačné LED diódy: činnosť on-line, práca na batérii
Zvukové znamenia: práca na batérii, značné vyčerpanie batérie, preťažená UPS
Typ počítačovej skrine: desktop
Štandardné príslušenstvo: USB kábel, modem kábel
Priložený software: PowerChute Personal Edition (Windows Vista,2000/XP,98/Me,MacOS X10)
Šírka: 224 mm
Výška: 89 mm
Hĺbka: 311 mm
Čistá hmotnosť: 6.1 kg
Farba: čierna

1.Prvé zapnutie
Pred prvým zapnutím je potrebné otvoriť spodný kryt a pripojiť jeden z pólov batérie, ktorý je z dôvodu bezpečnosti a ochrany batérie počas prepravy, odpojený. Pred prvým použitím nechajte UPS-ku nabíjať aspoň 16 hodín, aby batéria dosiahla stav 100%-ného nabitia a aby v prípade výpadku elektriny záložný zdroj splnil svoju funkciu.

2. Pripojenie k serveru
UPS APC Back-UPS ES 550 G som pripojil k linuxovému serveru so systémom Ubuntu 9.04 Jaunty. K UPS-ke je dodávaný komunikačný kábel, na jednom konci s konektorom typu RJ, na druhom s USB konektorom.
    
Na zadnej stene záložného zdroja sa nachádzajú 3 konektory typu RJ.
Do horného konektora, označeného Data Port, pripojíme komunikačný kábel, a druhý koniec kábla pripojíme do USB linuxového servera.
K UPS-ke zatiaľ nepripájajte žiadny spotrebič.
Pripojené USB zariadenia v liunuxe zistíme príkazom lsusb
Ak výstup príkazu lsusb vyzerá podobne ako nasledovný príklad:


Bus 002 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

a vo výpise nájdeme našu UPS-ku, tak si môžeme byť istí, že systém zariadenie správne rozoznal, a že UPS-ka bude schopná komunikovať s linuxom.

3. Softvér a konfigurácia
Pri inštalácií som mal na výber z dvoch možností. Buď som mohol použiť Network UPS Tools (NUT) alebo APC UPS daemon (apcupsd).
Nakoľko som NUT mal už nainštalovaný, ako dedičstvo po predchádzajúcej UPS-ke (MGE Ellipse 800), tak som sa rozhodol, že použijem tento balík.

Pre tých, ktorí nemajú tento balík vo svojom systéme nainštalovaný, len pripomeniem postup inštalácie.
apt-get install nut nut-usb

Ak inštalácia prebehla úspešne, začneme s konfiguráciou:

  • v súbore /etc/default/nut povolíme spustenie ups daemona a monitora:
        START_UPSD=yes
        START_UPSMON=yes

  • v súbore /etc/nut/nut.conf nastavíme:
        MODE=standalone

  • v súbore /etc/nut/ups.conf nadefinujeme meno UPS, driver a port:
        [APC550ES]
           driver = usbhid-ups
           port = auto

    V nasledovnej tabuľke si pozrite zoznam podporovaných zariadení a driverov
    Pre USB použijeme port nastavený na auto, ale ak máme UPS-ku so sériovým RS232 portom, potom parameter port nastavte na /dev/ttyS0.
    (Pre MGE Ellipse 800 som mal nastavené: driver = mge-shut, port = /dev/ttyS0)

  • do súboru /etc/nut/upsd.conf povolíme prístup iba z lokálneho servera:
         ACL all 0.0.0.0/0
         ACL localhost 127.0.0.1/32
         ACCEPT localhost
         REJECT all

  • v súbore /etc/nut/upsd.users nadefinujeme používateľa upsd daemona, heslo, prístup iba z localhosta a UPS Monitor do režimu master:
       [MonUPS]
         password = xxyyzz
         allowfrom = localhost
         upsmon master

  • do /etc/nut/upsmon.conf doplníme:
        MONITOR APC550ES@localhost 1 MonUPS xxyyzz master
        POWERDOWNFLAG /etc/killpower
        SHUTDOWNCMD "/sbin/shutdown -h now"

    Týmto máme ukončenú najzákladnejšiu konfiguráciu UPS-ky.
    Spustíme nut:

    /etc/init.d/nut start

    Ak štart prebehne bez chybových hlásení, overme, či nut skutočne beží:

    /etc/init.d/nut status

    Ak sa objaví výpis:

    Checking status of Network UPS Tools
      * upsd is running
      * upsmon is running

    potom by malo byť všetko nastavené správne a môžeme si zobraziť stav UPS-ky príkazom:

    upsc APC550ES@localhost

    Mal by sa objaviť výpis, podobný nasledovnému:

    battery.charge: 100
    battery.charge.low: 10
    battery.charge.warning: 50
    battery.date: not set
    battery.mfr.date: 2009/09/23
    battery.runtime: 840
    battery.runtime.low: 120
    battery.type: PbAc
    battery.voltage: 13.5
    battery.voltage.nominal: 12.0
    driver.name: usbhid-ups
    driver.parameter.pollfreq: 30
    driver.parameter.pollinterval: 2
    driver.parameter.port: auto
    driver.version: 2.4.1
    driver.version.data: APC HID 0.93
    driver.version.internal: 0.34
    input.transfer.high: 266
    input.transfer.low: 180
    input.voltage: 232.0
    input.voltage.nominal: 230
    ups.beeper.status: enabled
    ups.delay.shutdown: 20
    ups.firmware: 870.O1 .I
    ups.firmware.aux: O1
    ups.load: 42
    ups.mfr: APC
    ups.mfr.date: 2009/09/23
    ups.model: Back-UPS ES 550G
    ups.productid: 0002
    ups.serial: 3Q0846Z16736
    ups.status: OL
    ups.timer.reboot: 0
    ups.timer.shutdown: -1
    ups.vendorid: 051d

    Význam jednotlivých premenných a viac informácií nájdete na stránkach, z ktorých som čerpal pri zapájaní tejto UPS-ky.

    Vypneme linux (halt, shutdown -h now), a napájací kábel servera pripojíme do UPS-ky.
    POZOR! Zariadenia, ktoré majú byť zálohované z batérie, musia byť pripojené do tých správnych zásuviek.
    Pozorne si skontrolujte kam pripájate server.
    Označenie nájdete na hornom kryte UPS-ky

    Teraz normálne rozbehnite server, všetko by sa malo samé rozbehnúť bez zásahu človeka,
    prípadne sledujete výpis pri štarte.

    Ak systém nabehne, znova skontrolujte či nut beží, poprípade výpis premenných UPS-ky.

    Ak je všetko v poriadku, a nut sa rozbehol, ešte trocha testujme.

    4. Test UPS

    Aby sme sa presvedčili, že UPS-ka a nut spolupracujú, tak na krátku dobu odpojme napájací kábej UPS-ky od 230V, tak aby zostal server bežať na batériu. Ak sa UPS-ka prepla na batériu, a linuxový server beží ďalej, je zatiaľ všetko správne.

    Po odpojení UPS-ky od 230V, by sa mal ozvať 3 násobný zvukový signál a zároveň na termináli linuxu sa objaví upozornenie:

    Broadcast message from nut@server.domena.sk
    (somwhere) at 9:17 ...

    UPS APC550ES@localhost on battery

    Nechajte server chvíľu bežať na batériu a otestujte, ako sa postupne vybíja batéria príkazom:

    upsc APC550ES@localhost

    Všimnite si pokles v položke battery.charge, a zmenu v položke ups.status OB DISCHRG.

    Teraz znova pripojte UPS-ku k napätiu 230V, čo bude signalizované 3 pípnutiami a výpisom na terminál:

    Broadcast message from nut@server.domena.sk
    (somwhere) at 9:18 ...

    UPS APC550ES@localhost on line power

    Týmto testom sa batéria mierne vybila, preto nechajme všetko bežať niekoľko hodín, do úplného nabitia batérie.
    Nakoniec môže nasledovať test korektného vypnutia servera a výdrže batérie.
    Tento test je jednoduchý, pripravte si stopky (stačia aj hodinky), odpojte UPS od 230V a zároveň spustite stopky.
    Počkajte, či bude server korektne vypnutý, ak áno, sledujte čas, aby ste mali predstavu, aké dlhé výpadky siete je UPS-ka schopná zálohovať.

    Výsledky testov
    V nasledovnej tabuľke uvádzam výsledky mojich testov a meraní. Ako som testoval ? Postupne som pripájal k UPS-ke stále viac spotrebičov. Po každom pripojení som nechal bežať UPS na batériu, a zisťoval som cez upsc hodnoty. Po každom jednom meraní som nechal batériu dobiť a ďalšie meranie som urobil až vtedy, ak batéria dosiahla stav nabitia 100%.

      Číslo  
      Spotrebiče  
      Záťaž UPS [%]     Výkon záťaže [W]     Výdrž batérie [sek.]     Výdrž batérie [min.]  
    1
    router
    1
    3,3
    2655
    44,25
    2
     router + switch + linux server 
    25
    82,5
    1252
    20,87
    3
     router + switch + linux server + PC WinXP 
    42
    138,6
    840
    14,0

    Na záver tohoto testu len dodám, že namerané hodnoty približne zodpovedajú údajom výrobcu a namerané časy, vzhľadom na 4 pripojené spotrebiče, sú pre naše použitie dostačujúce.

    5. Monitorovanie UPS cez web

  • Jednoduchý výpis cez php

    Aby sme mali prehľad o tom, ako sa správa UPS-ka, v akom stave je batéria, potrebujeme nástroj na sledovanie jej stavu.
    Samozrejme, že stav UPS je možné zistiť kedykoľvek, keď ste prihlásení na terminál a zadáte príkaz upsc APC550ES@localhost
    Aby ste sa ale nemuseli zakaždým prihlasovať, a beží na Vašom serveri aj webový server s podporou php, potom môžete použiť tento php skript a pomocou neho zistiť stav UPS kedykoľvek a kdekoľvek, cez web. Stačí rozbaliť a nakopírovať tento skript niekam do webového adresára servera napr. do /var/www/. Potom ešte treba v skripte v premennej $UPS nastaviť presné pomenovanie Vašej UPS-ky, teda to meno, ktoré ste zadali v súbore /etc/nut/ups.conf.
    V našom príklade bude premenná
    $UPS = 'APC550ES@localhost';
    Potom už len nasmerujte webový prehliadač na tento súbor a máte výpis stavu UPS-ky.
    Tento php skript využíva rovnaké systémové príkazy ako upsc, takže výstup na webovej stránke vyzerá prakticky rovnako, ako na termináli.
    Môžete ho ľubovoľne modifikovať a potom mi ho vylepšený poslať :-)

  • Grafické zobrazenie stavu UPS cez nut-cgi

    Ak potrebujete zobraziť stav UPS-ky graficky, použite balík nut-cgi
    Príklad výstupu nut-cgi je na nasledovných obrázkoch:
         

    Nainštalujte cez apt-get balík nut-cgi:
    apt-get install nut-cgi

    V adresári /etc/nut pribudli 4 súbory s príponou sample:
    hosts.conf.sample
    upsset.conf.sample
    upssats-single.html.sample
    upsstats.html.sample

    Premenujte všetky tieto súbory tak, aby nemali príponu "sample", teda na:

    hosts.conf
    upsset.conf
    upssats-single.html
    upsstats.html

    Potom v súbore /etc/nut/hosts.conf nastavíme meno našej UPS-ky, doplňte riadok:
    MONITOR APC550ES@localhost "APC Back-UPS ES 550"

    Len pripomeniem, že v nastavení webového servera Apache, musíte mať povolené spúšťanie cgi skriptov.

    Teraz nasmerujte Váš webový prehliadač na URL:

    http://www.vasadomena.sk/cgi-bin/nut/upsstats.cgi

    6. Viac počítačov na jednej UPS

    Nasledovný postup som použil na linuxový server a počítač s OS WindowsXP Pro, obidva napájané z jednej UPS-ky.

    Naša UPS-ka má 4 zálohované výstupy. Preto potrebujeme, aby všetky počítače pripojené do zálohovaných výstupov boli korektne vypnuté. Záložný zdroj má ale iba jeden USB komunikačný kábel. Aby sme mohli z jednej UPS-ky korektne vypnúť viac počítačov, využijeme, že daemon upsd bežiaci na linuxe, môže cez Ethernet komunikovť s NUT klientami na porte TCP/UDP 3493.

    Najprv povolíme lokálne použitie tohoto portu na firewalle.
    Popíšem postup pre Bastille-firewall:

    V súbore /etc/Bastille/bastille-firewall.cfg nájdite riadky:

    TCP_INTERNAL_SERVICES=" tu je zoznam povolených služieb a dopíšte na koniec sem iba nut"
    UDP_INTERNAL_SERVICES=" tu je zoznam povolených služieb a dopíšte na koniec sem iba nut"

    Potom reštartujeme firewall:
    /etc/init.d/bastille-firewall restart

    Teraz musíme povoliť prístup k daemonovi upsd z ostatných počítačov. Ako príklad uvediem, IP adresu Windows počítača 192.168.0.3

    Súbor /etc/nut/upsd.conf upravíme nasledovne, povolíme prístup z IP adresy windowsového počítača:
    LISTEN 192.168.0.3 3493
    LISTEN localhost 3493
    ACL all 0.0.0.0/0
    ACL localhost 127.0.0.1/32
    ACL windows 192.168.0.3/32
    ACCEPT localhost
    ACCEPT windows
    REJECT all

    Do súboru /etc/nut/upsd.users povolíme prístup s počítača windows, dpoíšeme len windows do riadku allowfrom:
    allowfrom = localhost windows

    Teraz reštartujme nut:
    /etc/init.d/nut restart

    Týmto máme na strane servera nastavené všetko, môžeme nastaviť NUT klienta vo windows
    Najprv stiahneme winnut15.zip Windows NUT Client
    Súbor winnut15.zip rozbaľte do C:\Program Files\ do adresára winnut15. Zatiaľ program nespúšťajte. Ešte je potrebné pridať výnimku pre tento program vo Windows Firewalle. Teraz môžeme C:\Program Files\winnut15\upsclient.exe spustiť.
    Po spustení prejdite na Settings a na záložke Connection nastavte IP adresu Vášho linuxového servera, na ktorom beží nut daemon upsd, port 3493 a meno vašej UPS-ky, teda APC550ES.
    Na záložke Calibration som ešte upravil hodnotu Battery Voltage na Max 15 voltov.
    Na poslednej záložke Misc zaškrtnite Minimize to tray a nastavte vypínanie UPS napr pri 70% nabitia batérie (Shutdown if battery lower then 70%), aby sa Windows počítač vypol skôr, ako linuxový server a tým ušetril energiu pre server a aby sa predĺžil čas behu servera na batériu.
    Nakoniec dajte Apply a OK. Potom ešte z hlavnej ponuky vyberte Coneection/Reconnect.
    V priebehu niekoľkých sekúnd by sa mal objaviť rovnaký výsledok, ako na nasledovnom obrázku:


    Ak program WinNutClient ukazuje, že je pripojený k UPS-ke, zobrazuje hodnoty a dole v stavovom riadku vypisuje Connection Established, potom je všetko nastavené správne. Ešte dodám, že s UPS APC Back-UPS ES 550G program WinNutClient nezobrazuje vstupnú frekvenciu a výstupné napätie.
    Ostatné hodnoty zobrazuje správne.

    Ešte otestujeme, či nám WinNutClient korektne ukončí prácu systému WindowsXP pri výpadku elektriny. Pri teste som postupoval nasledovne:
    V nastaveniach WinNutClient som nastavil Shutdown if battery lower then 99%.
    Odpojil som UPS-ku od 230V a o niekoľko sekúnd sa WindowsXP korektne vypol, pričom linuxový server bežal na batériu ďalej.

    Ak test dopadol pozitívne, vráťime hodnotu vypnutia na 70% a môžeme si program upsclient.exe pridať do ponuky Štart/Pri spustení.
    Teraz sa nám bude pri výpadku elektriny korektne vypínať najprv počítač s OS WindowsXP a potom sa korektne ukončí aj beh linuxového servera.

    7. Záver

    Spomínaná UPS-ka patrí k tým najjednoduchším a lacnejším modelom, ale základnú úlohu, teda korektné ukončenie linuxového servera pri výpadku napájania, spĺňa za prijateľné náklady. Rovnako aj ceny náhradných batérií sa pohybujú na prijateľnej úrovni, a výmenu batérie zvládnete bez náradia a špeciálnych znalostí. Tento postup mám overený aj pre UPS MGE Ellipse 800, rozdiely v konfigurácií sú uvedené v zátvorkách.

    8.Odkazy

    Monitorování UPS pomocí nástroje NUT v češtine



    2010, Mgr. Jozef Dolinský