Portál AbcLinuxu, 25. května 2025 23:54

Jak na UPS

8. 5. 2002 | Jiří Bajer
Články - Jak na UPS  

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í

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

Další články z této rubriky

HW novinky: podzimní přehled #2
HW novinky: podzimní přehled #1
HW novinky: návrat skleněných ploten v HDD
HW novinky: PCI Express 4.0 prý ještě letos
HW novinky: i Skylake-X s 12 jádry používá levnou teplovodivou pastu

Diskuse k tomuto článku

9.5.2002 08:25 Frank
Rozbalit Rozbalit vše www rozhraní k apcupsd
Odpovědět | Sbalit | Link | Blokovat | Admin
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.
12.12.2021 11:28 geebranz
Rozbalit Rozbalit vše Re: www rozhraní k apcupsd
9.5.2002 16:14 Kamil
Rozbalit Rozbalit vše Kabel
Odpovědět | Sbalit | Link | Blokovat | Admin
Dobry den ted jsem koupil UPS APC Smart 700 a k ni je kabel 940-0024C bude to taky fungovat? dekuji Kamil
9.5.2002 18:55 TomBa
Rozbalit Rozbalit vše 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.

CIJOML avatar 9.5.2002 20:42 CIJOML | skóre: 58 | Praha
Rozbalit Rozbalit vše Kabel
Ano, chybela prakticka ukazka nakonfigurovanych skriptu.:(

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

10.5.2002 08:20 Jiri Bajer | skóre: 34 | blog: Sarimuv koutek | Praha
Rozbalit Rozbalit vše 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
10.5.2002 10:55 cenda
Rozbalit Rozbalit vše NUT - network UPS tool
Odpovědět | Sbalit | Link | Blokovat | Admin
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
21.5.2002 13:34 Daniel Prynych
Rozbalit Rozbalit vše 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.
5.12.2003 15:31 Pavel Skoupý
Rozbalit Rozbalit vše NUT - network UPS tool
Dobrý den, mám starší UPS Victron Lite 400 a nemohu k ní sehnat dokumentaci - potřeboval bych vědět jakým způsobem UPS komunikuje s okolím (má na sobě port RS232). Nevíte kde informace sehnat? Případně, co je to 'crack kable'?
21.5.2004 11:46 Stanislav
Rozbalit Rozbalit vše Crack cable
http://dan.drydog.com/docs/redhat/nut-1.2.0/docs/cables/ge-imv-victron.txt
17.5.2002 11:25 Marek
Rozbalit Rozbalit vše UPC a USB
Odpovědět | Sbalit | Link | Blokovat | Admin
Mam APC CyberFort 350, na USB kabelu je 940-0127B. Je tato kombinace na Linuxu (SuSE 7.3, pripadne 8.0) podporovana? Diky
7.7.2002 22:09 Tomas Sztranyovszky
Rozbalit Rozbalit vše zapinanie?
Odpovědět | Sbalit | Link | Blokovat | Admin
Da sa nejakym sposobom dosiahnut, aby sa mi zapol server po uplnom nabiti akumulatorov v UPS?
13.9.2006 08:44 Quak
Rozbalit Rozbalit vše Rekalibrace UPS
Odpovědět | Sbalit | Link | Blokovat | Admin
Rád bych tu popsal způsob rekalibrace UPS. Setkal jsem se s tím, že u APC Smart UPS 700 i po výměně akumulátorů byla doba chodu na záložní zdroj velmi krátká (jednotky minut při zatížení 10%). Příčinou byla chybně nastavená kalibrační konstanta.

UPSka musí být připojena komunikačním kabelem, zátěž by se měla pohybovat nejlépe mezi 20-30%. Nejprve zastavíme démona apcupsd potom spustíme obslužný program apctest.

Z menu zvolíme TTY komunikaci (Enter TTY mode communicating with UPS), Stiskneme "1" a asi po dvou sekundách zase "1". UPSka přejde do programovacího modu - odpoví "PROG".

Stisknutím "0" vypíšeme současnou kalibrační konstantu. Opakovaným stiskem "+" a "-" lze hodnotu měnit. Nastavíme novou kalibrační konstantu, dobrá výchozí hodnota je kolem 080. Potom stiskneme "R", UPSka odpoví "BYE", dále stiskneme "Y". Nakonec ověříme zapsanou konstantu opětovným stiskem "0".

Ukončíme terminálový mód klávesou ESC a spustíme kalibraci baterie z menu (Perform a Battery Runtime Calibration).

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.