NAS mit ZFS und ECC-Ram

Bis jetzt hatte ich eine NAS auf Basis eines Intel Atom (Board: D945GSEJT) mit einer SATA Festplatte und einem USB-Stick als Systemlaufwerk. Jetzt ist es leider passiert, das der USB-Stick seinen Geist aufgegeben hat, die Daten jedoch nicht berührt wurden. Das ganze machte mich jedoch schon nachdenklich, denn ich hatte jetzt schon einiges durch: Defekte Festplatte, USB-Stick. Weiterhin wird der Platz auf der 1 TB Platte langsam eng. Ich sah mich also nach einer Alternative um. Nachdem ich auf der NAS auch ein Foto nicht mehr öffnen konnte (es war wohl irgendwo ein relevantes Bit geflippt), war für mich klar: Es muss ein tolerantes Dateisystem und ein professionelles System her, das die Daten zuverlässig erhält und nicht irgendwann korrumpiert. Bis jetzt hatte ich auch für das Backup auf LVM und die Snapshots gesetzt, da dies gut funktioniert. Das muss also mit dabei sein. Nach einiger Zeit fiel die Wahl daher auf ZFS und ein System mit ECC-Ram. Das ganze Thema ECC wird im Internet durchaus kontrovers diskutiert, es fallen zwar zusätzliche Kosten an (wobei der RAM-Riegel mit 8 GB nur ca. 10 € mehr kostet), jedoch muss man bei den heutigen Datenmengen durchaus damit rechnen, das sich ein Bit verändert Interessierten Lesern empfehle ich hier z.B. dies zum nachlesen: https://pthree.org/2013/12/10/zfs-administration-appendix-c-why-you-should-use-ecc-ram/.

Meine Anforderungen an eine neue NAS

  • ECC-Speicher
  • Schneller, wie ein Intel Atom
  • RAID 1
  • Schnelle Backupmöglichkeit
  • Separate Systemplatte
  • 2-3 TB Speicher
  • Möglichst geringer Stromverbrauch

Die Basis für die Zusammenstellung war der Bauvorschlag aus der CT: Bauvorschlag CT, den ich für mich adaptierte, da ich gleichzeitig ein möglichst kleines Gehäuse haben wollte.

Die Hardware

Intel Pentium G3220 2x 3.00GHz 47,19 €
64GB SanDisk SSD SDSSDP-064G-G25 38,84 €
3000GB WD Red WD30EFRX 2 * 102,98 €
300 Watt be quiet! System Power 7 Bulk 29,03 €
8GB Kingston ValueRAM DDR3-1600 ECC 82,47 €
Chenbro Gehäuse SR30169 1 108,90 €
Asus Mainbord P9D-I 139,90 €
Summe: 652,29 €

Der Zusammenbau der Hardware war durchaus etwas fummelig, da das Gehäuse nicht sonderlich üppig mit Platz ausgestattet ist. Dafür wird man mit einer kompakten NAS belohnt. Dies hatte auch Einfluss auf die Entscheidung für das Mainboard, da dies das einzigst akzeptable war, das der Markt her gab. Zusätzlich hat das Mainboard ein Fernwartungsmodul ASMB7-iKVM, welches es ermöglicht, den Server zu warten, jedoch im Gegenzug auch für den erhöhten Stromverbrauch im Aus zustand verantwortlich ist. Wenn der Server jedoch zu hause steht und nicht mehr erreichbar ist, kann dies unbezahlbar sein. Das Mainboard selbst hat 4 SATA Anschlüsse, wovon 2 für die Festplatten und einer für die SSD benötigt werden. Die SSD dient dabei als Systemplatte, was ein Wechseln und Experimentieren mit einem anderen Betriebssystem möglich macht. Zusätzlich dient die SSD als schneller Cache für das ZFS.

Die Software

Lange habe ich überlegt, auf welcher Basis ich aufsetzen möchte. Letztendlich ist es dann doch ein Ubuntu 14.04  geworden, da ich mich hiermit zum einen gut auskenne und es dort auch viele Pakete gibt, die ich immer wieder benötige. Ich setze neben dem klassischen Dateiserver auch einen Medienserver (für Squeezeboxen) ein. Weiterhin laufen dort noch diverse Datenbanken (z.B. PartKeepr) wie auch ein Backup-Server (Burp), so das ich mich nicht mit unbekanntem Terrain herum ärgern wollte. Leider hat mir diese Entscheidung auch ein korruptes Dateisystem und Ärger eingebracht: Blog-Artikel.

Auf die Installation selbst möchte ich hier nicht genauer eingehen, hierfür sind im Internet viele Tutorials zu finden. Wenn jedoch Interesse an einer genaueren Anleitung besteht, dann kann ich noch nachliefern.

Von Tücken, Pech und Pannen beim Stromsparen

Und natürlich bleibt es nicht aus, ich fand schnell heraus, das das Remote-Management zum einen die interne VGA nutzt (auf dem Board befindet sich ein Jumper, der diese deaktivieren kann) und beim deaktivieren der Rechner nicht mehr startete. Ebenso war es keine gute Idee, alle USB 2.0 Anschlüsse zu deaktivieren, denn oh wunder, das Keyboard des Remote-Managements wird hier ebenfalls über eine USB-Schnittstelle eingespeist. Sollte dies euch auch passieren, so kann man die virtuelle Konsole noch zur Ausgabe nutzen, jedoch muss dann eine Tastatur am Rechner angeschlossen werden. USB#10 sollte also unbedingt aktiviert bleiben. Damit lassen sich dann im Notfall auch die anderen USB-Ports wieder aktivieren und z.B. die remote images einbinden. Leider macht dies den ganzen Stromspareffekt wieder zunichte. Leider bringt es auch nichts, einen USB 3.0 Port zu deaktivieren, denn einer würde vollkommen genügen.

Ergebnisse Stromverbrauch

Aus 5,2 W
Susupend to RAM (WOL aktiv) 5,8 W
Leerlauf 31 W
HDD Spin-Dow 25 W
Vollast 2 49 W

Es gibt noch ein wenig Stromsparpotential, indem das BIOS und das Powermanagement von Linux optimiert werden:

Leerlauf (alle USB 2.0 deaktiviert (Vorsicht Remote-Konsole, siehe Text), C6 enabled) 25 W
Leerlauf (C6 Enabled) 28 W
Leerlauf (C6 + Powertop) 24 W

Performance

Hierbei ist bei einer NAS vor allem eines wichtig: Die Datentransferrate. Hierbei stellt sich die Frage, wie diese zu Messen ist. Ich habe daher meinen normalen Use-Case genutzt: Dateitransfer über SMB Freigaben:

Lesen von der NSA: 82 MByte/s
Schreiben zur NAS: 87 MByte/s

Fazit

Ich bin soweit zufrieden und kann mich nun wieder anderen Dingen widmen, als Angst um meine Daten zu haben. Leider ist der Stromverbrauch im Vergleich zu meiner alten Lösung gestiegen, dieser Server hat sich mit knapp 11 Watt begnügt, jedoch müssen wie immer im Leben Kompromisse eingegangen werden.

Da die NAS zusätzlich noch als Backup von meinem Rechner und einem Server im Internet dient war es notwendig, den Plattenplatz aufzustocken. Diese Daten sind jetzt dort besser gelagert. Für den Super-GAU wird noch 1 mal im Monat eine Festplattenkopie außer Haus gelagert.

Notes:

  1. Chenbro SR30169 Review
  2. Gemessen, indem folgendes Kommando in 2 Prozessen ausgeführt wurde:
    time echo “scale=30000000; 4*a(1)” | bc -l

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.