Low-Cost Heim-NAS (Netzwerkspeicher)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Low-Cost Heim-NAS (Netzwerkspeicher)
Seit einiger Zeit habe ich mit dem Gedanken gespielt, Musik, Fotos und Filme in einem Netzwerkspeicher zentral abzulegen und von da Netzwerkplayer und Webradio zu bedienen. Ursprünglich hatte ich dabei einige Fertiggeräte im Auge, die durch sehr geringen Stromverbrauch und ausgereiften Bedienoberflächen bestechen:

Die Geräte basieren auf ARM CPUs und geben an zwischen 11W im Leerlauf und 25W im Betrieb zu verbrauchen. Ich nehme an dass die 4 Platten die sie dann fassen nicht mit eingerechnet sind.
Weiterhin bieten die Geräte alle Zugriff auf die Daten via SMB, FTP, AFP, DLNA usw an. Die Platten lassen sich in den üblichen RAID Modi betreiben, für die mich war dabei RAID5 wichtig.
Die Bedienoberflächen sehen ausgereift und vollständig aus:
synology disk manager demo Qnap Firmware live demo

Letztendlich habe ich mich dann jedoch für folgende Lösung entschieden:

Als Betriebssystem schreibe ich FreeNAS 8.0, einem FreeBSD/m0n0wall derivat auf den USB-Stick. Leider fehlen der aktuellen Version 8 einige wichtige Funktionen der alten 7 Version, doch bietet sie aktuellere Treiber und die fehlenden Funktionen stehen auf der Roadmap.
Der USB Stick wandert in den internen USB-port, es steht also nichts aussen ab das abbrechen könnte.

Als Dateisystem entscheide ich mich für ZFS mit einem RAIDZ als Grundlage. Das bietet mir die Sicherheit und Platzverhältnisse wie RAID5 und dazu noch weitere eigenschaften von ZFS wie das integrierte reparieren von bit-fehlern. Das Einrichten des Dateisystem mit RAIDZ dauert keine minute, das Formatieren über 20 Stunden wie es bei “normalem” RAID nötig ist, entfällt.

Man sollte dabei darauf achten dass das alignment des Dateisystems mit der 4096 byte Sektorgröße von “Advanced Format” Platten übereinstimmt, kontrollieren kann man das mittels

# zdb | grep ashift
   ashift: 9 # 512 sektoren, falsch
   ashift: 12 # 4k sektoren, richtig

Bei mir scheint das aus der 8.0 Release gui geklappt zu haben, wenn man sicher gehen will kann man hier nachlesen wie es manuell geht
Eine offene Frage ist, ob der ashift-parameter bzw. das alignen der partitionen auf 4k Grenzen der einzige Parameter ist der hier sinn macht - wird ZFS anschliessend auch wirklich blöcke optimiert auf 4k Blöcke schreiben? Oder wird es der Lüge des Laufwerks folgend wieder Gruppen von 512 blöcken schreiben nur dass die nun 4k-aligned sind?

Die lese und schreibgeschwindigkeit kann man mittels dd prüfen:

dd if=/dev/zero of=/mnt/MeinPool/testfile bs=1M count=10k # schreibe 10Gb in 1Mb blöcken auf den zpool
dd if=/mnt/MeinPool/testfile of=/dev/null bs=1M count=10k # lese 10Gb in 1Mb blöcken vom zpool

Ob die in zfs integrierte kompression beim schreiben wirklich eine rolle spielt kann ich nicht beurteilen, ich ahbe sie jedenfalls abgestellt da meine Daten eh bereits komprimiert sind. Aus meinem Setup bekomme ich zur Zeit 80Mb/s schreibend und 240Mb/s lesend. Dabei finde ich die schreibrate nicht sonderlich berauschend, andere leute bekommen mit leicht anderen Setups wesentlich schnellere Werte, beispielsweise 155Mb/s und 455Mb/s von 4 WD20EARS, allerdings in einem zraid-2 (raid6-artig) Verbund.

Ob diese mittelmäßigen Werte nun an den Platten, dem Controller, der Partitionierung oder arkanen ZFS-Kernel-Parametern liegt kann ich bisher nicht beantworten.

Samba tunig

Auf meine Daten werde ich hauptsächlich via samba zugreifen, und dafür lohnt es sich, einige Parameter selbst anzupassen. Dazu kann man die /etc/local/smb.conf bearbeiten oder in der web-gui folgende Auxiliary Parameters angeben:

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=65535 SO_RCVBUF=65535 

Damit erreiche ich zur Zeit 40-70Mb/s schreibend und um die 80Mb/s lesend. Das ist ausreichend, lastet aber gbit Ethernet nicht voll aus. Leider unterstützt die onboard Ethernet Schnittstelle keine Jumbo Frames, das könnte hier auch noch Abhilfe schaffen. Es besteht jedoch die möglichkeit für 12€ eine alternative Netzwerkkarte von Realtek in einen der zwei PCIe Ports zu packen.
Weitere vielversprechende Tuning-Optionen finden sich beispielsweise hier.

Stromverbrauch
Mit meinem Supermarkt-Steckdosen-Schätzeisen messe ich im Betrieb 40-50W je nach Auslastung, im idle nach einiger Zeit etwa 30W. Dabei wichtig ist, dass die Festplatten in den Standby-Modus wechseln. Die Caviar-Green Reihe hat dabei einen firmware Zähler der die Platten nach 8s den Kopf parken lässt und, soweit ich weiss, auch langsamer drehen lässt. diese 8s können mit dem WDIDLE3 Tool von einem dos-bootstick(erstellbar mit dem hp bios update) eingestellt oder deaktiviert werden. Ebenfalls möglich ist die einstellung mittels

camcontrol standby ada0 -t 600 # Laufwerk fährt *sofort* herunter. nach aktivität wartet es 600 Sekunden und fährt dann herunter.

und überprüfen des gerätestatus lässt sich mit

smartctl -n standby -i /dev/ada0

Ähnliche werte lassen sich in der GUI auch einstellen zeigten bei mir jedoch keine unmittelbare Wirkung.


Nice. Danke fuer deine Beschreibung.


Danke von mir auch, so was habe ich in nächster Zeit auch vor.


30W im Leerlauf ist aber nicht Green IT.


QNap gibt 11W an im Leerlauf, vielleicht ist das was für dich.


Man kann Router, USB-Hubs (“Dockstar”) oder NAS-Festplatten (“My Book World”) meistens hacken und ein eigenes Betriebssystem draufklatschen. Meistens ist irgendein kleines ÄRMchen verbaut, aber als kleiner Dateiserver reichts. Meiner braucht 4-5 W. :cool:



Danke Heen! Hatte sowas auch schon laenger mal vor. Sobald ich Zeit und Geld uebrig habe werde ich mir deinen Post nochmal in Ruhe vornehmen.


4-5 Watt ohne Festplatte dann. und grad die grottigen netzteile von so USB platten ziehen nicht schlecht


Ich hab zwar auch eine Dockstar, aber mir war das zu frickelig. Benutze jetzt mein Netbook als NAS mit USB-Festplattendock.
Braucht wohl so 10W im Leerlauf. Kommt natürlich von der Übertragungsrate her nicht an ein echtes NAS ran, aber das hat mich eigentlich nie wirklich gestört.


Danke für den Beitrag, das werd ich mir nochmal genauer anschauen. Wie laut ist das Gerät denn, im Idle, mit Platten und mit Plattenzugriff? Denn gedämmt scheint da ja nichts zu sein und der winzige Netzteillüfter sieht auch nicht sehr leise aus.


Den Netzteillüfter nehme ich nicht wahr. Der große Lüfter hinten ist in einem stillen Raum allerdings hörbar. Ich hatte es heute nacht im Wohnzimmer stehen, habe es aber durch offene Türen im Nebenraum nicht gehört. Der Lüfter lässt sich mit etwas Mühe tauschen, allerdings muss man beachten dass HP nicht die standard Steckerbelegung verwendet und sich das Gerät unterhalb einer gewissen Drehzahl abschaltet. Plattenzugriff sind ab und an hörbar, etwa wenn die Platten hochfahren. Beim Streamen oder Draufkopieren kaum hörbar. Accoustic management habe ich allerdings auch deaktiviert.


[quote=siccegge]
4-5 Watt ohne Festplatte dann.[/quote]

Nein, komplett mit allem. Ich haette erwaehnen sollen, dass in dem Dings eine 8 GB CF-Karte mit SATA-Adapter steckt. Jaja, Schreibzyklen: Bis jetzt (nach 2 Jahren Dauerbetrieb (leider keine uptime)) tut die Karte einen guten Job.


Und, wie oft hast du die beiden Filme schon gesehen, die man darauf speichern kann?


Wer weiß, vielleicht speichert er ja gar keine Filme auf dem Gerät. Obwohl ich mir das gar nicht vorstellen kann. Wofür sonst sollte man denn ein NAS betreiben?


Ich hab ein git drauf. War sehr nützlich bei meiner Bätschlerarbeit. Für sonderlich viel mehr reicht es tatsächlich nicht. :wink:


Alternative für freenas die auch neuere ZFS Funktionen unterstützt (Verschlüsselung?) http://napp-it.org/doc/downloads/napp-it.pdf


sexy: http://ht4u.net/news/24212_lian_li_schickt_neue_mini-gehaeuse_ins_rennen/
Gestern DLNA/UPNP server fürs Webradio installiert, problemlos nach dieser Anleitung.
Allgemein ist das Installieren von Ports (FreeBSD lingo für Pakete) einfacher als erwartet: Die vorkompilierten Pakete für amd64 lassen sich einfach mittels pkg_add auf die vorher als rw gemountete root partition installieren (mount -urw /). Vorher habe ich einen ports-tree auf die zfs Partition entpackt.


Kurzes update: Nachdem eine Platte von Anfang an nicht richtig funktioniert hat, habe ich mir gleich Ersatz gekauft und die kaputte eingeschickt. Als die neue kam habe ich beschlossen auf 5 Platten upzugraden. Dazu den AHCI BIOS Hack eingespielt, damit der 5. interne Port volle Geschwindigkeit erhält.

Anschliessend habe ich alle Platten gelöscht, insbesondere die Partitionierung. Dafür habe ich die 4 2Gb swap Partitionen aufgegeben; falls einer der Dienste wirklich mal über 5Gb RAM braucht, wird ihm der swap auch nicht mehr helfen.

Danach habe ich auf alle Platten mittels gnop create -S 4096 /dev/adaN Geometrie-Provider (?) erzeugt, damit ZFS die richtige Sektorgröße liest.
Dann den ZFS Pool direkt auf den neuen adaN.nop devices, also eigentlich den Platten direkt, erzeugt.
Dadurch habe ich jetzt nette Schreibgeschwindigkeiten von ~220Mb/s und Lesegeschwindigkeiten ~330 Mb/s. Me gusta. Leider kommt samba da nicht richtig hinterher, gemittelt schafft das etwa 50 Mb/s.

Den Geschwindigkeitsvorteil hat jemand aus #zfs folgendermassen erklärt: