Linuxové noviny | 07-08/2001 | ||
| |||
Proč používat UPSKaždý uživatel, který s počítači pracuje delší dobu, již nepochybně zažil výpadek elektrického proudu. V lepším případě člověk přijde pouze o rozpracovaná data, v horším případě může dojít i k poškození souborového systému a ztracený čas i data pak mohou znamenat nezanedbatelnou finanční ztrátu. Výpadky napájení, ale i jeho kolísání se také v neposlední řadě podepisují na životnosti hardware počítače. Řešení představují záložní napájecí zdroje (UPS, z angl. "Uninterruptible Power Supply"), které jsou schopny v případě výpadku napájení v rozvodné síti po určitou dobu poskytovat napájení z baterií.
Typy záložních zdrojůPokud se rozhodneme záložní zdroj pořídit, máme na výběr z několika druhů. Nejjednodušší modely zajišťují pouze základní ochranu před výpadkem napájení - v případě přerušení dodávky el. proudu přepnou na napájení z baterie. Lepší modely současně poskytují ochranu před podpětím či přepětím v rozvodné síti. Dále se jednotlivé typy liší možností komunikace s počítačem: levnější modely pouze signalizují přerušení a obnovení dodávky napájení v síti, "chytřejší modely" umožňují mimo jiné monitorovat stav baterie - takže je možné přizpůsobit spuštění shutdownu aktuálnímu stavu baterie. Některé UPS komunikují pouze přes sériový port, i když v dnešní době se už pomalu přechází na USB, jiné mohou být navíc spravovány přes síť pomocí SNMP či přes modem.
Záložní zdroje a software pro LinuxVětšina výrobců záložních zdrojů dnes buď podporuje Linux přímo a dodává obslužný software spolu s UPS nebo jej dává k dispozici prostřednictvím Internetu (příkladem budiž např. APC, Victron, Best Power, Fenton). Řada UPS je pod Linuxem podporována také "free" softwarem třetích stran (NUT, Apcupsd). V každém případě je zapotřebí se před zakoupením ujistit, zda je UPS a daný typ komunikačního kabelu pod Linuxem skutečně plně podporován.
Apcupsd a podporované typy UPSFirma American Power Conversion Corporation, zkráceně APC, zpočátku dlouhou dobu nebyla ochotna poskytnout technické informace týkající se popisu komunikačních protokolů svých UPS. Což byla škoda, zejména vzhledem k tomu, že záložní zdroje APC byly poměrně rozšířené a i cenově patřily mezi přístupnější kategorie. Proto vznikl projekt Apcupsd, jehož autoři se rozhodli i za absence technických specifikací vytvořit alternativní obslužný software pro tyto UPS. Apcupsd podporuje všechny běžné modely: např. Back-UPS, Back-UPS Pro, Smart-UPS v/s, Smart-UPS a další. Kabel pro komunikaci s počítačem přes sériový port je zpravidla součástí dodávky UPS. Apcupsd zatím nepodporuje komunikaci přes USB.
![]() webové rozhraní Apcupsd
Alternativní softwarePodívejme se nejprve na software, který poskytuje přímo APC:APC Simple Signaling Daemon je software pro komunikaci s UPS v základním "simple" nebo "basic signaling" režimu pomocí kabelu 940-0020B. Uplatnění nalezne zejména pro ovládání záložních zdrojů typu BackUPS, které komunikují pouze v režimu "basic signaling". Součástí instalace je kromě vlastního démona ssd i skript apcssd, který akceptuje volby start/stop a je určen pro instalaci do adresáře /etc/rc.d/init.d v distribucích Red Hat. Konfiguruje se pouze sériový port a doba po jejímž uplynutí se spustí shutdown v případě, že nedojde k obnovení dodávky el. proudu. Software je možné získat na serveru APC. APC také vyvíjí obslužný software PowerChute a PowerChute Plus, který je k dispozici i pro Linux. PowerChute je ve srovnání s apcupsd zbytečně rozsáhlý a má také výrazně větší nároky na systémové prostředky. To je dáno mimo jiné tím, že na rozdíl od apcupsd (který se ovládá z příkazové řádky nebo přes webové rozhraní) poskytuje grafické rozhraní v prostředí X Window System. PowerChute network shutdown je software pro modely UPS sloužící pro napájení většího počtu počítačů komunikující přes síť pomocí protokolu SNMP. Pokud jde o software třetích stran, kromě Apcupsd záložní zdroje APC komfortně podporuje také NUT. Další software jako genpowerd anebo upsd podporují záložní zdroje APC pouze v omezené míře (nepodporují "smart" režim a fungují pouze s některými typy kabelů).
Komunikace mezi UPS a počítačemModely BackUPS a ShareUPS komunikují s počítačem pomocí již krátce zmíněného "simple signaling" protokolu. U těchto modelů se komunikace omezuje na několik signálů (výpadek napájení, obnovení napájení, vybití baterie, vypnutí UPS). Modely BackUPS Pro, SmartUPS, MatrixUPS používají tzv. "subsmart signaling" nebo "smart signaling" protokol, který umožňuje monitorovat stav baterie, teplotu či vlhkost uvnitř UPS, dotazovat se na nastavení UPS apod. Detailní popis protokolů je součástí dokumentace apcupsd.
Jak apcupsd funguje?Apcupsd může běžet buď ve samostatném ("standalone") nebo síťovém ("net") režimu. Pokud máme k UPS připojen pouze jeden počítač, je situace jednoduchá. Apcupsd s UPS komunikuje přes sériový port a v případě potřeby zajistí včasné spuštění shutdownu (a případných dalších akcí definovaných uživatelem). Máme-li silnější záložní zdroj, ke kterému je připojeno napájení více počítačů, pak jeden počítač funguje jako tzv. master - monitoruje stav UPS přes sériový port, přes síť pak komunikuje s ostatními počítači a v případě potřeby iniciuje ukončení běhu systému (shutdown) nejen na systému, ke kterému je UPS připojena, ale i na všech ostatních.Po startu se apcupsd nejprve pokusí zjistit, zda je k nakonfigurovaném portu skutečně připojena UPS. Pokud se podaří navázat komunikaci s UPS, spustí další proces, nebo více procesů v závislosti na dané konfiguraci. Pokud je UPS připojena přes sériový port, spustí apcupsd proces apcser ("apc serial"), který obstarává vlastní komunikaci s UPS. Je-li apcupsd konfigurován tak, aby sdílel informace o stavu UPS přes síť, spustí apcser dále proces apcnis ("apc network information server"). Pokud je počítač napájen z UPS, která je ovládána z jiného počítače, spustí apcupsd místo apcser proces apcslv ("apc slave"). Ten pak komunikuje přes síť s procesem apcmst ("apc master"), který je spuštěn na počítači, ke kterému je UPS připojena. Proces apcmst informuje o stavu UPS a případných výpadcích napájení ostatní podřízené počítače.
InstalaceApcupsd je dostupný jak formou zdrojových kódů, tak předkompilovaných verzí ve formě RPM instalačních souborů. Pokud chceme instalovat ze zdrojových kódů, je použit autoconf, takže kompilace je přímočará (./configure; make; make install). Po instalaci je důležité se ujistit, zda-li byly správně instalovány skripty v /etc/rc.d/init.d apod.
![]() Webové rozhraní Apcupsd, detailní statistika
KonfiguraceKonfigurace je standardně ukládána v souboru /etc/apcupsd/apcupsd.conf. Podívejme se na nejdůležitější konfigurovatelné parametry:
Direktivy UPSCLASS a UPSMODE slouží k nastavení, zda se jedná o UPS využívanou pouze jedním počítačem, nebo je z jedné UPS napájeno více strojů a apcupsd pak běží v síťovém režimu apod. Se síťovým režimem dále souvisejí direktivy NETTIME, NETPORT, MASTER a SLAVE.
Otestování instalaceTestování instalace je velmi důležité. Abychom se vyhnuli nepříjemnostem při chybném nastavení, je vhodné nejprve UPS připojit k sériovému portu, ale počítač nechat zapojený přímo do rozvodné sítě. Nejdříve se ujistíme, že komunikace s UPS funguje podle našich představ:
Teprve v případě, že vše funguje tak jak má, můžeme zapojit napájení počítače přes UPS a simulovat výpadek napájení naostro. Zpočátku je vhodné volit kritéria opatrně tak, aby se inicializoval shutdown s rezervou. V opačném případě by UPS vypnula napájení dříve než celá shutdown sekvence stihne proběhnout. Dodatečně pak parametry můžeme upravit.
Sledování stavu UPSSoučástí distribuce apcupsd je několik utilit pro monitorování stavu UPS:
BezpečnostPokud se rozhodneme zpřístupnit informace o stavu UPS přes síť, (což je nezbytné např. pro funkčnost CGI rozhraní), tedy se zapnutou direktivou NETSERVER, je třeba počítat s tím, že ve výchozím nastavení může stav UPS číst kdokoliv. Apcupsd od verze 3.8.2 obsahuje podporu balíčku tcp_wrappers, takže můžeme přístup omezit patřičnou konfigurací v souborech /etc/hosts.deny a /etc/hosts.allow. Další možností (dostupnou i ve starších verzích apcuspd) je použít místo apcupsd pro publikaci stavu UPS samostatný démon apcnetd, který můžeme startovat přes inetd. (Tedy v konfiguračním souboru apcupsd.conf uvedeme NETSERVER off a nakonfigurujeme inetd tak. aby po příchozím požadavku spojení na port 7000 spouštěl apcnetd. Opět můžeme využít tcp_wrappers pro omezení přístupu.)Pokud provozujeme více počítačů napájených přes jeden záložní zdroj a tyto počítače apcupsd kontroluje přes síť, je potřeba zajistit, aby nebylo možné simulovat falešný master apcupsd server, který by pak mohl kontaktovat systémy, které fungují jako slave a iniciovat neoprávněně shutdown. V konfiguraci slave počítačů je možné direktivou USERMAGIC nastavit heslo, které apcslv pošle při prvním kontaktu master procesu apcupsd. Tímto heslem pak master proces prokazuje svou totožnost. Ani toto řešení ovšem není ideální, protože heslo po síti putuje v nezašifrované podobě.
![]() Powerflute - nástroj pro konzoli
ShrnutíZáložní zdroje APC patří mezi ty nejrozšířenější a cenově přístupné. Pod Linuxem jsou dobře podporovány - uživatel má na výběr mezi software od APC (PowerChute) a volně šiřitelným sofware (zejména Apcupsd a NUT). Může si tedy podle vlastních potřeb vybrat takový software, který mu svým ovládáním nejvíce vyhovuje. Obslužný software Apcupsd je co do možností konfigurace velmi flexibilní a pro monitorování stavu UPS poskytuje nástroje jak pro příkazovou řádku / konzoli tak i webové rozhraní. Výhodou je i rozsáhlá a velmi přehledná dokumentace ve formě manuálu, článku v Linux Journalu a dalších informací.![]() |