Projektbericht: 20TB ZFS-Datengrab am T400

whirpool

New member
Registriert
14 Dez. 2010
Beiträge
289
Moinmoin!

Wer kennt es nicht: Zu viele Daten -> Zu wenig Platz...
Jahrelang jonglierte ich mit mehreren Festplatten und schielte neidisch auf jene die sich eine 'vernünftige' NAS/RAID-Lösung leisten konnten.
Nun, jetzt wurde es mir endgültig zu bunt, habe eine entsprechende Summe in die Hand genommen und eine Lösung zusammengebastelt.

Um möglichen Nachahmern das Leben etwas leichter zu machen möchte ich hier von dem Werdegang und über die Fallstricke/Lösungen berichten welche mir in dem Prozess untergekommen sind.

Einige von Euch werden sich Professionell mit diesem Thema beschäftigen und daher eine kurze Warnung: Von sich aufrollenden Fußnägeln bis zum Herzinfarkt ist in diesem Beitrag alles möglich!
Profi (fertig) Lösungen würde ich klar bevorzugen, doch ich bin Verbraucher mit einem schmalen Budget und muss so zusehen wie ich zu Potte komme.


1. Vorheriger Zustand

Vor dem Umbau plagte ich mich mit 6 externen und 2 internen Platten rum auf denen alle Daten Verteilt waren;
2x2TB und 2x500GB über zwei eSATA Wechselgehäuse und 2x1,5TB in einem Raid1-Gehäuse.
Im T400-'Server' werkelte noch eine 1TB Platte und im Spiele-(Windows-)Rechner eine mit 500GB.

So ergeben sich 8TB (Brutto!)Kapazität von denen etwa 6TiB mit Daten gefüllt waren die ich behalten wollte.
Der über die Platten verteilte freie Platz belief sich auf noch etwa 300GiB.

Abgesehen von dem geringen freien Speicher darf man sich mal auf folgendes Gedankenspiel einlassen;
"Ich weiß das ich 'es' irgendwo habe!" - und er wechselte und suchte und wechselte und fand 'es' dennoch nicht.
Zeit und Nerven raubend.. bäh.. Organisiert schaut wirklich anders aus.



2. Vorgaben und Ziele

Darüber, das dieser Zustand auf Dauer nicht haltbar gewesen wäre, müssen wir uns wohl nicht unterhalten.
Also setzte ich mir für das Projekt folgende Ziele:


  • [*=1]Integration/Nutzung der alten Platten
    [*=1]Nach dem kopieren der Daten noch min. 6TiB freier Speicher
    [*=1]Ausfallabsicherung in Form von Raid5 oder Raid6
    [*=1]Geschwindigkeiten von min. 60-80MB/s (über Gb-Lan)
    [*=1]Vertretbarer Stromverbrauch

Ein festes Budget hatte ich nicht gesetzt, aber im Kopf spielte sich das bei mir zwischen 500€-"Sicher" und 1000€-"Nie!!!" ab.
Selbst die 500 sind für mich noch eine enorme Summe für 'Speilzeug'. Es sollte sich also im Rahmen halten.



3. Wegfindung und Ausschluss der üblichen Verdächtigen (Hardware)

Ich habe also angefangen meine Möglichkeiten auszuloten und Preise zu wälzen.
Und das macht ja so mal gar keinen Spaß wenn man finanziell beschränkt ist!
In den 3-4Monaten in denen ich das tat ist mir beim aufstellen von Beispielrechnungen regelmäßig übel geworden.

Die Preise die für NAS-Systeme, oder schlichte eSATA/USB3-Gehäuse, für 5-8Festplatten verlangt werden empfinde ich als enorm überzogen! Über die mit mehr als 8 Einschüben will ich gar nicht erst anfangen...

Da ich meine alten Platten weiter verwenden wollte schieden die meisten NAS-Systeme im vorweg schon aus.
Lediglich eine Drobo hätte diese Anforderung erfüllt, doch auch wenn ich andere Bedenken hätte ignorieren können, hat der preis von ~700€ für ein 8Platten-Modell die Entscheidung vorweg genommen.

Lange habe ich auch mit unterschiedlichen Konfigurationen für einen extra Rechner mit entsprechend vielen sata Anschlüssen gespielt.
Aber auch hier war, neben dem extra Stromverbrauch, der Preis am ende zu hoch. (Auch wen wesentlich billiger als die erwähnte Drobo ;o) )

