UPS pod kontrolom

Teško je zamisliti poslužitelj ili mrežni ormar bez uređaja za neprekidno napajanje. Njime se oprema štiti od hardverskih kvarova uzrokovanih padom napona, a isto tako i softverskih grešaka koje se mogu dogoditi, primjerice, u trenutku zapisivanja podatka na disk točno u trenutku nestanka struje. Jedna od zadaća UPS-a, a time i ovog programa, jest inicirati gašenje poslužitelja na siguran način u slučaju dužeg nestanka struje.

Postoje maleni UPS-ovi koji mogu držati računalo upaljenim svega nekoliko minuta, što je dovoljno da se sustav ručno ugasi. A postoje i ogromni ormari koji zajedno s baterijama mogu zauzimati čitave sobe. Jedan takav sustav mogli smo vidjeti na prošlogodišnjem CUC-u prilikom posjete podatkovnom centru. Ovi veliki sustavi služe "samo" za zadržavanje neprekidnog rada opreme dok se ne uključi agregat koji onda služi kao dugotrajni tj. glavni izvor napajanja.

apcupsd je daemon za kontrolu APC-ovih besprekidnih napajanja i ovu zadaću program obavlja bez zamjerke. Radi na gotovo svim platformama i njihovim različitim verzijama, ali uz različite mogućnosti. Program radi s gotovo svim APC-ovim modelima koji imaju neku mogućnost povezivanja s računalom (ethernet, RS232, USB ili slično). Kako je paket u stabilnom repozitoriju Debiana najmanje od verzije Sarge, instalacija je standardna:

apt-get update
apt-get install apcupsd

Postoji nekoliko načina postavljanja UPS-a u sustav, ovisno o broju računala i UPS-ova. Kako ustanove obično nemaju budžet dovoljno velik da svaki poslužitelj i mrežni ormar imaju svoj UPS, nama će za primjer poslužiti jedan SmartUPS na koji je spojeno nekoliko poslužitelja. UPS je serijskim kabelom spojen na jedan od poslužitelja (master), a ostali poslužitelji preko etherneta i master poslužitelja komuniciraju s UPS-om (slave).

Konfiguracija se nalazi unutar datoteke /etc/apcupsd/apcupsd.conf i podijeljena je u nekoliko dijelova. U općenitoj konfiguraciji parametar UPSCABLE definira vrstu kabela kojim je UPS povezan s poslužiteljem. Ako se koristi tvornički serijski kabel (koji obično stigne zajedno s UPS-om), onda master poslužitelj treba imati vrijednost "smart". Parametri UPSTYPE i DEVICE su povezani, a određuju tip UPS-a koji se koristi. U našem slučaju oni na masteru redom imaju vrijednosti "apcsmart" i "/dev/ttyS0". Parametar POLLTIME određuje interval u sekundama u kojem apcupsd kontaktira UPS i očitava njegove vrijednosti. Parametar SCRIPTDIR određuje lokaciju skripti koje obavljaju neku od zadaća u slučaju nestanka struje (primjerice, gašenje računala ili slanje maila upozorenja).

Slijedi konfiguracija parametara vezanih za nestanak struje. Prvi na redu je ONBATTERYDELAY koji definira vrijeme čekanja između nestanka struje i poduzimanja neke od akcija. Primjerice, ako struja nestane na svega par sekundi, nema smisla pokretati neku od akcija poput gašenja računala, baterije UPS-a će odraditi svoj posao. Sljedeća tri parametra rade u sprezi i prvi događaj od ova tri će inicirati gašenje računala. Riječ je o parametrima BATERRYLEVEL (preostali kapacitet baterije u postotcima), MINUTES (preostalo vrijeme rada UPS-a na baterije iskazano u minutama) i TIMEOUT (vrijeme rada UPS-a na baterijama pri nestanku struje – postavlja se na nulu jer dva prethodna parametra bolje definiraju vrijeme do gašenja računala). Time smo završili s obaveznim parametrima na master poslužitelju, oni su dovoljni da se inicira gašenje računala spojenog serijskim kabelom jednom kad se baterije UPS-a isprazne. Ako želimo inicirati gašenje slave poslužitelja, onda je na masteru potrebno postaviti parametar NETSERVER na "on". Pretpostavljeni port može ostati 3551, taj je port IANA rezervirala upravo za apcupsd.

Pređimo na konfiguraciju slave poslužitelja. Nakon instalacije paketa slijedi konfiguracija. Prvi parametar je UPSCABLE koji mora biti postavljen na vrijednost "ether". Sljedeća dva parametra određuju master poslužitelj s priključenim UPS-om. Pa tako parametar UPSTYPE postavljamo na "net", a DEVICE na "192.168.0.3:3551", što je u našem slučaju adresa master poslužitelja. Parametre BATTERYLEVEL i MINUTES možete ostaviti istim vrijednostima, ali i promijeniti u odnosu na master poslužitelju. Primjerice, slave poslužitelj vam nije važan kao i master pa se on može i ranije ugasiti. Ovu konfiguraciju primijenimo na svim slave poslužiteljima. Još je preostalo par stvari. Na master poslužitelju promijenimo datoteku /etc/apcupsd/host.conf na način da dodamo poslužitelje koje će apcupsd kontrolirati u slučaju nestanka struje. Dovoljno je dodati njihove IP adrese. Opis nije obavezan, ali može poslužiti za lakše snalaženje. Dalje, na svim poslužiteljima je potrebno uključiti apcupsd unutar datoteke /etc/default/apcupsd tako što parametar ISCONFIGURED postavimo na "yes". I na kraju slijedi pokretanje daemona na svim poslužiteljima:

invoke-rc.d apcupsd start

Ako smo sve napravili kako treba, naredbom apcaccess status možemo dobiti stanje UPS-a, a od bitnijih možemo izdvojiti postotak opterećenja (LOADPCT), postotak napunjenosti baterija (BCHARGE) i preostalo vrijeme rada na baterijama (TIMELEFT).

# apcaccess status
APC      : 001,043,1119
DATE     : 2014-07-11 12:40:44 +0200
HOSTNAME : hostname
VERSION  : 3.14.10 (13 September 2011) debian
UPSNAME  : ups_ime
CABLE    : Ethernet Link
DRIVER   : Smart-UPS 5000 RM
UPSMODE  : Stand Alone
STARTTIME: 2014-07-01 15:02:43 +0200
MASTERUPD: 2014-07-11 12:40:44 +0200
MASTER   : 192.168.0.3:3551
STATUS   : ONLINE SLAVE
LINEV    : 239.0 Volts
LOADPCT  :  27.3 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  61.0 Minutes
MBATTCHG : 8 Percent
MINTIMEL : 6 Minutes
MAXTIME  : 0 Seconds
MAXLINEV : 240.4 Volts
MINLINEV : 237.6 Volts
OUTPUTV  : 239.0 Volts
SENSE    : High
DLOWBATT : 02 Minutes
LOTRANS  : 208.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 015.0 Percent
ITEMP    : 19.8 C Internal
BATTV    : 55.4 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Line voltage notch or spike
NUMXFERS : 1
XONBATT  : 2014-07-01 15:55:56 +0200
TONBATT  : 0 seconds
CUMONBATT: 58 seconds
XOFFBATT : 2014-07-01 15:56:54 +0200
SELFTEST : NO
STATFLAG : 0x07000408 Status Flag
SERIALNO : 1234567890xy
BATTDATE : 02/01/13
NOMOUTV  : 230 Volts
NOMBATTV :  48.0 Volts
FIRMWARE : 657.18.I
END APC  : 2014-07-11 12:40:50 +0200

Spomenuli smo skripte koje se izvršavaju u slučaju nestanka struje. Te skripte su redom changeme (mail kao podsjetnik da je potrebno promijeniti baterije), commfailure (mail prilikom gubitka komunikacije s UPS-om), commok (mail prilikom povratka komunikacije s UPS-om), onbattery (struja je nestala i UPS radi na baterije) i offbaterry (struja se vratila). Unutar svake moguće je definirati mail adresu ili ostaviti root korisnika koji će primati obavijesti, a one se također ispisuju i na ekrane trenutno prijavljenih korisnika (wall).

Za kraj ćemo opisati kalibraciju UPS-a nakon zamjene baterija. Baterije s vremenom gube svoj kapacitet, a time se smanjuje vrijeme rada UPS-a. Stoga ih je potrebno zamijeniti novima. APC-ovi modeli SmartUPS imaju najmanje 12 vrijednosti zapisanih u EEPROM-u koji određuju kako se UPS ponaša. Prilikom zamjene baterija procesor unutar UPS-a "misli" da su baterije još uvijek stare pa gašenje računala inicira prerano, nerijetko već i nakon par minuta. Zato ga treba navesti da prepozna nove baterije i promijeni vrijednosti u EEPROM-u. Nakon zamjene baterija na UPS treba priključiti najmanje 30% opterećenja te mu prekinuti dovod struje (isključiti ga iz zidne utičnice). UPS će se prebaciti na baterije i tada ga ostavimo da se potpuno isprazni i ugasi. Potom je potrebno vratiti dovod struje i dopustiti da se potpuno napuni. Nakon ovog postupka parametar TIMELEFT bit će ispravan. Čisto kao podsjetnik, u EEPROM se može upisati datum promjene baterije, a to se radi alatom apctest koji dolazi s apcupsd paketom. Kako kalibraciju nije preporučljivo raditi s poslužiteljima u produkciji, ja sam njih privremeno priključio na zidne utičnice (nadajući se da struja neće nestati), a na UPS sam spojio jednu klasičnu spiralnu grijalicu dovoljne snage. Srećom, postupak traje relativno kratko pa je rizik od nedostupnosti poslužitelja malen.

apcupsd je prilično kompleksan paket čijim naprednim postavkama doista možete preuzeti kontrolu nad vašim UPS-om i priključenom opremom. Naravno, autor programa (a ni moja malenkost) ne preuzima odgovornost za moguću štetu nastalu upotrebom ovog alata, a sve dodatne informacije mogu se pronaći na www.apcupsd.org. Napomenimo još da postoji APC-ov ekvivalent ovog programa pod nazivom PowerChute koji radi i na određenim Linux distribucijama.

Kategorije: 
Vote: 
0
No votes yet