APC a APCUPSD

http://www.abclinuxu.cz/hardware/prislusenstvi/ups/jak-na-ups-2

Jak na UPS

8. 5. 2002 | Jiří 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

APC a APCUPSD