Es blieb mir also nur noch die Möglichkeit mich an die eSATA/USB3-Gehäuse zu halten.
Hier war die Auswahl auch nicht sonderlich groß und es stand auch schnell fest das die integrierten Raid-Controller nicht das konnten was ich wollte.
Die Gehäuse würden also nicht den Raid, sondern nur die einzelnen Platten an das System anbinden.



4. Der (Möchtegern) Plan

Nach langem hin und her entschied ich mich dann für folgendes:


  • [*=1]Anbindung der Platten über USB3 (Siehe 8. !!)
    [*=1]3 neue Festplatten von je 4TB
    [*=1]Zwei 4x-Gehäuse + ein 1x-Gehäuse über einen USB3-Hub

Die alten 2x2TB und die 2x1,5+2x500 würden zu je einer 4TB Platte zusammengefasst und ergeben mit den neuen 4TB-Platten einen 5x4TB Verbund.



5. Software-Raid

Um das ganze zu realisieren musste natürlich ein Software-Raid her.
Laufen sollte er unter Linux und zur Auswahl stand mdadm, btrfs und zfs.

btrfs war recht schnell aus dem Rennen da ich den Eindruck erhielt das es immer noch zu experimentell ist als das ich meine Daten (dauerhaft) damit speichern wollen würde.
mdadm hätte meine grundlegenden Bedürfnisse zwar erfüllt, doch als ich anfing mich über ZFS zu informieren sah mdadm sehr schnell sehr alt aus.

Kurzum: es ist ZFS geworden.
Hier alle Gründe auf zu zeigen würde den Rahmen weit sprengen und ich kann jedem nur empfehlen sich über die Möglichkeiten von ZFS zu informieren. Es ist extrem mächtig! (hier ein informativer Video-Link, ansonsten einfach mal google quälen)

Neben dem das ZFS meine Anforderungen erfüllte, noch kurz ein paar wichtige (Plus-)Punkte:


  • [*=1]Eingebaute Checksums und 'self healing': Bitfehler in den Daten werden selbstständig erkannt und behoben.
    [*=1]'Resilvering' anstatt 'Rebuild': eine vollständige Überprüfung, oder das wiederherstellen, des Raids bezieht nur den tatsächlich belegten Speicher ein und überprüft/kopiert keinen freien Speicher
    [*=1]Copy-on-Write: Keine Dateisystemfehler durch unterbrochene Vorgänge.
    [*=1]Snapshots
    [*=1]Trasparente Kompression und/oder Verschlüsselung
    [*=1] uvm.



6. Post und erste Probleme

Dann war es endlich soweit.. Die Post ist da!
2x RaidSonic Icy Box IB-3640SU3
1x RaidSonic Icy Box IB-366StU3+B
1x DeLOCK 66227
1x USB3-Hub
3x WD Red 4TB
Für summa summarum 690€ und damit noch eben gerade so im 'Wohlfühl-Bereich'.

Sorgenkind war hier das 4xGehäuse IB-3640SU3. Die Lüftung, und auch den Lüfter, als katastrophal zu bezeichnen trifft es wohl recht genau.
Der Lüfter soll hinten die Abluft aus dem Gehäuse befördern, doch ohne auch nur einen Lüftungsschlitz an dem gesamten(!) Gehäuse betätigt er sich mehr als Vakuumpumpe als das er 'Lüftet'.

Abhilfe schuf ein Zahnstocher der dafür sorgt das die Tür vorne einen guten Spalt offen bleibt. Diese Taktik dankten die Festplatten mit einer Temperatur von ~35° anstatt ~58°.

Der Lüfter an sich ist dann schon das nächste Problem. Ich hatte vorweg schon gelesen das er nicht der leiseste sei, aber was mich da auf einmal anbrüllte war weit weg von 'nicht der leiseste'..

Auf 1m Entfernung hatte ich das Gefühl das ich leisere Staubsauger besessen hätte..
Das auf der Verpackung plakatierte "Silent - Temp. Controlled Fan" kann man nur als ver..schaukelung bezeichnen.
Die Lüfter wurden von mir kurzerhand durch 2xCoolink SWiF2-80L ersetzt welche zwar nochmal mit ~20€ zu Buche schlugen, aber dafür flüsterleise, und bei nur ~2° höheren Temperaturen, ihren Dienst verrichten.



7. ZFS-Hürdenlauf

Eine Hand voll neue Festplatten zu einem Raid zusammen zu schmeißen ist sehr einfach und auch nicht weiter kompliziert.
Schwieriger wird es dann schon wenn man Festplatten verwenden möchte auf denen noch Daten sind und diese nicht anderweitig auslagern kann.
Hat etwas vom Henne<->Ei Problem :)

Hinzu kommt das unter ZFS nicht einfach eine Platte in ein bestehendes RaidZ1(Raid5 gleich) hinzufügen kann.
Also 3x4TB zum Raid machen, einen Satz alter Platten kopieren und dann in einen 4x4TB Raid umwandeln: Nicht möglich!

Doch über Umwege geht es dann doch! :thumbup:
ZFS bevorzugt es zwar komplette Platten gefüttert zu bekommen, aber man kann durchaus auch Partitionen oder sogar Dateien als Quelle nutzen.

Ich habe das, und die Profis unter euch mögen sich die Fußnägel festhalten, dann so gelöst:
Zwei der neuen 4TB-Platten wurden in 2TB-Partitionen aufgeteilt.
Diese 4x2TB Partitionen, plus 1x4TB als ganze, wurden zu einem 5x2TB Raid zusammengefügt.

Was das bringt? Es mag nicht möglich sein eine Platte hinzu zu fügen, doch es ist durchaus möglich eine Platte nach der anderen durch eine größere zu ersetzen und am Ende die größe (automatisch) an zu passen so das es dann 5x4TB sind.

Diese Akion birgt natürlich die Gefahr das, wenn eine der (neuen) 4TB-Platten mit 2Partitionen ausfallen sollte, sämtliche Daten flöten gehen da dann 2Geräte fehlen aber der RaidZ1 nur 1Gerät kompensieren kann.

Und, egal wie man sich dreht, am Ende hat man eine 2TB-Partition übrig.
Da es aber sinnvoll ist eine Platte als ganzes, und keine Partition, unter ZFS zu betreiben bleibt nur die Möglichkeit diese zu löschen und den Raid damit wieder in eine kritische (Degraded-)Situation zu brigen bis das resilvering/rebuild abgeschlossen ist.

Weiterer Nachteil dieses Vorgehens ist das man die Daten mehrfach hin und her kopiert was in meinem fall aus ~6TiB etwa ~25TiB gemacht hat welche kopiert wurden was insgesamt 5Tage gedauert hat.



8. USB3 - Nicht das gelbe vom Ei

Ursprünglich hatte ich geplant alles über USB3 laufen zu lassen.
Das hat sich leider als Seifenblase heraus gestellt.

In anfänglichen Tests mit den drei neuen 4TB Platten habe ich gute R/W-Raten von ~110MB/s gesehen und mich gefreut.
Doch diese gingen beim Anschluss der 2x2TB auf ~80MB/s runter und sobald die 2x1,5+2x500 mit liefen war ich noch bei ~50MB/s. -> nicht akzeptabel.

Glücklicherweise haben die 4xHDD Gehäuse auch einen eSata-Anschluß (hatte ich beim Kauf nicht drauf geachtet) und nach dem um stöpseln auf eSata war die Rate wieder bei ~95MB/s.
Schwein gehabt!

Den Grund für diesen Einbruch der Geschwindigkeit sehe ich in zwei Punkten:
-Die USB3-Gehäuse unterstützen kein UASP
-Die CPU(C2D P9500) ist zu schwach

Die Konsequenz daraus war das ich auf eSata umstellte, doch die ExpressCard hat nur 2 Anschlüsse und ich habe 9Festplatten bei 2 Gehäusen mit Platz für je 4 Platten. *grummel*

So musste ich überlegen ob ich das T400 auseinander nehmen um den vermeintlichen CardBus(oder ExpressCard?)-Slot des verbauten SD-Karten Lesers frei zu legen oder zwei Festplatten durch eine neue ersetze.

Da ich keine Lust hatte das T400 komplett zu zerlegen, und nicht einmal definitiv wusste ob sich das auch einen erfolg bergen würde, habe ich mich dazu entschieden die 2x500GB durch 1x1TB zu ersetzen.
Nochmal ~50€ und damit dann bei 760€ gesamt. *zähne.knirschten*



9. Performance

In den Letzten 2Monaten habe ich Zeit gehabt um das System zu beobachten, Probleme zu finden und zu beseitigen.
Aber ich muss sagen das es bei mir nur eines gab und sonst alles läuft wie am Schnürchen!

