Null Toleranz für Null Redundanz

Nachdem mein Null-Redundanz-Setup Ende April 2025 einigermaßen spektakulär auseinandergefallen ist, habe ich mich dazu entschieden den Heimserver von den NAS-Aufgaben zu befreien und mir stattdessen ein eigenes Gerät nur für diesen Zweck anzuschaffen. In Zukunft möchte ich von den einen oder anderen dahergelaufenen ZFS-Fehler gegenüber immun sein. Das bisherige Setup bestand aus zwei 4 TB SSDs (Ende 2023 gekauft, als die gerade sehr günstig waren), einmal Onsite und einmal Offsite und jeweils in einem HP Pro- bzw Elitedesk Mini im einzigen SATA Slot. Dieser proprietäre SATA-Anschluss von HP besteht aber nur aus einem Flachkabel und war vermutlich auch am Ausfall Ende April 2025 schuld. Der Onsite Mini PC hat dann mittels zfs send bzw. TrueNAS Replication Task regelmäßig die Daten auf den Offsite Mini PC verschoben. Mir schien es damals als eine sehr gute Lösung, aber die doch etwas zu häufig auftretenden ZFS-Fehler und die Schwierigkeit diese Fehler dann zu beheben, haben mich an dieser Lösung zweifeln lassen. Mit etwas mehr Redundanz hätte TrueNAS relativ automatisch und vor allem mit Bordmitteln einzelne ZFS-Fehler beheben können.

Die neue Lösung sieht insgesamt vier Stück 4 TB SSDs vor, also habe ich zwei zusätzliche SSDs gebraucht. Leider sind die nicht mehr so günstig als vor anderthalb Jahren und haben nun 240 Euro statt knapp unter 200 Euro gekostet. Aber wo sollen diese SSDs dann unterkommen? Meine Wahl fiel auf den Odroid H4 Plus von Hardkernel. Warum? Softwaresupport und extrem niedriger Stromverbrauch, vor allem im Unterschied zu den ganzen Aliexpress Boards, wie Topton und CWWK, dem XXXLutz und Möbelix der Bastelcomputerbranche. Deren Hardware sieht zwar auf dem ersten Blick super aus und der Preis ist auch unschlagbar günstig für Neuware. Auf dem zweiten Blick offenbart sich jedoch, dass als SATA-Controller dann ein Chip genommen wird, der dem Board dann die guten Sleep-States raubt und das scheinbar effiziente NAS dann nie unter 20 Watt Stromverbrauch kommt.1 Also doch lieber ein Hersteller, der sich um seine Produkte kümmert und auf die Community hört – mehr dazu nachher. Bestellt habe ich jedoch nicht direkt in Südkorea, sondern bei odroid.nl, denn ich wollte mich nicht mit dem Zoll herumschlagen und odroid.nl war zu diesem Zeitpunkt günstiger als andere Anbieter, das soll aber keine Werbung sein, am besten selbst recherchieren. Außerdem habe ich noch den äußersten lässigen aus-ein-mach-vier-NVMe-Adapter dazubestellt, der hat es wirklich in sich.

Im ersten Beitrag hier werde ich das Gerät selbst begutachten, das BIOS umfassend durchschauen, es dann auch gleich flashen und überprüfen, ob dann meine beiden 256GB NVMe Boot-Festplatten erkannt werden (Spoiler: Ja, werden sie). Als los gehts!

Odroid H4 Plus

Direkt aus der Schachtel entnommen schaut das gute Ding so aus:

Und der Wunderadapter so:

Diese Adapterkarte ermöglicht es statt einer M.2 NVMe PCIe Gen 3 x4 Karte insgesamt vier Stück mit jeweils einer Lane (800-900 MB/s) zu betreiben. Hier ist die Produktseite und hier die Wiki-Seite der Karte. Um sie benutzen zu können muss man jedoch die Firmware flashen.

Firmware Flashen

Auf der Wiki-Seite wird genauer beschrieben welche BIOS-Version man braucht:

Am Ende der Seite wird auf die BIOS-Release-Seite verlinkt. Dort werden die üblichen Anwendungsfälle für ein BIOS-Versionswechsel beschrieben:

Der letzte Punkt ist hier relevant. Allerdings würde mich interessieren, ob die bestehende Version bereits diese in-band ECC Memory Funktion unterstützt. Ich habe in diesem sehr lesenswerten2 Forumsbeitrag darüber erfahren.

Um den Odroid H4 zu flashen braucht man einen USB-Stick und dieses BIOS Update Tool.

Gut ist, dass man beim Odroid H4 sogar ein Dual-Boot-BIOS hat und man so im “Ziegel-Fall” auf das Backup-BIOS wechseln kann (hier ist die weiterführende Info):

Den USB-Stick muss man einfach als FAT32 formatieren. Anschließend lädt man das ZIP-Archiv und die Prüfsummendatei runter. Welche BIOS Version? Mindestens “ADLN-H4 1.02”:

Auf der Downloadseite hat man die Auswahl an BIOSes von der Version 1.0 bis 1.08:

Übrigens ab Version 1.02 bekommt man ebenso die Möglichkeit in-band ECC im BIOS zu aktivieren. Ich lade einmal Version ADLN-H4_B1.08.zip (und ADLN-H4_B1.08.zip.sha256) runter und bereite einen USB-Stick vor.

Die Prüfsumme kann man unter Linux so überprüfen:

shasum -c ADLN-H4_B1.08.zip.sha256

Und das sollte zurückkommen:

ADLN-H4_B1.08.zip: OK

Den Inhalt des ZIP-Archivs kopiert man anschließend auf den USB-Stick. Nun wäre alles für das BIOS-Update vorbereitet. Aber sehen wir uns die Hardware-Seite noch etwas mehr an.

NVMe einbauen

Ich habe zwei Apacer (klingt nach Kurz) NVMe Laufwerke um jeweils 20 Euro gekauft…

… Die Eckdaten sind gut, und die 200 TBW sollten für 10+ Jahre Beschreibung reichen, länger als die vermutliche Verwendung. Dafür habe ich mich für ein Mirror-Setup entschieden. Das soll sicherstellen, dass sich das NAS nicht einfach so schnell vertschüsst:

Die beiden NVMe SSDs habe ich auch gleich in den Adapter geschraubt:

Jetzt ist es an der Zeit den Odroid im “Ratzennest” – pardon Homelab – zu installieren:

Der Radxa Zero 3e links oben wird vorerst einmal ausgeschaltet. Aber das Setup muss ich sowieso einmal überarbeiten und etwas aufgeräumter gestalten. Wie es bei der Heimserverei so ist, fängt man klein an und dann wächst das Zeugs immer weiter an.

Achja, und ich verwende ja meinen kleinen Eigenbau PiKVM, der hier gerade mit Backupserver in schwarz dahinter (und GPU-Server in weiß darüber) herumhängt…

… aber mich noch nie hängen hat lassen. Falls jemand nicht weiß wofür das gut ist, damit kann man aus der Ferne einen PC fernsteuern. Der Raspberry Pi Zero 2 ist mit PiKVM bespielt, tut so als ob er Bildschirm, Maus und Tastatur (keyboard, video and mouse, daher KVM) ist und schickt das über WLAN dann zum Laptop. So lässt sich komfortabel ein Rechner aus der Ferne bedienen und auch viel einfacher Screenshots vom Bootprozess und vom BIOS machen.

Ein weiteres hilfreiches Feature ist das Einspielen von ISOs, man braucht also einen USB-Stick weniger:

Tour durchs BIOS

Ich habe eindeutig unterschätzt wie umfangreich das BIOS ist. Die Einstellmöglichkeiten erschlagen einem fast. Ich habe halb naiv begonnen die verschiedenen Optionen zu screenhotten. Es ist sehr umfangreich geworden, wen das Stellwerk in Retrooptik nicht so reizt kann gleich zum BIOS-Flashen springen.

Main

Man sieht hier welche Version des BIOS gerade installiert ist (ADLN-H4 1.00 x64) und andere allgemeine Informationen über das System:

Hier noch die restlichen Angaben:

Ich habe gerade bemerkt, dass ich die BIOS Batterie ja noch gar nicht angeschlossen habe, das muss ich noch erledigen.

Advanced

Hier wird es umfangreich, haufenweise Einstellungen:

Hier kann man den Stromverbrauch auf ungedrosselt stellen:

Die Option “Enable ACPI Auto Configuration” ist wichtig um sehr niedrigen Stromverbrauch zu ermöglichen:

Zurzeit wird nur eine NVMe-Karte erkannt:

Chipset

Auch beim Reiter “Chipset” lassen sich ein paar Dinge einstellen…

… wie zum Beispiel die für die Virtualisierung wichtigen VT-d Optionen, die jedoch eh standardmäßig aktiv sind:

