Pi4 Green-NAS (Serial- und Relais-HAT)
Für meinen Homeserver in Gestalt eines Raspberry PI4B benötigte ich einige Erweiterungen, so dass ich mich letztlich dazu entschloss, ein eigenes Erweiterungsboard zu entwickeln.
Ich werde im Weiteren den Begriff HAT
weitgehend vermeiden und stattdessen von einem Erweiterungs-
(Extension-) Board reden, denn das ist es nun einmal.
Ich habe nicht viel übrig für Leute, die ständig neue Begriffe für alte Socken erfinden – HAT, Shield, Sketch — App...
Funktion
Hier das fertige Board, aufgesteckt auf meinem Pi4B.
Das Board enthält vier Relaistreiber, geeignet zum Anschluss von zwei bistabilen oder eben vier monostabilen Relais.
Zusätzlich ist UART5 als RS-232-Schnittstelle, inkl. RTS/CTS, auf einem 9-pol. Sub-D Stecker (wie bei einem PC) herausgeführt.
Eine Anekdote nebenbei: die Widerstände und Dioden die Sie auf dem Foto sehen, stammen tatsächlich
aus meinem Sortiment das ich in meiner Lehrzeit angeschafft habe, vor ca. 45 Jahren...
die immer noch problemlos lötbar waren, ohne Lagerung unter Schutzgas oder ähnlichem!
Damals waren Metallfilm-Widerstände noch nicht sehr verbreitet, entsprechend teuer und 5 %
Toleranz waren der Stand der Technik, die aber auch hier mehr als ausreichend ist.
Tatsächlich habe ich auch noch Widerstände mit silbernem Toleranzring (±10 %)
oder gänzlich ohne (±20 %) in Erinnerung...
Grundsätzlich funktionieren die Relaistreiber mit jedem Pi mit 40-pol. Stiftleiste, also ab Pi1B+, die Schnittstelle erfordert jedoch mindestens einen Pi4B.
Schaltplan und Layout wurde auch diesmal wieder mit KiCad erstellt.
Inzwischen muss ich sagen, KiCad hat sich als ein durchaus professionelles Werkzeug zur Erstellung von Schaltplänen
und den zugehörigen Leiterplatten-Layouts erwiesen. Es hat immer noch deutliche Schwächen aber auch seine Stärken und
wenn man eine Weile damit gearbeitet hat (und sich nicht zu sehr an die mitgelieferte Bibliothek klammert) und weiß,
was man in KiCad machen kann oder vielleicht besser aus LibreCad importiert kann man sehr gut und schnell damit arbeiten.
Auch die Möglichkeit, die human readable
Dateien direkt mit einem Editor zu bearbeiten erwies
sich zuweilen als extrem zeitsparend. Ein einfaches Suchen-und-Ersetzen
kann in einer
20 k€-Suite der Konkurrenz eine Stunde Arbeit bedeuten.
Relais
Ich habe bipolare 5 V-Relais vom Typ Hongfa HFE20 verwendet. Ähnliche Typen mit zwei Spulen(!) gehen natürlich genauso. Bipolare Relais brauchen nur zum Schalten Strom. Sie behalten ihren Schaltzustand auch ohne Versorgung bei, d.h. ein geschlossener Kontakt bleibt auch während und nach einem Reboot des Systems noch geschlossen, solange bis er aktiv umgeschaltet wird.
Die Relais habe ich jeweils in einen Zwischenstecker (Goobay 68906) eingebaut. Dieser ist bei meinem Händler für € 1,70 mit Schalter erhältlich und kostet so nicht einmal ein Zehntel eines entsprechenden Leergehäuses. Ein ausgedientes Telefon-Anschlusskabel dient als Verbindung, mit perfekt sitzender, verdrehsicherer Zugentlastung.
Den Schalter habe ich ausgelötet und durch das Relais ersetzt. Wundersamerweise passt es perfekt an die Stelle des Schalters. Es ist fast genauso breit und hat auch die gleiche Höhe, so dass das Loch des Schalters vollkommen abgedeckt ist und keine Gefahr besteht, das dadurch irgend etwas ins Innere gelangen und möglicherweise einen Kurzschluss verursachen könnte.
Auf dem Weg zum Green NAS
Ich verwende die beiden Relais um die (Netz-) Versorgung meiner NAS- und Backup-Platte zu schalten. Dabei geht es nicht nur um die paar Watt Standby-Leistung sondern auch um die Lebensdauer der Netzteile. Meiner Erfahrung nach sind die billigen Steckernetzteile wie sie bei Dockingstations und USB-Gehäusen mitgeliefert werden nicht auf 24/7-Betrieb ausgelegt. Auch die Netzteile, die sie typischerweise nachkaufen können, halten dieser Anforderung nicht stand.
Herkömmliche NAS-Server benötigen selbst im Standby unnötig viel Strom, insbesondere wenn man sie nur selten tatsächlich benötigt.
Ich hatte einige Zeit einen Thecus N5550 im Einsatz, der mit fünf 2 TB-Platten
(also 8 TB netto) selbst im Standby 26 W benötigte, das entspricht etwa
5 €/Monat, nur damit es da
ist (aktiv: 50 W).
Für die 60 € im Jahr könnte ich an Silvester wirklich gut essen gehen. Wir schaffen das billiger!
Tatsächlich ist die Verwendung mehrerer Festplatten im Raid-Verbund für die allermeisten Heimanwender (und wohl auch für die meisten selbstständigen Unternehmer oder SOHOs) pure Verschwendung. Viel wichtiger ist ein regelmäßiges Backup. 3,5"-Festplatten sind heute bis zu 24 TB erhältlich, was für mich und wohl die meisten anderen Leute mehr als ausreicht.
Die Mehrheit der Privat- und Soho-Administratoren
würden den Ausfall einer Platte wohl erst bemerken,
wenn auch noch eine zweite ausfällt und kein Zugriff mehr möglich ist.
Sicherlich dauert das länger, das System funktioniert länger, aber futsch ist futsch!
Wer achtet schon darauf, ob am NAS etwas blinkt oder rot leuchtet?
Hoffentlich haben sie dann wenigstens ein Backup!
Wenn ein Crypto-Trojaner ihre Festplatte verschlüsselt geht das relativ schnell (na ja, Stunden, aber Sie bemerken den Vorgang ja normalerweise nicht sofort) und dann ist auch ihr RAID über Nacht verschlüsselt!
Deshalb muss die Backup-Platte regelmäßig durch eine zweite (dritte, vierte...) ersetzt werden so dass immer eine Platte verfügbar ist, die nicht online ist und damit ebenfalls verschlüsselt werden würde!
Ein Backup kann nur durch häufigeres Backup ersetzt werden, so häufig, dass sich eine Lösegeld-Forderung für den Angreifer nicht rentiert bzw. Sie sagen können, ein Restore ist billiger!
In meiner Zeit als Administrator einer mittelständischen Firma habe ich folgendes Schema angewandt:
- Es gibt vier Tages-Platten von Montags bis Donnerstags.
- Es gibt vier Freitags-Platten, so dass ich den Zustand jeder Woche des aktuellen Monats hätte wiederherstellen können.
- Die 12 Monats-Platten erlaubten es, den Zustand zu jedem Monatsende wieder herzustellen. Eine der Freitagsplatten wurde zur Monatsplatte und durch die älteste Monatsplatte ersetzt.
- Die Silvesterplatte wurde endlos archiviert und durch eine neue Platte ersetzt. Jedes Jahresende seit Beginn meiner Tätigkeit war verfügbar.
Neben der Anschaffung von 20 Festplatten im ersten Jahr um die Infrastruktur aufzubauen reden wir hier von wenigen hundert Euro pro Jahr. Das ist nichts selbst im Vergleich zu einfachen Fehlern wie dem versehentlichen Löschen einer wichtigen Datei.
Festplatten sind billig. Billig im Vergleich zu einem möglichen Datenverlust, selbst im privaten Bereich (denken Sie daran, alle Fotos ihres Lebens sind weg... was wären diese Ihnen wert gewesen? Jetzt oder in 30 Jahren?) Jedes Jahr eine neue zu kaufen und zwanzig davon in Rotation zu halten ist nichts im Vergleich zu einem möglichen Verlust!
Als Privatanwender brauchen Sie vielleicht keine zwanzig Festplatten, aber jede einzelne erhöht die Chance, dass Sie irgendetwas unwiederbringliches wieder herstellen können, auch wenn Sie es versehentlich vor Jahren gelöscht haben und erst jetzt bemerken.
Denken Sie daran, die Backup-Platte in diesem Fall Read-Only zu mounten. So kann ein evtl. immer noch aktiver Virus sie nicht unbrauchbar machen (außer er ist intelligent genug und hat sich entsprechende Rechte ergaunert um sie woanders R/W mounten zu können!) Ein NFS-Mount aus einem definitiv unverseuchtem System könnte vielleicht die Lösung sein, oder eine Kopie auf einem USB-Stick, die man ggf. ersetzen könnte. Seien Sie in jedem Fall vorsichtig mit den zwei oder drei Backup-Platten! Verwenden sie nur Kopien davon, die Sie auf einem sicheren System erstellt haben, auch wenn dies Zeit kostet!
Der Verlust des aktiven Systems darf nur relativ geringe Kosten verursachen. Bei mir als Privatanwender reicht ein wöchentliches Backup normalerweise völlig aus, bei einer mittelständischen Firma vielleicht täglich, bei größeren Firmen eher öfter (oder differenzierter, aktuelle Daten müssen öfter gesichert werden, Archivdaten eher seltener).
Deshalb habe ich nicht nur Backups der Software, auch ein zweiter Pi4B liegt bei mir in der Schublade, mit einer zwar etwas älteren, aber durchaus funktionierenden SD-Karte und er kann das aktuelle System binnen einer halben Stunde übernehmen.
Wenn man unbedingt mehr als eine Platte für NAS braucht, könnte man an dieser Stelle über eine Dual-Dockingstation oder ein Mobius-Gehäuse sowie evtl. Software-RAID nachdenken, ich habe das nicht getan.
Backup
Das Backup lässt sich sehr einfach realisieren. Ein Skript schaltet die Backup-Platte ein, wartet bis sie bereit ist und mountet sie. Dann wird ein Rsync-Backup durchgeführt, die Platte wieder ausgehängt und abgeschaltet. Fertig.
Klingt zwar schnell, kann aber dauern. Von einer Dockingstation auf die andere schafft mein Pi4B ein TB in etwa vier Stunden. Ein Full-Backup von 6 TB dauert also etwa einen Tag. Wenn die Backup-Platte nicht neu ist sondern nur die Differenz zum letzten Backup gesichert werden muss geht es natürlich wesentlich schneller (in meinem System, mit einer 8 TB-Platte, meist in etwa 15 Minuten).
Mein Backup-Skript ist zusätzlich so gestaltet, dass die Backup-Platte natürlich formatiert sein muss, aber auch jedes zu sichernde (Root-) Verzeichnis bereits enthalten muss (zumindest als leeres Verzeichnis). So kann man z.B. kleinere (übrig gebliebene) Festplatten als Backup verwenden um nur bestimmte bzw. häufig geänderte Verzeichnisse zu sichern.
NAS
Komplizierter wird es mit dem NAS. Dieses soll ein oder mehrere Samba-Shares zur Verfügung stellen auf die Windows-Clients im lokalen Netz über ihre Netzwerkumgebung zugreifen können. Die Platte soll beim Zugriff automatisch gestartet und bei längerer Untätigkeit wieder abgeschaltet werden. Ich habe das mit einer Kombination aus Autofs und Cron gelöst.
Mounten mit Autofs
Autofs erlaubt es, Festplatten nur für die Dauer des Zugriffs zu mounten und nach einer gewissen Idle-Time wieder auszuhängen. Jeder Mountpoint hat dabei seine eigene Konfigurationsdatei, die praktischerweise auch ein ausführbares Skript sein kann.
Leider gibt es diese Möglichkeit nicht für das Unmount! Ich habe das so gelöst:
Das Mount-Skript schaltet die Festplatte ein, wartet 20 Sekunden bis sie bereit ist und setzt mittels hdparm eine angemessene Sleep-Zeit so dass die Platte zumindest in Standy geht, wenn sie nicht mehr benutzt wird.
Ein Problem dabei ist, das Autofs das Ergebnis des Skripts anscheinend eine gewisse Zeit lang cached und so das Skript nicht jedes mal ausführt! Offensichtlich ist es nicht für eine Anwendung wie diese gedacht...
Abschalten mit Cron
Ein Eintrag in der Crontab prüft dann einmal pro Stunde, ob die Platte im System erscheint (in /dev/disk/by-uuid) und ob sie gemountet ist (in /proc/mounts). Ist sie es nicht, wird sie abgeschaltet.
Das ist sicherlich nicht optimal aber es kommt dem gewünschten Ziel schon sehr nahe.
Dockingstations
Nicht jede Dockingstation oder jedes USB-Gehäuse eignet sich für unseren Zweck.
Eine Sharkoon Dual Dockingstation schied bspw. aus, weil sie keinen echten Einschalter hat. Sie wird über einen Taster eingeschaltet und ist beim Anlegen der Versorgung stets aus 😠. Warum bloß baut man so einen Scheiß?
Stromverbrauch
Was hat es nun gebracht? Der Pi4B als NAS-Controller muss rund um die Uhr laufen und benötigt etwa 3 W (ohne WLAN, einen Server über WLAN anzubinden ist ohnehin nicht sinnvoll). Das Disk-Subsystem braucht dank der Abschaltung keine zusätzliche Standby-Leistung. Auch im aktiven Betrieb ist keine zusätzliche Ansteuerleistung nötig. Es benötigt lediglich die Leistung der Dockingstations und der Festplatten. Diese ist von Platte zu Platte unterschiedlich, liegt aber bei 3,5"-Festplatten in der Größenordnung von 10..15 W pro Platte.
Kostenmäßig sind wir hier bei ca. 6,50 € pro Jahr für den Raspi, selbst wenn die Platte Tag und Nacht aktiv wäre macht es nur 40.00 € pro Jahr aus.
Zum Vergleich: bei dem professionellen NAS mit 5 Platten wären wir hier bei 57,00 € bzw. 110,00 € pro Jahr. Da die Platte(n) gerade im privaten Umfeld normalerweise eher selten benutzt werden können wir von einer (Energie-) Ersparnis von etwa Faktor 6..8 ausgehen.
Natürlich hat das Profi-System auch seine Vorteile, die es hauptsächlich im Umfeld mit zig oder mehr Benutzern die rund um die Uhr arbeiten, voll ausspielen kann. Dann ist es einfach schneller. Zudem könnte ein Ausfall einer einzigen Festplatte durch einen aufmerksamen (!) Administrator ohne Betriebsunterbrechung oder Datenverlust repariert werden. Für die allermeisten Privat- und SOHO-Anwender hat dies jedoch keine wirkliche Bedeutung.