Diese Anleitung beschreibt die Anbindung und das automatische herunterfahren der VMs und des Hosts bei Stromausfall.
Diese Anleitung gilt aktuell nur für einen einzelnen Proxmox Host und nicht für einen Cluster.
Die Clusterkonfiguration wird nachgereicht, wenn ich diese testen konnte.
apcpusd funktioniert auch mit USV-Geräten anderer Hersteller.
Dieses Tutorial wurde mit den folgenden USV-Geräten getestet:
– APC SmartUPS 1500
– Eaton USV Ellipse ECO 650 USB DIN
– APC Back-UPS 500VA

Die USV muss per USB direkt mit dem Proxmox-Host verbunden sein.

Das Tool apcupsd auf dem Proxmox-Host installieren.

apt update
apt install apcupsd

Die erste Konfigurationsdatei wie folgt anpassen:

nano /etc/apcupsd/apcupsd.conf
-------------------------------
UPSNAME APC-USV
UPSCABLE usb
UPSTYPE usb
DEVICE /dev/usb/hiddev0

# Shutdown settings
ONBATTERYDELAY 60          # Wartezeit in Sekunden nach Stromausfall, bevor Maßnahmen ergriffen werden
BATTERYLEVEL 20            # Prozentsatz, bei dem ein Shutdown initiiert wird
MINUTES 5                  # Restminuten der Batterie, bei denen ein Shutdown erfolgt
TIMEOUT 300                # Maximale Zeit in Sekunden, bevor ein Shutdown erzwungen wird (0 = deaktiviert)
KILLDELAY 10               # Zeit in Sekunden, bevor die USV nach dem Shutdown abgeschaltet wird

Nun ein Shutdown-Script erstellen:

nano /etc/apcupsd/killvms.sh
-----------------------------
#!/bin/bash

# Wartezeit, um sicherzustellen, dass der Shutdown-Befehl ausgelöst wird
sleep 5

# Liste aller laufenden VMs abrufen
running_vms=$(qm list | awk '/running/ {print $1}')

# VMs sicher herunterfahren
for vmid in $running_vms; do
    echo "Herunterfahren der VM $vmid ..."
    qm shutdown $vmid --skiplock
    sleep 2
done
sleep 300
/sbin/shutdown -h now

Das Script muss ausführbar gemacht werden:

chmod +x /etc/apcupsd/killvms.sh

Jetzt diese Config-Datei bearbeiten und den Inhalt am Ende der Datei einfügen:

nano /etc/apcupsd/apccontrol
-----------------------------
case "$1" in
    onbattery)
        echo "Stromausfall erkannt. VMs werden vorbereitet..."
        /etc/apcupsd/killvms.sh
        ;;
esac

Nun diese Datei bearbeiten und den Wert ändern:

nano /etc/default/apcupsd
--------------------------
ISCONFIGURED=yes

Im Anschluss den Dienst neustarten.

systemctl restart apcupsd

Jetzt sollte der Shutdown Funktionieren. Mit diesem Befehl kann der Status und der Fortschritt abgerufen werden (aktualisiert live bei Stromausfall):

systemctl status apcupsd

Von NRTX

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert