3.4. APC SmartUPS (USV)

3.4.1. Zweck

Eine USV (Unterbrechungsfreie Stromversorgung) soll, wie der Name schon sagt, die Stromversorgung sicherstellen. Dabei kann man sich die USV als einen sehr großen Akku vorstellen. Fällt der Strom aus, dann wird der Server weiterhin mit Strom versorgt - aus dem Akku. Außerdem schützt die USV den Server vor Überspannung.

3.4.2. Möglichkeiten ohne Treiber

Wenn die USV einfach so, ohne Treiber an den Server angeschlossen wird, dann springt sie automatisch ein, wenn der Strom ausfällt. Wenn der Akku leer ist, fällt der Strom komplett aus; der Server wird nicht heruntergefahren! Die USV ohne Treiber ist also nur für kurze Stromausfälle geeignet.

3.4.3. Installation des Treibers

Wenn der Treiber installiert ist, meldet die USV den Stromausfall. Dann kann der Server entsprechend reagieren. Reagiert er nicht, dann fährt die USV den Server herunter, sobald die Akkuladung einen kritischen Wert erreicht hat. Der Server kann aber auch reagieren und z.B. nach 60 Sekunden herunterfahren. Dadurch kann verhindert werden, dass der Akku beim möglicherweise etwas langen Herunterfahren versagt.

Die USV wird über die erste serielle Schnittstelle (COM1) an den Server angeschlossen. Zur Installation des Treibers wird das Programmpaket nut benötigt. Es kann mit apt-get install nut installiert werden. Konfiguriert wird der Treiber über die Datei /etc/nut/upsd.conf. Hier muss zunächst folgende Zeile hinzugefügt werden:

UPS myups /var/lib/nut/apcsmart-ttyS0 apcsmart -x cable=940-0095B /dev/ttyS0
Danach muss mit chown root.nut /dev/ttyS0 dem Treiber den Zugriff auf die COM1-Schnittstelle erlaubt werden. Dann muss /etc/nut/upsd.conf weiter bearbeitet werden: Die Zeile mit "#ACCESS grant master localhost [<upsmon-password>]" suchen und ändern in:
ACCESS grant master localhost passwort
Damit wird dem Monitorprogramm erlaubt, den Treiber zu befragen. Dabei wird das Passwort "passwort" verwendet. Der Treiber und das Monitorprogramm müssen aber auf demselben Rechner laufen, sodass das Passwort nicht so sicherheitsrelevant ist.

In der Datei /etc/nul/upsmon.conf muss im ersten Abschnitt noch folgende Zeile ergänzt werden:

MONITOR myups@localhost 1 passwort master
Damit ist die einfache Konfiguration abgeschlossen. Mit /etc/init.d/nut start wird der Treiber geladen.

Damit der Server nach einer bestimmten Zeit nach dem Stromausfall automatisch herunterfährt, ist weitere Arbeit nötig. In der Datei /etc/nut/upsmon.conf müssen in den entsprechenden Abschnitten folgende Zeilen hinzugefügt werden:

NOTIFYCMD /sbin/upssched
NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
Wenn der Strom ausfällt (ONBATT) oder wieder da ist (ONLINE) wird das Programm /sbin/upssched ausgeführt. Jetzt muss die Datei /etc/nut/upssched.conf mit folgendem Inhalt erstellt werden:
#
# /etc/nut/upssched.conf
#

CMDSCRIPT /usr/local/sbin/go-down
PIPEFN /var/run/upssched.pipe
AT ONBATT * START-TIMER onbattwarn 60
AT ONLINE * CANCEL-TIMER onbattwarn
Mit dieser Konfiguration wird bei Stromausfall (ONBATT) ein 60-Sekunden-Timer gestartet, der nach Ablauf das Script /usr/local/sbin/go-down ausführt. Wird die Stromversorgung vor Ablauf des Timers wiederhergestellt (ONLINE), wird der Timer abgebrochen.

Das Script /usr/local/sbin/go-down sieht so aus:

#!/bin/sh
#
# /usr/local/sbin/go-down
#
upsmon -c fsd
Die Zugriffsrechte für dieses Script werden mit chmod 700 /usr/local/sbin/go-down richtig gesetzt. Mit /etc/init.d/nut restart wird die neue Konfiguration verwendet. Damit sit die Konfiguration komplett abgeschlossen.

Jetzt sollte die USV noch getestet werden. Wird das Stromkabel an der USV herausgezogen, sollte in /var/log/syslog eine Meldung erscheinen. Nach 60 Sekunden sollte der Server herunterfahren.

3.4.4. Anzeigetools

Die Anzeigetools sind CGI-Programme für einen Webserver. Sie können also erst richtig genutzt werden, wenn ein Webserver läuft. Trotzdem können sie auch schon jetzt eingerichtet werden.

Mit apt-get install nut-cgi werden die Programme installiert. Zur Konfiguration muss zunächst die Datei /etc/nut/hosts.conf erstellt werden:

#
# /etc/nut/hosts.conf
#
MONITOR myups@localhost "Local UPS"
Weiter muss die Datei /etc/nut/upsset.conf erstellt werden. Diese Datei ist nötig, um dem upsset.cgi-Programm mitzuteilen, dass die CGI-Programme auf dem Webserver gesichert sind und nur vom internen Netzwerk zu erreichen sind. Das muss bei der späteren Konfiguration des Webserver beachtet werden! Die Datei hat folgenden Inhalt:
#
# /etc/nut/upsset.conf
#
I_HAVE_SECURED_MY_CGI_DIRECTORY
Die CGI-Scripte liegen in /usr/lib/cgi-bin/nut/ und sollten, wenn der Webserver konfiguriert ist, in ein entsprechendes cgi-bin-Verzeichnis kopiert werden.