NUT-Server für meine USV: zeitgesteuertes herunterfahren der Proxmox Server

pscriptos

Cadet 4th Year
Registriert
Aug. 2013
Beiträge
79
Guten Abend zusammen,

ich stehe vor folgendem Konfigurationsproblem:

Ich betreibe zwei Proxmox Hosts (vhost04 und vhost02) und eine QNAP NAS (nas02) in meinem Homelab, das durch eine USV (Back-UPS RS 900G) abgesichert wird.

Bisher war die USV nur an die NAS angeschlossen, was mir genügte. Da ich nun mehr Zeit habe, möchte ich sicherstellen, dass auch die Proxmox Hosts korrekt auf einen Stromausfall reagieren.

Ich habe die USV an vhost04 angeschlossen und einen NUT (Network UPS Tools) Server installiert und konfiguriert, da die QNAP NAS nur NUT als Slave unterstützt und nicht mit apcupsd kompatibel ist.

Derzeit fahren meine Proxmox Hosts automatisch herunter, wenn die USV den Batteriestatus LOWBATTERY meldet. Das ist mir jedoch zu spät. Während ich auf der NAS und Windows-Clients einstellen kann, dass sie nach einer bestimmten Zeit oder bei einem bestimmten Prozentsatz der verbleibenden Batterieleistung herunterfahren, fehlt mir diese Flexibilität bei den Proxmox Hosts.

1722273065919.png


Wie kann ich die upsmon.conf so konfigurieren, dass die Proxmox Server nach einer festgelegten Zeitspanne, nachdem sie erkannt haben, dass die USV auf Batteriebetrieb läuft, herunterfahren?

In apcupsd ist dies einfach zu konfigurieren, aber auf dem NUT Server bereitet es mir Schwierigkeiten.

Meine Zielkonfiguration ist:

  • Die NAS fährt nach 3 Minuten Batteriebetrieb herunter. (das bekomme ich bereits umgesetzt)
  • Die Proxmox Hosts sollen ebenfalls nach einer bestimmten Zeitspanne (z.B. 3 Minuten) oder bei einem verbleibenden Batteriestand von 90% herunterfahren.
Es ist wichtig, dass die Proxmox Hosts rechtzeitig herunterfahren, da sie teilweise von der NAS abhängig sind.

Hier ist meine bisherige Konfiguration des NUT Servers:

Code:
# Anzahl der USVs, die online sein müssen, um das System am Laufen zu halten
MINSUPPLIES 1

# Befehl zum Herunterfahren des Systems, wenn die USV zum Ausschalten auffordert
SHUTDOWNCMD "/sbin/shutdown -h +0"

# Häufigkeit (in Sekunden), mit der der UPS-Status unter normalen Bedingungen abgefragt wird
POLLFREQ 5

# Häufigkeit (in Sekunden), mit der der UPS-Status abgefragt wird, wenn ein Alarmzustand besteht
POLLFREQALERT 5

# Zeitfenster (in Sekunden), in dem der Host auf Synchronisationsnachrichten warten wird
HOSTSYNC 15

# Zeit (in Sekunden), nach der ein UPS als "tot" betrachtet wird, wenn keine Nachrichten empfangen werden
DEADTIME 15

# Pfad zur Datei, die angibt, dass das System heruntergefahren werden soll
POWERDOWNFLAG /etc/killpower

# Zeit (in Sekunden), nach der gewarnt wird, bevor die Batterie leer ist
RBWARNTIME 43200

# Zeit (in Sekunden), nach der eine Warnung ausgegeben wird, wenn keine Kommunikation mit der USV möglich ist
NOCOMMWARNTIME 300

# Verzögerung (in Sekunden), bevor das System nach dem Empfang des Shutdown-Signals tatsächlich herunterfährt
FINALDELAY 5

#NOTIFYCMD "/etc/nut/notifycmd.sh"
#NOTIFYFLAG ONBATT EXEC

# Eintrag für die Überwachung einer spezifischen USV
MONITOR qnapups@localhost 1 $user $password primary

Ich wäre dankbar für jede Unterstützung und wünsche einen schönen Abend.

Vielen Dank und liebe Grüße.
 
