El sistema de alimentacion ininterrumpida (UPS en ingles) permite que ante variaciones de energía o ante un corte total el linux box permanezca funcionando hasta que la energía regrese o se produzca un apagado programado antes que las baterias se agoten.
De por si, tener una UPS sin monitoreo es algo que no ayuda mucho si la interrupcion de energia se produce fuera de los horarios del administrador o no hay quien pueda hacer un apagado limpio del linux.
Con la salida al mercado de sistemas UPS con conexion USB (ahora la mayoría lo tiene) el control desde un linux es sumamente sencillo y depende de configurar adecuadamente el daemon apcups
Para eso tenemos que instalar el paquete apcupsd
En debian y derivados es tan sencillo como:
#apt-get install apcupsd
luego editamos
#vi /etc/apcupsd/apcupsd.conf
buscamos estas tres lineas y las modificamos para que queden asi:
UPSCABLE usb
UPSTYPE usb
DEVICE /dev/usb/hiddev[[0-15]]
iniciamos el demonio con
# /etc/init.d/apcupsd start
comprobamos que el monitoreo esta funcionando:
#apcaccess
APC : 001,044,1084
DATE : Mon Sep 07 11:25:57 ART 2009
HOSTNAME : fileserver
RELEASE : 3.14.4
VERSION : 3.14.4 (18 May 2008) debian
UPSNAME : fileserver
CABLE : USB Cable
MODEL : Back-UPS CS 500
UPSMODE : Stand Alone
STARTTIME: Mon Sep 07 11:25:55 ART 2009
STATUS : ONLINE
LINEV : 216.0 Volts
LOADPCT : 24.0 Percent Load Capacity
BCHARGE : 094.0 Percent
TIMELEFT : 36.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 230.0 Volts
SENSE : MediumSELFTEST : OK
si queremos realizar un autotest de la UPS, paramos el daemos
# /etc/init.d/apcupsd stop
y ejecutamos:
#apctest
2009-09-07 11:23:48 apctest 3.14.4 (18 May 2008) debian
Checking configuration ...
Attached to driver: usb
sharenet.type = DISABLE
cable.type = USB_CABLEYou are using a USB cable type, so I'm entering USB test mode
mode.type = USB_UPS
Setting up the port ...
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing USB UPSes.Getting UPS capabilities...SUCCESSPlease select the function you want to perform.1) Test kill UPS power
2) Perform self-test
3) Read last self-test result
4) Change battery date
5) View battery date
6) View manufacturing date
7) Set alarm behavior
8) Set sensitivity
9) Set low transfer voltage
10) Set high transfer voltage
11) Quit
El menu es bastante claro de cuales son las opciones de chequeo sobre la UPS.
Ahora, para probar la eficacia del monitoreo primero apagamos el servicio en el runlevel
#chkconfig apcupsd off
Antes de reiniciar el servicio editamos nuevamente apcupsd.conf
buscamos la linea
TIMEOUT 0
CAMBIAMOS 0 X 1
Y ahora si iniciamos de nuevo.
# /etc/init.d/apcupsd start
desconectamos la UPS de la linea 220V y esperamos que apcupsd nos informe que inicia el proceso de shutdown.
reiniciamos el servidor, volvemos a editar apcupsd.conf para dejar de nuevo la linea:
TIMEOUT 0
y activamos el inicio del servicio en el boot
#chkconfig apcupsd on
Una útima prueba para establecer el tiempo de las baterias es desconectar la UPS de la linea 220V y esperamos que apcupsd nos informe periodicamente cómo va disminuyendo el tiempo calculado de utilidad de las baterias hasta que cuando se agoten empiece el proceso de shutdown