USV per USB an Proxmox anschließen

Damit bei einem kurzzeitigen Stromausfall die Netzwerk-Infrastruktur-Umgebung sauber heruntergefahren werden kann, gibt es in meinem Heimnetz eine kleine unterbrechungsfreie Stromversorgung (USV) mit USB-Anschluss. Diese ist in der Lage die Fritzbox, den zentralen Netzwerkswitch, die beiden Accesspoints, die QNAP und den Homeserver für ein paar Minuten mit Strom zu versorgen. Verbleiben weniger als 10 Minuten Batterielaufzeit, sollen die Geräte sich im besten Fall automatisch sauber herunterfahren.

Im Falle eines Stromausfalls, sollen als erstes alle Systeme heruntergefahren werden, die durch ein plötzliches Ausschalten Datenverlust nach sich ziehen könnten. Das sind vor allem die QNAP und alle Docker-Container. Der Internetzugang dagegen soll so lange als möglich noch funktionieren.

Daher habe ich mich dazu entschieden, die Ansteuerung der USV direkt auf dem HomeServer, und nicht in einer VM oder einem Container zu realisieren. Auch die in der QNAP mögliche Ansteuerung macht damit keinen Sinn, da die QNAP eines der ersten Geräte ist, das heruntergefahren werden soll.

Unter Linux sind die NUT (Network UPS Tools) sehr weit verbreitet, diese haben eine Serverkomponente und können dann von mehreren Clients abgefragt werden. Ideal für meine Bedürfnisse.

Also die USV an meinen Proxmox-Server angeschlossen und geschaut, ob sie dort sichtbar ist:

root@proxmox-nipogi-1:~# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0bda:c821 Realtek Semiconductor Corp. Bluetooth Radio 
Bus 003 Device 002: ID 0d8c:0014 C-Media Electronics, Inc. Audio Adapter (Unitek Y-247A)
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 083: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
Bus 001 Device 002: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@proxmox-nipogi-1:~#

Dann erstmal den NUT-Server installieren.

root@proxmox-nipogi-1:~# apt install nut

und dann einen automatischen Scan nach USVs durchführen

root@proxmox-nipogi-1:~# nut-scanner -U
Scanning USB bus.
[nutdev1]
        driver = "usbhid-ups"
        port = "auto"
        vendorid = "0764"
        productid = "0501"
        product = "UT400EG"
        vendor = "CPS"
        bus = "001"
root@proxmox-nipogi-1:~#

Das sieht schon sehr gut aus, die USV wurde gefunden und korrekt erkannt. Jetzt können wir direkt den NUT-Server konfigurieren.

Dazu setzt man in der Datei /etc/nut/nut.conf den Parameter:

MODE=netserver

Als nächstes trägt man die vom automatischen Scan gefundenen Parameter in die /etc/nut/ups.conf ein. (Achtung, der Bezeichner in den eckigen Klammern, darf keine Leerzeichen enthalten)

[CyberPowerSystem_USV]
        driver = "usbhid-ups"
        port = "auto"
        vendorid = "0764"
        productid = "0501"
        product = "UT400EG"
        vendor = "CPS"
        bus = "001"

Damit ist die grundsätzliche Konfiguration der USV abgeschlossen und der zugehörige Dienst kann geprüft werden:

root@proxmox-nipogi-1:/etc/nut# upsdrvctl start
Network UPS Tools - UPS driver controller 2.8.0
Network UPS Tools - Generic HID driver 0.47 (2.8.0)
USB communication driver (libusb 1.0) 0.43
Using subdriver: CyberPower HID 0.6
cps_adjust_battery_scale: battery readings will be scaled by 2/3
root@proxmox-nipogi-1:/etc/nut#

Damit jetzt andere Geräte auf die Daten der USV zugreifen können, stellen wir diese über einen Serverdienst noch im Netzwerk bereit, indem wir die /etc/nut/upsd.conf entsprechend so einrichten, daß die USV-Infos bereitgestellt werden.

LISTEN 0.0.0.0 3493

Und da die QNAP für ihre USV-Anbindung einen festen, nicht änderbaren Benutzer benötigt, richten wir den auch noch gleich in der /etc/nut/upsd.users ein.

[admin]
        password = 123456
        actions = SET
        instcmds = ALL

Jetzt den NUT-Serverdienst noch einmal neu starten und die USV ist unter der IP des Proxmox-Servers im internen Netzwerk erreichbar:

service nut-server restart

Um die generelle Erreichbarkeit zu prüfen, kann man z.B. unter Windows das Tool WinNUT installieren.

3 Gedanken zu „USV per USB an Proxmox anschließen“

  1. Ich habe nach deiner Anleitung mal versucht meine USV zu konfigurieren. Kannst du mit diesem Fehler nach dem Start etwas anfangen, Danke!!!!!

    Network UPS Tools – UPS driver controller 2.8.0
    Network UPS Tools – Generic HID driver 0.47 (2.8.0)
    USB communication driver (libusb 1.0) 0.43
    HIDParse: LogMax is less than LogMin. Vendor HID report descriptor may be incorrect; interpreting LogMax -1 as 65535 in ReportID: 0x0f
    HIDParse: LogMax is less than LogMin. Vendor HID report descriptor may be incorrect; interpreting LogMax -1 as 255 in ReportID: 0x12
    HIDParse: LogMax is less than LogMin. Vendor HID report descriptor may be incorrect; interpreting LogMax -1 as 255 in ReportID: 0x13
    Using subdriver: CyberPower HID 0.6

    Antworten
  2. Hallo, es handelt sich um eine EPYC® NEON – USV

    Hier die Ausgabe von nur-scanner -U:

    root@pve:~# nut-scanner -U
    Scanning USB bus.
    [nutdev1]
    driver = „usbhid-ups“
    port = „auto“
    vendorid = „0764“
    productid = „0601“
    product = „1000“
    serial = „000000000000“
    vendor = „1“
    bus = „003“
    root@pve:~#

    ups.conf:

    # If your UPS driver requires additional settings, you can specify them
    # here. For example, if it supports a setting of „1234“ for the
    # variable „cable“, it would look like this:
    #
    [CyberPowerSystem_USV]
    driver = „usbhid-ups“
    port = „auto“
    vendorid = „0764“
    productid = „0601“
    product = „1000“
    serial = „000000000000“
    vendor = „1“
    bus = „003“

    # cable = 1234
    # desc = „Something descriptive“
    #
    # To find out if your driver supports any extra settings, start it with
    # the -h option and/or read the driver’s documentation.

    Antworten

Schreibe einen Kommentar zu JoachimA Antworten abbrechen