Úvod
Hledat
Ovladače
Hardware
Software
Abíčko
O nás

Jak na UPS

Jak na UPS

8. 5. 2002 15:38 | Jiri Bajer

Zlepšete odolnost svých uložených dat proti výpadkům proudu.

Úvodem

Jelikož Linux používá část RAM jako diskovou cache, může při výpadku napájení nastat nekonzistence dat na disku. Pokud se jedná o pracovní stanici doma, není to tak tragické, ale když stavíte firemní fileserver, jde o vážný problém (mimochodem, tento problém se netýká jen Linuxu). Řešením je záložní zdroj napájení neboli UPS (Uninterruptible Power Supply). Jedná se vlastně o průběžně dobíjený akumulátor (obvykle průmyslový Pb 12V), ochranu proti napájecím špičkám a hlavně komunikační část, která dokáže říci PC: "Došlo k výpadku - máš X minut na korektní vypnutí".

Rozdělení

UPS se vyrábí buď ve standalone provedení (bedna, která se postaví vedle case počítače) nebo pro montáž do 19" racku (výška obvykle 2U,3U,5U). Výdrž akumulátoru běžné (kancelářské) UPS je zhruba 5-10 minut a výrazně závisí na tom, jestli je k UPS připojen monitor (uvažovaný odběr do 200W, typ UPS 350-500VA). Komunikace s PC probíhá pomocí sériového kabelu (speciální zapojení - obvykle alespoň RxD, TxD, GND + ev. pár pasivních součástek kvůli open-collector výstupu, CANNON 9pin) nebo u nejnovějších modelů pomocí USB. Kabel lze vyrobit svépomocí, schémata jsou k dispozici na internetu.

Existují dvě kategorie UPS - dumb a smart, které se liší v míře konfigurovatelnosti přes komunikační kabel. Základní funkčnost, tj. indikaci výpadku napájení, ztráty komunikace nebo vybití akumulátoru, zvládají obě kategorie. Smart UPS jsou zpětně kompabilní a je možné s nimi komunikovat v dumb režimu, což využívají GPL ovladače (ne všichni výrobci jsou ochotni zveřejňovat detaily smart komunikace).

Ovladače

Ovladače k UPS lze buď získat od výrobce (nejznámější jsou firmy APC, BEST a TrippLite) ve formě předkompilovaných rpm nebo lze použít GPL ovladače (tarball/rpm). Nejznámější komunikační balíky jsou PowerChute (APC), powerd (GPL) a apcupsd (GPL). K jedné UPS lze připojit více počítačů, kde jeden počítač komunikuje s UPS a při výpadku přepošle upozornění ostatním. Je také možné sledovat stav napájení pomocí webového rozhraní (cgi scripty).

Osobně bych doporučil spíše GPL ovladače, protože se nemusíte vázat na konkrétní distribuce či verze jiných programů. Pokud zvolíte rpm balíček, je instalace pod Linuxem jednoduchá, před kompilací tarballu doporučuji pročíst alespoň INSTALL_HOWTO. Pokud hodláte komunikovat pomocí USB, bude to pro vás znamenat stejnou funkčnost za cenu trochu složitější konfigurace a zřejmě budete muset použít tarball.

Instalace a konfigurace

Moje volba padla na apcupsd ve formě rpm balíčku. Po nainstalování balíčku je nutné ručně upravit soubor /etc/apcupsd/apcupsd.conf. Vyberte druh kabelu: standardní APC kabel je ve verzi pro Linux označován jako 940-0023A, pro NT jako 940-0020B, (použitelné by měly být oba, vyzkoušel jsem jen Linux verzi, kterou prodejce označoval jako AP9823) typ UPS: backups, smartups apod. a sériový port: zřejmě /dev/ttyS1.

Chování UPS při výpadku lze ovlivnit pomocí voleb BATTERYLEVEL (min. % zbývající kapacity akumulátoru), MINUTES (min. odhadované výdrže akumulátoru), TIMEOUT (max. doba běhu na akumulátor). Výdrž akumulátoru si odhaduje sama UPS z napětí na akumulátoru a odebíraného proudu a je jen orientační! Pokud hodláte UPS sdílet mezi více počítači, použijete ještě volby UPSCLASS, UPSMODE a NETACCESS. Jako lahůdku si můžete nastavit BATTDATE - expiraci akumulátoru. Po jejím uplynutí vám přijde upozornění mailem, abyste akumulátor vyměnili. Konfigurační soubor je hojně komentován včetně příkladů nastavení, takže konfigurace by měla být snadná.

Ukázka logu

Fri Feb 21 17:21:01 CET 2002 apcupsd 3.8.5 (4 January 2002) redhat startup succeeded
Fri Feb 21 17:25:01 CET 2002 Power failure.
Fri Feb 21 17:25:06 CET 2002 Power is back. UPS running on mains.
Fri Feb 21 17:25:26 CET 2002 Power failure.
Fri Feb 21 17:25:31 CET 2002 Running on UPS batteries.
Fri Feb 21 17:25:36 CET 2002 Reached run time limit on batteries.
Fri Feb 21 17:25:36 CET 2002 Initiating system shutdown!
Fri Feb 21 17:25:36 CET 2002 User logins prohibited
Fri Feb 21 17:25:44 CET 2002 apcupsd exiting, signal 15
Fri Feb 21 17:25:44 CET 2002 apcupsd shutdown succeeded

Konfigurační soubor

UPSCABLE 940-0023A
UPSTYPE backups
DEVICE /dev/ttyS0
LOCKFILE /var/lock
BATTERYLEVEL 10
MINUTES 3
TIMEOUT 300
ANNOY 0
ANNOYDELAY 15
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISPORT 7000
EVENTSFILE /var/log/apcupsd.events
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
UPSNAME Back400
UPSCLASS standalone
UPSMODE disable
NETACCESS true

Praktické rady ke zprovozňování

  • Pokud máte k počítači připojený modem, můžete využít ochranu proti blesku (přímý zásah do vedení může způsobit, že nejen modem, ale i celá základní deska odejdou do večných lovišť).
  • Zvažte, jestli je vhodné k UPS připojovat monitor - můžete tím výrazně ovlivnit výdrž akumulátoru.
  • Při konfigurování UPS berte v úvahu to, že neštěstí nechodí nikdy samo a může se stát, že po výpadku napájení nastane další dříve, než se akumulátor dobije. Velká rezerva kapacity akumulátoru a krátký TIMEOUT není plýtvání. Navíc pokud pracovní stanice nedisponují UPS, je jim k ničemu, když server při výpadku poběží o pár minut déle.
  • Adresář /etc/apcupsd obsahuje užitečné scripty commfailure, commok, changeme, mainsback a onbattery, které se spouští vždy, když dojde na UPS k nějaké události. Sem je vhodné doplňovat notifikaci pomocí SMS apod. (pozor, aby se SMS stihla odeslat ještě před shutdownem, jinak vám přijde až společně s hláškou o startupu).
  • Konfiguraci řádně vyzkoušejte pomocí testovacího tlačítka na UPS, simulujícího kratkodobý výpadek, dále pomocí vytažení napájecího kabelu UPS ze zásuvky a pomocí vytažení komunikačního kabelu. Vždy před simulací výpadku napájení zadejte z konzole sync (raději dvakrát za sebou), abyste při eventuelním fsck nepřišli o data v cache.
  • Pokud máte k UPS připojený monitor, ověřte si, že jeho zapínání a vypínání netvoří na UPS kritické špičky - některé starší UPS je nemusí vyfiltrovat. Tento problém se typicky zjistí tehdy, když šetrná uklízečka uvidí zelené světélko a monitor vypne (console blanking & vypnuté APM).
  • Používejte jen nové a kvalitní akumulátory a zvažte, zda vámi vyrobený kabel bude odolný proti ohnutí či vytržení (případné problémy konzultujte se svou uklízečkou).

Další informace

Komunikační SW balíky
Oficiální UPS-HOWTO
Přehled typů UPS od APC
Dokumentace k Powerchute (bohužel DOC)
Zapojení komunikačního kabelu
Záznamy o UPS na ABC Linuxu

Hodně štěstí při zprovozňování

Příspěvky do diskuze, zejména zkušenosti se sdílením UPS a konfigurací, jiných SW balíků jsou vítány!

Jiří Bajer

Diskuse k tomuto článku

