Netgear ReadyNAS-OS auf normaler PC-Hardware

Netgear verkauft seit Ende des Jahres 2021 keine NAS-Systeme mehr.
Das ist schade, da ich mit meinem ReadyNAS RN204 sehr zufrieden war und bin. Seit 2015 tuckert es völlig unauffällig als allnächtliches Backup-Ziel vor sich hin.
Die Weboberfläche ist funktional und übersichtlich, darunter werkelt btrfs samt Snapshots, Quotas und Kompression auf einem mdadm-Raid. Es werden alle gebräuchlichen Protokolle unterstützt, fancy Gimmicks gibt’s (zum Glück) keine.
ReadyNAS-OS basiert auf Debian 8(!), das jedoch von Netgear großflächig aktualisiert wurde und – Stand November 2022 – weiterhin wird. Außerdem hat man hat root-Zugang und kann Debian-Pakete installieren.

Zum Glück läuft ReadyNAS-OS auch auf echter, normaler PC-Hardware:

Netgear bietet ReadyNAS-OS zur Installation in VirtualBox an (https://github.com/ReadyNAS/sdk/wiki/Setup-ReadyNAS-OS-on-VirtualBox). Gedacht ist das für Entwickler, die Apps für ReadyNAS-OS entwickeln wollen. Das System ist bis auf’s letzte Bit komplett identisch zum ReadyNAS-OS auf den echten NAS-Geräten – und wird deswegen ebenso mit Updates versorgt.

Wer’s nachprüfen will: Die normalen Firmwareupdates von Netgear sind TAR-Archive mit einem 4000 Byte langem Header, den man vor dem Entpacken entfernen muss. Nach dem Entpacken erhält man das Root-Dateisystem (wieder als tar), das initrd und den Kernel. Das VMDK-Image enthält die identischen Dateien wie das Firmwareupdate mit der selben Versionsnummer, nur zusätzlich noch einen Syslinux-Bootloader.

Hardwareanforderungen

Die Hardwareunterstützung von ReadyNAS-OS ist etwas eingeschränkt. Der Kernel bringt für Netzwerk und SATA/SAS diese Treiber mit:

== NIC: ==
kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
kernel/drivers/net/ethernet/intel/e1000/e1000.ko
kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
kernel/drivers/net/ethernet/intel/i40e/i40e.ko
kernel/drivers/net/ethernet/intel/igb/igb.ko
kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
kernel/drivers/net/ethernet/marvell/sk98lin/sk98lin.ko
== NIC USB: ==
kernel/drivers/net/usb/asix.ko
kernel/drivers/net/usb/ax88179_178a.ko 
kernel/drivers/net/usb/lan78xx.ko
kernel/drivers/net/usb/pegasus.ko 
kernel/drivers/net/usb/r8152.ko
kernel/drivers/net/usb/rtl8150.ko
== SATA/SAS: ==
kernel/drivers/ata/libata.ko
kernel/drivers/ata/ahci.ko
kernel/drivers/ata/libahci.ko
kernel/drivers/ata/sata_sil24.ko
kernel/drivers/scsi/mpt3sas/mpt3sas.ko

Im Wesentlichen werden also Intel-Netzwerkchips von 1 GBit/s bis 10 GBit/s unterstützt, sowie Broadcom NetXtreme- und Marvell-Chips. Ebenso funktionieren USB-Netzwerkadapter mit Chips von ASIX, Microchip, und von Realtek mit RTL8150 und RTL8152/RTL8153.

Für SATA/SAS funktionieren praktisch alle Chips (bis auf historische), plus die älteren Silicon Image 3124, 3132 und 3531, sowie die im Firmenumfeld beliebten Broadcom/LSI SAS-Controller, die seit Jahren unter diversen Marken vertrieben werden.

Installation

Zum Booten kann entweder eine SD/CF/??-Karte in einem USB-Kartenleser benutzt werden, oder ein USB-Stick.

Zuerst das VMDK-Disk-Image von Netgears Github-Seite herunterladen, entpacken, und in’s RAW-Format konvertieren:
qemu-img convert -f vmdk -O raw ReadyNASOS-6.6.0-x86_64.vmdk ReadyNASOS-6.6.0-x86_64.img

Anschließend ReadyNASOS-6.6.0-x86_64.img als Image auf den USB-Stick oder die Speicherkarte schreiben:
dd if=ReadyNASOS-6.6.0-x86_64.img of=/dev/sdX (Das „X“ anpassen je nachdem welches Device USB-Stick/Speicherkarte eben hat)

Falls ein USB-Stick benutzt wird muss dieser noch bootfähig gemacht werden – bei Speicherkarte-in-USB-Kartenleser ist das nicht nötig:

  1. syslinux -i /dev/sdX1
  2. dd conv=notrunc bs=440 count=1 if=/usr/lib/SYSLINUX/mbr.bin of=/dev/sdX

Dann vom USB-Stick (oder Speicherkarte) im BIOS-Modus booten.

Achtung: Der Bildschirm bleibt schwarz, es gibt keinerlei Ausgaben! Gelegentlich blinkt das Festplattenlämpchen und die Platten klackern, aber das war’s dann auch. Bei echten Netgear-NAS-Geräten würde der Fortschritt des Startvorgangs in dem kleinen LC-Display angezeigt werden. Wer neugierig ist kann die Bootmeldungen per serieller Konsole auf ttyS0 mitverfolgen.

Nach ein paar Minuten Warten ist ReadyNAS-OS über die Weboberfläche zu erreichen und kann ganz normal eingerichtet werden (um die IP-Adresse herauszufinden einfach in der Fritzbox oder den Logs des DHCP-Servers nachschauen, je nachdem was man eben hat). Noch während des Einrichtens wird ein Update auf die aktuelle ReadyNAS-OS-Version angeboten, das man problemlos durchführen kann.

Der USB-Stick bzw. die Speicherkarte wird auch nach der Installation zum Booten benötigt! Also nicht abstecken.

SATA Hot-Swap

Damit die SATA-Platten im Betrieb getauscht werden können, müssen im BIOS die SATA-Schnittstellen als „eSATA“ eingestellt werden. Falls es eine „Hot Swap“-Option gibt muss die natürlich ebenfalls eingeschaltet werden. Ansonsten merkt der Rechner zwar, dass eine Platte entfernt wurde, erkennt eine neu hinzugefügte Platte aber erst nach einem Reboot.

Für den Fall dass der Stromverbrauch noch mit Powertop (oder udev-Regeln) optimiert werden soll:
Finger weg vom „SATA link power management“ und für die SATA-Controller vom „Runtime PM“: Wenn hier stromsparende Einstellungen gesetzt werden funktioniert SATA Hot-Swap nicht mehr.
Wer Wert auf zuverlässiges Netzwerk legt und/oder Wake-On-LAN nutzen will, sollte auch keine Stromsparoptionen bei den Netzwerkchips aktivieren.

Fazit

Ich hab’s hier am Laufen auf einem Fujitsu D3346-ATX-Mainboard, einem Xeon E3-1225 v5 und 16 GByte DDR4-ECC-RAM. Irgendein alter Celeron oder Athlon und 2 GByte RAM müssten jedoch auch reichen.
Das Mainboard hat zwei Intel-1 GBits/s-Netzwerkanschlüsse. Diese können in ReadyNAS-OS per Link Aggregation zusammengeschaltet werden. Da mein Mainboard nur sechs SATA-Anschlüsse hat, hab ich noch vier weitere SATA-Anschlüsse mit einer billigen No-Name-PCIe-Karte nachgerüstet.
Das Ganze steckt in einem Silverstone SST-CS380 V2-Gehäuse. Das Gehäuse ist zwar sehr windig, hat aber acht praktische Hot-Swap-Einschübe für 3,5″-SATA/SAS-Platten. In den beiden 5 1/4-Zoll-Plätzen lassen sich noch zwei weitere Platten unterbringen, so dass in Summe zehn Platten verwendet werden können.

Was nicht funktioniert

Lüfterdrehzahl sowie CPU- und Systemtemperatur werden nicht in der Weboberfläche angezeigt.

Stromverbrauch (mit sieben 4-TByte-Platten)

  • 140 Watt beim Hochfahren der Platten
  • 80 Watt bei Benutzung
  • 60 Watt im Leerlauf
  • 27 Watt Leerlauf mit Platten im Standby (SATA-Hotswap aktiv, siehe unten)

Vergleichbare NAS-Systeme bewegen sich in ähnlichem Rahmen.
Das aktuell von mir verbaute Netzteil (BeQuiet Straight Power 10 400W) ist stark überdimensioniert. Mit einem schwächeren Netzteil lassen sich vielleicht noch ein paar Watt einsparen. Wenn ich die kühlkörperlose SATA-PCIe-Steckkarte durch einen LSI-SAS-Controller ersetze, steigt der Stromverbrauch um 4,3 Watt.

WLAN

Wer will kann zusätzlich einen USB-WLAN-Stick anstöpseln. ReadyNAS-OS unterstützt jedoch ausschließlich WLAN-Sticks mit Realtek rtl8192c/rtl8192cu-Chips (802.11n).