Diese Option ist wichtig um den Stromverbrauch maximal zu verringern, standardmäßig ist diese Option aber deaktiviert, da es bei manchen NVMe Laufwerken zu Instabilitäten kommen kann (Quelle: “Next, we changed the PCIe ASPM (Active State Power Management) setting from the default ‘Disabled’ to ‘Auto’. A fairly dramatic reduction in idle power is observed in this area. Now we can see numbers closer to 2 watts. The reason we chose “Disabled” as the default BIOS ASPM setting is because we saw some NVMe/PCIe devices have been experiencing instability with ASPM features”). Aber wir probieren es auf jeden Fall aus und hoffen, dass alles stabil bleibt:

Security

Hier könnte man ein Admin-Passwort einrichten, das werde ich vorerst jedoch nicht machen:

NVMe Passwort:

Boot und Rest

Auch bei den Boot-Optionen gibt es einige Einstellmöglichkeiten:

Bios Fazit

Wow, ich hätte nicht gedacht, dass dieses BIOS gar so viele Optionen bietet. Die Liste an Screenshots ist länger geworden als gedacht. Vielleicht hilft es ja Nachschlagewerk.

BIOS Flashen

Wieder zurück zum Produktiven. Ich habe den USB-Stick mit dem neuesten BIOS eingesteckt und werde gleich davon booten. Die Anleitung schreibt folgende Schritte vor:

So sieht das dann aus:

Jetzt fs0 aufmachen mit:

fs0:

ls:

Und fbnet für die M.2 4x1 Karte:

Und schon geht’s los:

Und nach 2-3 Minuten war es schon fertig:

Jetzt ausschalten und den Strom zupfen, damit ein hard reboot möglich wird.

Und wir haben Version ADLN-H4 1.08 x64:

Jetzt werden beide Boot-Drives angezeigt:

Und auch die “In-Band ECC Support” Einstellungen:

Diese Funktion habe ich dann auch gleich aktiviert:

Und Unlimited Power, denn das erhöht den Idle Verbrauch nicht3:

Fazit

Ich bin schon einmal sehr positiv eingestellt durch das bisher gesehene. Das BIOS ist umfangreich und das Firmware-Upgrade war schmerzlos durchführbar. Im nächsten Beitrag zeige ich die Installation von Proxmox und dann TrueNAS als virtuelle Maschine.

Nachtrag, das Odroid-NAS hat jetzt auch noch eine fetzige Upcycle-Kühl-Lösung in Form eines alten Intel-CPU-Lüfters bekommen (und die BIOS-Batterie steckt auch jetzt):

Footnotes

  1. Besonders amüsant sind dabei die Reddit-Beiträge in englischer Sprache zu lesen, die in etwa so gehen: Threadersteller, vermutlich Europäer, sorgt sich um den hohen Idle-Stromverbrauch, Antwort darunter, vermutlich von einem Amerikaner verfasst: 20 Watt? Das ist doch nicht hoch, mein Enterprise-Grade Server braucht 300 Watt, 20 Watt ist doch eh nur ein Drittel einer alten Glühbirne, das ist effizient. Das machen 10 Cent versus 30+ Cent pro KWh (und tendenziell billigere Enterprise Gebraucht-Hardware) aus.

  2. Der Thread ist deswegen besonders erleuchtend, weil ein User darin nach diesem Feature fragt und die offizielle Antwort von Odroid ist zuerst, dass sie nicht wirklich wissen, wie das funktioniert. Der User versorgt dann die Entwickler mit zusätzlichen Infos und weiterführenden Links. Der Thread entwickelt sich über die Wochen und am Ende gibt es die Meldung, dass der Odroid H4 nun via BIOS-Update diese ECC-light Variante unterstützt. Dieses Beispiel zeigt, wie sehr sich Hardkernel um die Verbesserung seiner eigenen Produkte kümmert. Es war letztlich auch ein Grund weshalb ich mich für dieses Produkt entschieden habe.

  3. Aus der offiziellen Beschreibung: “Last point: in Unlimited Performance mode, the CPU (and the fan) use more power than they do in Balanced mode, easily reaching 23+ W with the ODROID-H4+ and 34+ W with the ODROID-H4 Ultra. However this happens only when the CPU is indeed turbo boosting. When idle, the system will use the same power as in Balanced mode. If your goal is to minimize energy consumption, use Balanced mode. If your goal is to maximize performance use Unlimited Performance mode and again use active cooling with a fan to avoid the CPU to be constantly throttling down.”