https://networkupstools.org/docs/man/upssched.conf.html
early shutdown
es ist echt komplizierter als noetig, aber wenn mans einmal verstanden hat, eigentlich sehr flexibel.
ich weiss aber nicht mehr, welche dateien ich alle angepasst habe, aber vielleicht startet dich das hier:

Code:
CMDSCRIPT /etc/nut/upssched-cmd
PIPEFN /etc/nut/upssched.pipe
LOCKFN /etc/nut/upssched.lock

AT ONBATT * START-TIMER onbatt 30
AT ONLINE * CANCEL-TIMER onbatt online
AT ONBATT * START-TIMER earlyshutdown 1800
AT ONLINE * CANCEL-TIMER earlyshutdown online
AT LOWBATT * EXECUTE onbatt
AT COMMBAD * START-TIMER commbad 30
AT COMMOK * CANCEL-TIMER commbad commok
AT NOCOMM * EXECUTE commbad
AT SHUTDOWN * EXECUTE powerdown
AT SHUTDOWN * EXECUTE powerdown

Code:
#!/bin/sh
 case $1 in
       onbatt)
          logger -t upssched-cmd "UPS running on battery"
          ;;
       earlyshutdown)
          logger -t upssched-cmd "UPS on battery too long, early shutdown"
          /usr/sbin/upsmon -c fsd
          ;;
       shutdowncritical)
          logger -t upssched-cmd "UPS on battery critical, forced shutdown"
          /usr/sbin/upsmon -c fsd
          ;;
       upsgone)
          logger -t upssched-cmd "UPS has been gone too long, can't reach"
          ;;
       *)
          logger -t upssched-cmd "Unrecognized command: $1"
          ;;
 esac
 
Viele Dank @Crumar, ich habs mir heute Abend noch angeschaut und durch getestet. Leider hats beim ersten Mal nicht funktioniert. Ich bleibe aber dran und melde mich danach hier zurück und berichte.

Einen schönen Abend an alle!

PS. @Innensechskant: was für ein Ticket und wo? ^^
 
Bei mir auf meiner To-Do-Liste zuhause, hab für Themen im Homelab ein Ticketsystem. ^^
 
  • Gefällt mir
Reaktionen: pscriptos
Welche USVs habt ihr denn im Einsatz?
Die NUT supported ups list wirkt ziemlich alt und ungepflegt.
Ich stehe hier nämlich gerade vor einer Neuanschaffung.

Innensechskant schrieb:
Ich hänge mich hier mal mit rein, hab noch ein Ticket zu dem Thema offen. ^^
dito.
 
h00bi schrieb:
Welche USVs habt ihr denn im Einsatz?
Meine ist von APC: Back-UPS RS 900G. Läuft jetzt fast 4 Jahre und überlege die Batterien zu tauschen. Weiss aber nicht, obs jetzt schon notwendig ist.

Innensechskant schrieb:
Bei mir auf meiner To-Do-Liste zuhause, hab für Themen im Homelab ein Ticketsystem. ^^
Ziemlich cool. 😎 Ich wusste nicht, dass das so viel mehr Menschen so machen!

bzgl. NUT:
Ich hab heute früh einen neuen Ansatz gefunden, den ich vll heute Abend, ansonsten morgen Abend verfolgen werde.
 
  • Gefällt mir
Reaktionen: Innensechskant
pscriptos schrieb:
Meine ist von APC: Back-UPS RS 900G. Läuft jetzt fast 4 Jahre und überlege die Batterien zu tauschen. Weiss aber nicht, obs jetzt schon notwendig ist.
Bei nicht-kritischen USVs hol ich nach der normalen Batterielebensdauer laut Hersteller so ca. alle 12-15 Monate die Batterien raus und schau ob sie leicht gebläht sind.
Wenn gebläht, dann wird demnächst gewechselt, hauptsächlich weil ich keine Sauerei mit Batteriesäure haben will. Musste schon mal in einer Mietwohnung Fliesen tauschen wegen einer übergekochten Blei-Säure Batterie. Das will man echt nicht.
Hatte auch schon mal den Fall dass die so stark gebläht waren, dass sie sich gegenseitig im Gehäuse festgedrückt hatten. Funktioniert hat die USV trotzdem noch einwandfrei mit ausreichender Haltezeit.
 
Muss das Thema wohl leider noch mal schieben, aktuell laufen die monthly Backups für das Offsite.
Melde mcih dann noch mal.
 
Zurück
Oben