Einleitung
Ich hatte schon lange versprochen, Euch über den Ausgang des Aufbaus und die Teile meines neuen NAS zu informieren. Zuerst kurz zur Motivation. Bisher habe ich ein Thecus N3200PRO mit 3x 1TB WD-Green als RAID-5 im Einsatz. Da aber keinerlei Updates vom Hersteller mehr eintrudeln, es kein rsync kann, das NFS unzuverlässig ist und ich seit geraumer Zeit ein Fan von Filesystemen mit Prüfsummen bin (Thema Bitfäule), war eine Neuanschaffung unvermeidlich.
Nun hätte man wieder ein Thecus oder ein Synology oder so kaufen können, aber damit wäre ich wieder im Kerker der Hersteller gelandet. Nicht nur, dass man den Typ des Filesystems meist nicht wählen kann, die Updates sterben meist schnell und im Lichte der vielen Sicherheitsproblemen von Routern und NAS in den letzten Monaten, war mir etwas Zugeschlossenes zutiefst unsympathisch. Im Preis macht es sich auch nicht gross bemerkbar, oft sind die fertigen NAS sogar teurer.
Wahl der Basis I
Zuerst habe ich mich nach Open Source NAS-Software umgesehen. Der Markt ist natürlich sehr gross, aber es gibt nur wenige Mitspieler, die schon länger und mit ausreichend Beachtung versehen sind. Natürlich hätte man auch ein Standard-Linux draufwerfen können und sich ein RAID zusammenschrauben, aber ich wollte etwas Komfort und nicht zu vergessen, was gegen Bitfäule.
Als Kandidaten standen also FreeNAS, NAS4Free, OpenFiler und Open Media Vault in den Startlöchern.
Kurz zur Bitfäule
Im Englischen "bit rot" genannt, ist das Phänomen, dass entweder durch sporadische, aber unbemerkte Fehler, einzelne Informationsbits kippen oder durch Lagerung einfach die Medien schwach werden und die Information nicht mehr vernünftig halten. Der letzte Punkt ist bei Festplatten nicht ganz so ein starker Faktor, wenn sie nicht die ganze Zeit im Schrank liegt, aber bei CDs ein Thema.
Bei Festplatten kann es passieren, dass auf der Festplatte nicht die Daten ankommen, die der Prozessor eigentlich ablegen wollte. Dummerweise merkt das niemand, da das Bit auf dem Weg von CPU zur physischen Platte irgendwo kippt. Das kann ein Software- oder ein Hardwarefehler sein oder einfach auch nur Zufall, weil bei unseren derzeitigen Computern, nur noch wenige Atome die Leiterbahnen bilden, die Spannungsniveaus extrem niedrig und die Geschwindigkeiten so stark gestiegen sind, dass wir teilweise an physikalischen Limits kratzen.
Also kann es passieren, dass beim Schreiben oder Lesen, einfach die Daten eine kleine Macke bekommen. Beim Lesen wäre es nicht weiter schlimm, wenn man es merken würde und nicht später die kaputte Information wieder zurückschreibt oder gar aufs Backup kopiert. In einem Video fällt das nicht auf, aber ein JPEG oder ein UTF-8 Text sehen dann schon richtig komisch aus. Ein schöner Artikel dazu ist Bitrot and atomic COWs: Inside "next-gen" filesystems.
Um dem Problem Herr zu werden, hat man Dateisysteme entwickelt, die sich dieses Problems durch Prüfsummen annehmen. Das Thema nennt sich Datenintegritätssicherung. Einfaches Praxisbeispiel. Wenn man Geld von A nach B bringt, dann zählt man es und verpackt es. Die Zählsumme wird unabhängig vom Geld transportiert oder gelagert. Wenn man das Geld braucht, dann zählt man zuerst nach und vergleicht es mit der Zählsumme. Stimmt es nicht, ist entweder Geld manipuliert worden oder die Zählsumme falsch gespeichert worden. Man kann also ein Problem melden. Wenn man jetzt noch die Zählsumme absichert, indem man sie z.B. als Kopie mit dem Geld transportiert, dann kann man ggf. sogar sagen, ob Zählsumme oder Geldbetrag falsch sind. Das ist natürlich ziemlich vereinfacht, aber so ungefähr geht es. Die Magie der Mathematik im Rechner kann sogar kaputte Daten anhand von Prüfsummen wieder zusammenstoppeln.
Wahl der Basis II
Es gibt nur wenige Filesysteme, die mit Bitrot umgehen können und das sind ZFS (FreeBSD), Btrfs (Linux), ReFS (Microsoft) und noch etwas von Netapp glaube ich, aber da ist kein rankommen. Nur ZFS und Btrfs sind frei verfügbar. Btrfs ist noch etwas frisch und so gehen die RAID-Level 5/6 noch nicht so prickelnd und keine grössere NAS-Distribution nutzt es. Damit ist Linux raus, weil ich mir kein Ext4 via Software-RAID antue. Da wäre ich nicht anders unterwegs als jetzt.
Also nur ZFS und damit sind wir bei FreeNAS und NAS4Free. Die beiden sind verwandt. Beide haben die gleichen Wurzeln, trennten sich aber irgendwann. Ich glaube, weil man über FreeNAS mehr liest, habe ich das gewählt.
Die Hardware
Es war klar, dass ich nix von der Stange kaufe werde, weil das System zuverlässig sein sollte, aber auch leise. Ich habe eine Weile gewühlt und gelesen und wollte schon fast etwas bestellen, da fiel mir noch auf, dass man ZFS nur mit ECC-Memory betreiben sollte, weil sonst der Sinn von ZFS und seiner Datenintegrität ad-absurdum geführt wird. Oder auf Deutsch, wenn der Hauptspeicher nicht merkt, dass er Mist baut, wie soll dann die Disk eine Chance haben, richtig zu liegen, schliesslich laufen alle Datenaktionen durch den Hauptspeicher.
Also zurück auf Los und nochmal. Dieser Haufen wurde es dann:
- Motherboard: Asrock C2550D4I mit 4-Core Intel Atom, passiv gekühlt, 12x SATA-Ports
- Gehäuse: Fractal Design Node 304, weiss
- Speicher: 16GB Kingston PC3-12800, ECC
- USB Stick Sandisk Cruzer Fit 8GB
- Netzteil: Corsair RM450 ATX, 450W
- Kram: diverse SATA-Kabel 50cm
Das Motherboard wurde erwählt, weil es Mini-ITX als Formfaktor ist, die CPU inkl. passiven Kühlkörper bereits enthält und 12 SATA-Ports besitzt. 6 Ports hätten gereicht, aber da gibt es einfach keine Board mit ECC-Speicher Unterstützung.
Das Gehäuse, weil es kompakt und Mini-ITX ist, sowie Platz für 6 Platten hat. Der Speicher einfach mal, weil er ECC ist und 16GB, weil ZFS mindestens 8GB bekommen sollte. Der kleine USB-Stick ist quasi die Festplatte fürs FreeNAS und lebt dort. Steckt draussen dran. Ist so klein, dass nix abreissen kann. Das Netzteil hat seinen Job bekommen, weil es unter normalen Umständen seinen Lüfter nicht drehen lässt und eine hohe Energieeffizienz hat, zudem kann es 6 Platten mit Strom versorgen.
Platten
Eine NAS ist nichts ohne seine Platten. Damit man den gewünschten Ausfallsicherheitseffekt erzielt, sollte man nicht alle Platten vom gleichen Hersteller haben und nicht alle gleichzeitig, also quasi vom Band nacheinander kaufen. Aus diesem Grunde habe ich von drei Herstellern Platten gekauft. Jeweils als 3TB Modell und als NAS Variante. Leider habe ich bei der Hitachi nicht gesehen, dass sie eine 7200er Platte ist, also schneller dreht. Sie wird bis zu 5 Grad wärmer und macht deutlich mehr Lärm. Doofe Wahl, aber nun ist es zu spät.
- 2x Hitachi HGST Deskstar NAS, 3TB, 7200rpm
- 2x Western Digitial Red, WD30EFRX, 3TB, 5400rpm
- 2x Seagate NAS HDD ST3000VN000, 3TB, 5900rpm
Zusammenbau
Ich möchte mich hier nicht mit dem Zusammenbau aufhalten, weil ich eher nicht der Anleitungsschreiber bin. Nur als Tipp sei hier gesagt, dass 50cm SATA-Kabel teilweise zu lang sind und das Kabelset des Corsair extrem störrisch ist. Am Ende der Bauerei sind fast nur Kabel noch zu sehen und man muss sie echt clever legen, damit sie nicht dem Luftstrom im Wege sind oder irgendwo ständig anstossen oder reiben. Hier wäre eine bessere Kabellösung toll oder eventuell andere Kabel, die nicht flach, sondern rund sind.
Statistisches
Das gute Stück schluckt 3,5W, wenn es aus ist. Es gibt keinen harten Netzschalter am Gehäuse und so ist das Ding quasi lauschend. Angeschaltet sind es im Schnitt 65W, also nix für den 24x7 Dauerlauf zu Hause. Da sollte man eher 25W haben. Keine Ahnung, wo der grösste Verbraucher sitzt, ob es das Board mit CPU ist oder die Platten. Jedenfalls schwankt der Verbrauch auch bei Zugriff kaum.
Das Teil ist richtig schnell. Wenn ich via rsync Daten schreibe, dann sagt das Gigabit-Netzwerk, dass wir bei 800Mbit sind. Mehr geht fast nicht und da ist wohl eher mein Rechner die Grenze, als das NAS. Wenn ich versehentlich via WLAN aufs NAS gehe und loskopiere, dann ist in 10 min der WLAN-Router TP-Link TL-WDR4300 tot und braucht ein Reboot. Das läuft wohl was über. Wird Zeit, dass er ein OpenWRT bekommt. Fürchte mich noch vorm Kaputtflashen. Netzfirewall ist er ja nicht mehr, pfSense sei dank.
Von den 6x 3TB bleiben nach Einrichtung des RAID ca. 10,6 TB übrig. Ich habe kein RAID-5 genommen, sondern RAIDZ2, der Entsprechung von RAID-6. Ich kann damit zwei Platten verlieren, ohne das Daten verloren gehen... nun gut, bis dahin sollte man nicht kommen. Rechnerisch sind das also 6x3TB - 2x3TB = 12TB - Overhead der Prüfsummen.
Kleinigkeiten
Ich habe es leider nicht geschafft, die drei Lüfter im Gehäuse (kommen mit) via Motherboard geregelt zu bekommen. Ich habe dann auf die manuelle Regelung des Gehäuse (Schiebeschalter) zurückgegriffen. Es muss auf der mittleren Stufe laufen, da die beiden 7200er Platten sonst zu heiss werden. Die 5400er sind auch mit weniger Lüftung glücklich und dann hört man quasi die Lüfter nicht mehr, sondern nur noch die 7200er Platten.
Der Ruhestrom von 3,5W ist mir zu hoch, aber ich habe keinen Weg gefunden, ihn niedriger zu bekommen. Das Board scheint zu sehr zu lauschen, glaube eher nicht, dass es das Netzteil ist, was den Strom frisst. Das Board kann leider nicht weiter runterkonfiguriert werden aka Wake-up-on-Lan und C-States.
Am FreeNAS stört mich, dass die Bedienung etwas störrisch ist. Habe alles hingekommen, aber die Nutzerführung über den Navigationsbaum ist doof. Auch hätte ich gern mehr Statistiken zu den Platten und einen Dateibrowser. Aber, es ist trotzdem noch um Längen besser, als mein altes Thecus-OS und für die nächsten Versionen sind Veränderungen an der Bedienoberfläche versprochen.
Fazit
Natürlich ist Selbstbau und Open Source nicht jedermanns Sache, aber ich bin sehr zufrieden, von der falschen Wahl zweier Platten mal abgesehen. Es ist schnell, leise (auch wenn es noch leiser ginge), ich kann bei Bedarf Dinge tauschen und notfalls sogar das OS total ändern, ohne die Platten neu bespielen zu müssen.