Datum: 9. 5. 2002 08:25
Od: Frank
Titulek: www rozhraní k apcupsd

Stav apcupsd lze pěkně sledovat přes www rozhraní, pokud na tom serveru běží apache a jsou nastaveny příslušné direktivy na pár cgi skriptů. Maluje to pěkné grafy :-) Používal jsem to původně na Red Hatu 7.1, teď na Mandrake 8.2. V balíčku apcupsd u mdk jsem tyto cgi skripty nenašel, ale fungují i ty, které jsem používal v Red Hatu (stačilo je zkopírovat). Zkoušel jsem i powerchute od APC, textové i grafické rozhraní k programu je totožné jako u Novellu, více se mi ale líbí práce s apcupsd.

Datum: 9. 5. 2002 16:14
Od: Kamil
Titulek: Kabel

Dobry den ted jsem koupil UPS APC Smart 700 a k ni je kabel 940-0024C bude to taky fungovat? dekuji Kamil

Datum: 9. 5. 2002 18:55
Od: TomBa
Titulek: Kabel

Ano. Tento kabel tiez patri medzi "smart" kable. So spravnym nastavenim apcupsd bude fungovat.

Este by som podotkol, ze existuje aj verzia apcupsd pod windows a pre ludi pouzivajucich heterogenne siete je jednoduchsie pracovat s jednym softom. Tiez mi v clanku chybala ukazka nastavenia apcupsd pre pracu s viacerymi ups, ci s viacerymi strojmi.

Datum: 9. 5. 2002 20:42
Od: CIJOML
Titulek: Kabel

Ano, chybela prakticka ukazka nakonfigurovanych skriptu.:(

Mohl byste zverejnit ty vase skripty pro kresleni grafu? :)

Datum: 10. 5. 2002 08:20
Od: Jiri Bajer
Titulek: Grafy

Cgi scripty jsou soucasti baliku apcupsd (najdete je v /etc/apcupsd/cgi). Ja si vystacim s logem a SMS (+ev. commandline), takze je nepouzivam. Ukazka konfigurace je napr. na
http://www.apcupsd.com/users_manual/config-examples.html
Svoji konfiguraci dodam behem pondelka.
Podporovane kabely viz.
http://www.apcupsd.com/users_manual/configure.html#ConfigGeneral

Datum: 10. 5. 2002 10:55
Od: cenda
Titulek: NUT - network UPS tool

PowerChute podporuje pouze produkty APC a jsou nedostupné zdrojové texty. Takže pokud máte např. SLACKWARE musíte se ohlédnout po něčem jiném. Po nějakém tom testování podla moje volba na NUT. Má široký rejstřík UPS s kterými umí komunikovat (já osobně mám starší 1kW VICTRON a ovladače neexistují), také na shutdown více strojů po síti připojených na jednu UPS není žádný problém. Samozřejmě lze nastavit přístupová práva jednotlivým IP adresám, uživatelům... Jediné co neuměl(mí) je monitorování s pomocí SNMP protokolu... více info na inwire@nsys.cz

Datum: 21. 5. 2002 13:34
Od: Daniel Prynych
Titulek: NUT - network UPS tool

Zkousel jste genericups -t 10 ? V dokumentaci je uveden Victron Lite (crack cable), jde o ovladani pres stavove signaly. A to by mel byt vas pripad.

Datum: 17. 5. 2002 11:25
Od: Marek
Titulek: UPC a USB

Mam APC CyberFort 350, na USB kabelu je 940-0127B. Je tato kombinace na Linuxu (SuSE 7.3, pripadne 8.0) podporovana? Diky

Datum: 7. 7. 2002 22:09
Od: Tomas Sztranyovszky
Titulek: zapinanie?

Da sa nejakym sposobom dosiahnut, aby sa mi zapol server po uplnom nabiti akumulatorov v UPS?

Datum: 12. 2. 2003 10:19
Od: Petr Schon
Titulek: APC problé při propojení

Potřebuji připojit Smart-UPS 1000 k Windows server 2000. Po instalaci nekomunikuje ani po USB ani po serial. Po zapojeni UPS mám neznámé zařízení USB DEVICE. Instalován program APC PowerChute Business Edition. Prosim o radu.


(c) AbcLinuxu s.r.o.   Grafika: megadesign