Linux und Windows HelpDesk

USV von APC installieren und konfigurieren (apcupsd).

An einem Server sollte man für gewöhnlich eine USV betreiben.
Hier in Deutschland geht es seltener um lange Stromausfälle, kürze Unterbrechungen für eine Sekunde, kommen jedoch nicht so selten vor.

Um an seinem Proxmox Server eine USV von APC betreiben zu können, geht man wie folgt vor:

Zunächst wird apcupsd installiert.

# apt install apcupsd

Wer es möchte und benötigt, kann zusätzlich apcupsd-cgi anhängen. Das ist eine Weboberfläche, die Informationen der USV ausgibt.
Da ich diese Oberfläche nicht brauche, die Informationen sehe ich auf der Console mit apcaccess oder grafisch in phpSysInfo, gehe ich hier nicht weiter darauf ein.

Nun öffnet man mit dem Editor seiner Wahl die Datei /etc/apcupsd/apcupsd.conf und passt sie an seine Gegebenheiten an.

# nano /etc/apcupsd/apcupsd.conf

Wichtig ist in erster Linie die Verbindung zur USV und die Zeiten, wann auf einen Stromausfall reagiert und wann ein Shutdown ausgelöst werden soll.

Bei meiner APC-Back-UPS Pro 1500 sind das folgende Einstellungen:

UPSCABLE usb Hier den Kabeltyp der USV angeben. Bei den üblichen SOHO USVs meist smart (seriell) oder USB.
UPSTYPE usb Hier den USV Typ angeben z.B. apcsmart oder USB.
DEVICE Bei USVs mit serieller Schnittstelle /dev/tty**, bei USB leer lassen.
ONBATTERYDELAY 6 Zeit in Sekunden, bis auf einen Stromausfall reagiert wird.
BATTERYLEVEL 5 Batterielevel in % bei welchem der Shutdown eingeleitet werden soll.
MINUTES 4 Batterielevel in Minuten bei welchem der Shutdown eingeleitet werden soll.
TIMEOUT 0 Zeit in Sekunden, bis von der USV bei Stromausfall ein Shutdown eingeleitet wird. (0 deaktiviert)

Die jeweiligen Shutdown-Timer sind abhängig voneinander. Das erste zutreffende Ereignis löst den Shutdown aus.
Ich empfehle einen Testlauf mit einer Stoppuhr. Überprüfen wie viel Zeit vergeht, von einem poweroff an der Console bis der Server abgeschaltet wird. Es sollten dabei natürlich alle VMs aktiv sein. Die ermittelte Zeit plus 1 - 2 Minuten unter MINUTES eingeben und man ist auf der sicheren Seite.

Die Option TIMEOUT ist besonders von Bedeutung um das Verhalten von apcupsd zu testen.

Als nächstes muss die Datei /etc/default/apcupsd angepasst,

# nano /etc/default/apcupsd

und die Konfiguration mit ISCONFIGURED=yes auf "erfolgt" gesetzt werden.

Mit systemctl start apcupsd oder beim nächsten Systemstart wird apcupsd gestartet.

Ein Problem besteht jedoch, zumindest hier.
Bei einem Stromausfall läuft alles ganz normal wie gewollt. Zum angegebenen Zeitpunkt wird der Proxmox heruntergefahren.
Es wird jedoch kein Killpower ausgeführt, dass heißt, die USV bleibt in Betrieb, bis letztendlich die Batterie vollständig erschöpft ist.

Um das zu verhindern muss die Datei /etc/apcupsd/killpower angepasst werden.

# nano /etc/apcupsd/killpower

Dort steht bereits alles, ist aber Auskommentiert. Es geht darum, /usr und /var beim Shutdown noch einmal zu mounten.
Es muss im Grunde nur das jeweilige Auskommentieren, also die Raute "#" entfernt werden.

#!/bin/sh
mount -n -o ro /usr
mount -n -o ro /var
mount | awk '/ext4/ { print $3 }' | while read line; do
mount -n -o ro,remount $line
done
exit 0

So funktioniert bei mir auch der killpower von apcupsd unter Proxmox.