Das Problem das ich hatte war das mir, trotz 8GB RAM, der Kernel Panik geschoben hat und einige Programme schloss.
ZFS liebt Arbeitsspeicher und kann kaum genug davon bekommen. Bei 8GB Gesamt greift er sich, per default, gleich 4GB.
Die übrigen 4GB waren zu knapp bemessen als das alles stabil hätte laufen können.
Eine einfache Änderung des Wertes von 4GB auf 2GB löste die Probleme dann und seither ist ruhe im Karton.

Die erreichten Übertragungsraten werden durch die CPU aus gebremst, aber lassen sich doch durchaus sehen:
Intern ohne Kompression: ~80-95MB/s
Intern mit LZ4 Kompression: kein unterschied zu Kompressionslos
Intern mit gzip-9 Kompression: ~22MB/s
NFS via Gb-LAN: ~75MB/s

Eine Überprüfung der Daten, bei unterdessen ~7TiB, dauert etwa 28Stunden.

Die Schreib- und Leseraten könnten wohl deutlich höher liegen wenn ein stärkerer Prozessor verwendet würde, denn dieser wird bei den obigen Raten Voll ausgelastet.



10. Fazit

Ich bin vollauf zufrieden!

Alle meine Ziele sind erfüllt und endlich sind alle meine Daten zentral und (relativ) sicher untergebracht.
Und endlich sind sie vorbei, die Zeiten der Platzangst :D

Zwar habe ich durch das USB3-Desaster etwas mehr investiert als ich gemusst hätte, doch wo gehobelt wird...

Wer über ein ähnliches Projekt nachdenkt: Ich kann ZFS nur empfehlen, es lohnt sich.
Und, auch wenn er etwas schwach auf der Brust ist, der T400 leistet gute Arbeit :)

Für weitere Fragen stehe ich selbstverständlich zur Verfügung.

Grüße.
whirpool
 
Ideen dazu:

- T400 auf ExpressCard+PCMCIA umrüsten um eine eSata-Karte mehr zu stecken
- 2503er dock hernehmen, entsprechenden PCIe Slot mit passender Karte (USB3, Sata...) bestücken, extra Ultrabay Slot mit 2.5" Platte bestücken (zwar IDE aber immerhin).

MfG, Sebastian
 
Ich hätte das Geld ja dennoch in ein NAS investiert. Muss gar nicht so ein schickes Ding sein. Irgendein gebrauchter RAID-Controller aus einem alten 19" Rack und daran ein Rechner mit genügend RAM. Keine Ahnung, was man da auf dem Gebrauchtmarkt zahlen muss, aber allemal besser als diese Frickellösung mit den externen Gehäusen.

Dennoch Danke für den ausführlichen Bericht!
 
- T400 auf ExpressCard+PCMCIA umrüsten um eine eSata-Karte mehr zu stecken
- 2503er dock hernehmen, entsprechenden PCIe Slot mit passender Karte (USB3, Sata...) bestücken, extra Ultrabay Slot mit 2.5" Platte bestücken (zwar IDE aber immerhin).
Ja, die FRU des Adapters hatte ich mir sogar schon raus gesucht, doch die ~10€ Aufpreis zwei alte 500GB Platten durch eine neue 1TB zu ersetzen war es mir wert nicht den ganzen Laptop auseinander zu nehmen.

Ich hätte das Geld ja dennoch in ein NAS investiert. Muss gar nicht so ein schickes Ding sein. Irgendein gebrauchter RAID-Controller aus einem alten 19" Rack und daran ein Rechner mit genügend RAM. Keine Ahnung, was man da auf dem Gebrauchtmarkt zahlen muss, aber allemal besser als diese Frickellösung mit den externen Gehäusen.
Das Problem bei diesem Setup ist der hohe Idle-Verbrauch. Gerade bei alter Hardware ist es wohl mehr als Fair zu sagen das diese bei min. 50W im Idle liegt.
Der T400, mit laufender 2.5'' Platte, liegt bei 10,5W. Im 24h Betrieb wäre das dann immerhin eine Differenz von ~90€ im Jahr, nur dafür Platten und Rechner in einem Gehäuse zu haben.

Und so frickelig ist es gar nicht. Nebeneinander die 2 Gehäuse a 4Platten und oben drauf steht der T400. Klein Kompakt und sparsam :eek:)

Dennoch Danke für den ausführlichen Bericht!
Gerne doch :eek:)
Soll ja auch zum überlegen und diskutieren anregen :eek:)

Gruß,
whirpool
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben