APC USV am QNAP NAS betreiben und Statuswerte per Node-RED abgreifen

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

Stromausfälle sind der Supergau für ein NAS, da dabei nicht nur einzelne Dateien verloren gehen können. Im schlimmsten Fall droht sogar der Totalausfall, wenn im Moment des Ausfalls kritische Daten nur unvollständig auf der Festplatte geschrieben werden konnten. Eine unterbrechungsfreie Stromversorgung (USV) bietet hier glücklicherweise erhöhten Schutz bei überschaubaren Kosten.

Wie sich so eine USV von APC schnell und einfach mit einem QNAP-NAS verbinden lässt und wie deren Statuswerte dann sogar noch per Node-RED ausgelesen werden können, um im Fall eines Stromausfalls bspw. auch noch andere Systeme remote herunterfahren zu können, ist Inhalt des nachfolgenden Blogpost.

APC-USV mit dem QNAP-NAS verbinden

In Momenten wie diesen wird meine Entscheidung für die Anschaffung meines QNAP TVS-1282 (Affiliate-Link) immer nur wieder bekräftigt: Eine per USB angeschlossene USV, wie das von mir genutzte Modell APC PRO 900G (Affiliate-Link), lässt sich mit nur wenigen Klicks einfach ins System einbinden.

Im QNAP Webinterface dazu einfach in der Menüleiste oben das „Lupen“-Symbol anklicken, nach „usv“ suchen und den Eintrag „USV Einstellungen“ wählen.

Dort den Haken bei „USB-Verbindung“ setzen (sofern das nicht bereits eh automatisch beim Einstecken passiert ist) und die Einstellungen mit „Übernehmen“ sichern.

Hier lässt sich auch gleich noch konfigurieren, dass sich das NAS nach einigen Minuten bei anhaltendem Stromausfall kontrolliert herunterfährt.

Kann es noch einfacher sein? Ich glaube wohl kaum.

Einige Daten des USV werden dann auch direkt unten auf dieser Statusseite mit angezeigt:

Neben dem Status „Normal“ wird die verbliebene „Akkukapazität“ in Prozent ausgegeben und dann auch noch die „voraussichtliche Schutzzeit“ in Minuten. Diese hängt dabei natürlich vom Stromverbrauch der angeschlossenen Geräte ab und man sollte im Realfall eher mit der Hälfte rechnen. Denn auch wenn die Akkukapazität mit 100% angegeben ist, verliert die im USV eingebaute Batterie (bzw. Akku) über die Jahre einen Teil seines Speichervermögens. Außerdem sollte man den Akku im besten Fall auch nie komplett entladen, da er dann einfach länger hält bzw. auch mehr Kapazität im Ernstfall zur Verfügung steht.

Nichtsdestoweniger sollte man den Akku aber auch alle paar Jahre mal austauschen, da die kalendarische Alterung an der zur Verfügung stehenden Kapazität zehrt. Für oben genanntes APC PRO 900G (Affiliate-Link) gibt es dann bspw. Ersatz in Form des schön kryptisch klingenden Akkus APC APCRBC110 (Affiliate-Link).

Auch sollte man die Funktion des USV von Zeit zu Zeit einmal testen, um im Ernstfall keine Überraschung zu erleben. Dazu am besten das NAS erstmal herunterfahren, an eine separate Wandsteckdose hängen und wieder booten. Statt des NAS dann einen Verbraucher mit ähnlichen Leistungswerten ans USV anschließen. Das USB-Kabel vom USV aber am NAS eingesteckt lassen. Danach einen Stromausfall auf Seiten des USV simulieren, indem die Stromversorgung zum USV einfach getrennt wird. Jetzt sieht man schon nach wenigen Minuten, ob der Akku durchhält und ob die USV-Statusinformationen vom NAS korrekt verarbeitet werden und entsprechend ein Shutdown nach der definierten Zeit ausgelöst wird.

USV-Statuswerte per Node-RED verarbeiten

In meinem Fall hängt am USV nicht nur das QNAP-NAS, sondern auch noch andere Verbraucher, wie bspw. ein Intel NUC NUC8i3BEH (Affiliate-Link), welcher mithilfe von Proxmox alle meine virtuelle Maschinen (u.A. auch eine Node-RED-VM) beheimatet. Wäre also sinnvoll, dass dieser PC bei einem Stromausfall auch einen Shutdown einleitet, um das Risiko eines Datenverlusts zu minimieren.

Zu diesem Zweck lässt sich im oben genannten QNAP-Menü ein Haken bei „Netzwerk-UPS-Support aktivieren“ setzen. In der darunter angezeigten Liste lassen sich dann mit dem Button „Hinzufügen“ die gewünschten IP-Adressen der Clients eintragen, welche auf die USV-Informationen zugreifen dürfen. In meinem Fall ist das die „192.168.3.30“ (ohne Anführungszeichen), unter der mein Node-RED-System im Netzwerk anzutreffen ist. Abschließend auf „Übernehmen“ klicken und die Grundeinstellung ist damit erledigt:

Nun ins Node-RED-Interface, welches über den Port 1880 erreichbar ist, in meiem Fall entsprechend http://192.168.3.30:1880.

Ganz oben rechts erstmal auf die „drei senkrechten Striche“ (Menü) klicken und „Palette verwalten“ auswählen.

Im Reiter „Installieren“ dann nach „node-red-contrib-nut-ups“ suchen und den entsprechenden Eintrag „Installieren“. In nachfolgendem Screenshot bitte nicht falsch verstehen, hier steht eben „Installiert“, da ich die Node bereits nutze.

Jetzt links die „Lupe“ anklicken und nach „nut“ suchen und die angezeigte „nut ups“-Node rechts in den Flow ziehen. Die Node doppelt anklicken und im Feld „UPS“ Folgendes eintragen:

qnapups@192.168.3.9

Die IP nach dem @-Zeichen muss entsprechend der Netzwerkadresse des QNAP-NAS gesetzt werden, in meinem Fall ist das „192.168.3.9“ (ohne Anführungszeichen).

Zum Abschluss über den Button „Fertig“ speichern. Vorher kann natürlich auch noch ein sprechender „Name“ vergeben werden:

Der gerade erzeugten Node wird dann noch eine inject-Node vorangesetzt, welche so konfiguriert wird, dass sie alle 10 Sekunden einen Trigger setzt. Nachgestellt werden kann nun noch eine debug-Node, welche den Payload des Objekts anzeigt. Damit die Änderungen aktiv werden, muss natürlich nochmal der rote „Deploy“-Button betätigt werden. Und dann sollte es im „Debugging“-Fenster in etwa so aussehen:

Im Pfad „payload.battery.charge.value“ steckt dann bspw. der Wert „100“, welcher der aktuellen Kapazität des Akkus entspricht. Dieser Wert lässt sich dann bspw. bequem mit einer „change-Node und einer „Festlegen“-Regel für eine weitere Verarbeitung auslesen. Dabei wird die gewünschte neue „msg.payload“ durch „payload.battery.charge.value“ gesetzt:

Dem Element nachgestellt, ist in meinem Fall eine Loxone „control out“-Node, welche den Wert in einen „virtuellen Eingang“ in der Loxone Config schreibt.

In der Loxone-App lässt sich der „USV“-Status dann einsehen, hier als fertige Lösung zu sehen mit einigen für mich relevanten Statuswerten:

Aber zurück zum Node-RED-Setup. Entsprechend der Akkukapazität lassen sich auch noch weitere Werte auslesen:

  • payload.battery.runtime.value -> (Potenzielle) Akkulaufzeit bei derzeitigem Stromverbrauch in Sekunden
  • payload.battery.voltage.value -> Spannung des Akkus in Volt
  • payload.input.voltage.value -> Netzspannung in Volt – bei Netzausfall Wert 0
  • payload.ups.status.value -> mit etwas krytischen Werten
    • OB DISCHRG -> Notstrom aktiv – Akku entlädt
    • OL CHRG -> Netz aktiv – Akku lädt
    • OL -> Akku ist voll geladen
    • xyz -> vermutlich noch weitere Status möglich bei Defekt des Akkus o.Ä.

Letzt genannte Werte überführe ich vor der Übertragung zu Loxone in numerische Werte, um diese auswerten zu können. Alle Nodes und Einstellungen gibt es hier als Download: Node-RED Flow 2 (1547 Downloads )

Analog zum Vorgehen im Blogpost Linux-Rechner per SSH-Befehlen über Node-RED fernsteuern lassen sich mit einer exec-Node dann bspw. bei erkanntem Netzausfall andere Systeme remote herunterfahren oder eben auch das Node-RED-System mit einem einfachen „shutdown -h now“ als exec-Node-Befehl ausschalten.

Aus meinem täglichen Leben

Ich habe oben genanntes Hardwaresetup mit dem QNAP TVS-1282 (Affiliate-Link) und APC PRO 900G (Affiliate-Link) nun bereits knapp zwei Jahre im Einsatz und die USV hat mein NAS schon mehrfach erfolgreich vor einem Stromausfall – und potenziellem Datenverlust – bewahrt.

Vermutlich dem Neubaugebiet geschuldet, blieb der Strom aus dem Netz dabei schon öfter mal weg, teilweise auch für eine längere Zeit. Dann bietet das USV zwar nicht die Möglichkeit für einen weiteren Dauerbetrieb des NAS, dafür ist es ja aber auch nicht ausgelegt. Nach fünf Minuten Stromausfall fährt mein NAS eben herunter und währenddessen kümmert sich das mitlauschende Node-RED-System darum, andere PCs und schließlich auch sich selbst kontrolliert herunterzufahren.

Wichtig dabei ist natürlich zu wissen, dass Node-RED nur dann mit frischen USV-Daten versorgt werden kann, wenn das NAS auch in Betrieb ist. Das ist aktuell noch der einzige Knackpunkt an meinem Setup, welchen ich noch beheben möchte. So könnte ich die USV bspw. per USB an einen stromsparenden Raspberry Pi anschließen, welcher sich dann mithilfe einer eigenen Node-RED-Instanz um das Monitoring sowie das kontrollierte Herunterfahren der Linux-Systeme im Netzwerk kümmert. So könnte der Pi dann auch bei einem längeren Stromausfall an der USV noch lange „am Leben“ gehalten werden, da er selbst kaum Strom verbraucht (3-4W) und die USV-Batterie dann mehrere Stunden durchhalten sollte. Entsprechend könnte er dann auch einen Aufweck-Befehl per WoL an die Netzwerkgeräte senden, sobald der Netzstrom zurückkehrt.

Vielleicht gibt es dazu dann auch nochmal einen kleinen Blogpost, vorerst bin ich jedenfalls schon mal glücklich damit, dass mein NAS safe ist und darüber hinaus die Live-Daten des USV in Loxone einsehbar sind.

6 Kommentare
  1. Die von mir betriebenen Synology NAS (5 beruflich, 5 privat (im Freundeskreis)) haben diverse Stromausfälle schadlos überstanden. Ja, es ist durchaus möglich (und ärgerlich), dass bei einem Schreibvorgang Datenverluste entstehen. Das aber das System dadurch beschädigt wird, ist mir noch nicht passiert und habe es auch weder gelesen oder gehört. Bei Stromverlust werden die Leseköpfe der Festplatten automatisch in ihre Parkposition gefahren.
    Ich habe vor einiger Zeit mal eine (nagelneue) USV zu einem Bruchteil des Neupreises ergattern können und an meine eigene DS218+ gehangen. Seitdem gab es – Murphys Law – keinen Stromausfall.
    Eine USV _kann_ aber z.B. auch Spannungsspitzen abfangen. Das wäre für mich der deutlich höhere Nutzen.
    Und ganz klar gehört ein räumlich getrenntes Backup _aller_ Daten zur Grundvorraussetzung für jeden Server

    1. Hi Martin,
      danke für dein Feedback!

      Einen direkten Datenverlust hatte ich aufgrund eines Stromausfalls auch noch nicht – zum Glück. Aber es reicht schon, wenn dadurch das RAID durcheinanderkommt (bei mir eigentlich immmer der Fall gewesen bei einem Stromausfall ohne USV) und das NAS dann stundenlang einen RAID-Test inkl.etwaigem RAID-Rebuild durchführen muss. In dieser Zeit sind dann entweder keine Dienste verfügbar oder nur mit geringerer Zugriffsgeschwindigkeit. Das nervt auch schon mega finde ich und ich würde schon alleine deswegen immer eine USV einsetzen.

      Und du hast natürlich recht: Die USV federt im Notfall auch Spannungsspitzen des Stromnetzes weg, was ein echter Pluspunkt ist.

      Viele Grüße
      Jörg

    2. Hallo

      Ich habe mir ebenfalls eine APC USV zugelegt, nachdem ich aus versehen die Steckdosenleiste, an der das Nas hing, ausgeschaltet habe und danach eine Festplatte einen S.M.A.R.T Fehler hatte.
      Damals kostete eine 8TB HDD 350-400€. Da war die USV günstiger.
      Ich habe das TVS-1282 und die APC PRO 1200g (Affiliate-Link).

  2. Hallo

    Etwas kann nicht stimmen mit den IP-Adressen.
    Du schreibst, dass dein PC mit der IP-Adresse 192.168.3.30 auf das Node-RED-System zugreifen kann, und dann greifst du auf das Node-RED-System mit der Adresse http://192.168.3.30:1880 zu. Das würde bedeuten, dass du das Node-RED-System auf dem Client öffnest, nicht auf dem Server. Das macht keinen Sinn.

    1. Hi Philipp,
      im NAS (Server) wird das Node-RED-System (Client mit der IP 192.168.3.30) eingetragen, sodass der Client die Infos vom Server abrufen kann. Und dann definiere ich im Node-RED-System, wie der Zugriff erfolgen soll. Hab das wie hier gezeigt genau 1:1 im Einsatz – funktioniert also.

      Viele Grüße
      Jörg

Schreibe einen Kommentar

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

Das könnte dir auch gefallen