[Sammelthread] ZFS Stammtisch

Für eine Grundabschätzung brauchts keine Benchmarks.
ZFS schreibt Prüfsummen, das sind mehr Daten zum Schreiben: Langsamer als ohne Prüfsummen
ZFS is Copy On Write: Mehr Fragmentierung = langsamer

Wie beim Auto: ABS + ESP = mehr Gewicht = mehr Sprit

Als Plus gibt es bei ZFS
Arc cache (RAM cache): je mehr RAM, desto schneller
ArcL2Cache (SSD cache), falls mehr RAM nicht geht, bringt eine SSD Performance
Multiple vdev/Raid: je meht vdev desto schneller
Dateisystem ist immer konsistent (keine Datenkorruption, kein offline-Filecheck)

Was einem wichtiger ist (Performance oder Sicherheit) oder was Überwiegt (kommt auf den Workflow an) kann man nicht generell beantworten.

Performance ohne Sicherheit & Redundanz ist aber Schmarrn.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Danke für die schnelle Antwort!

Es scheinen generell eher weniger bis keine sequentiellen Read/Write Benchmarks von ZFS Konfigurationen im Vergleich mit anderen Filesystems auffindbar zu sein.

Wie du schon sagtest, kommt es immer auf den Präferenzbereich an inwiefern Performance bzw. Sicherheit vorgezogen wird.
Sicherheit ist hier durch zahlreiche backups bereits gegeben, daher steht Performance im absoluten Vordergrund.

Mir ist die Geschwindigkeit sehr wichtig, da einerseits 4Gbit/s LACP ausgeschöpft werden sollen und darauf noch eine AES Verschlüsselung kommt.
ZFS hat dazu ja nativ einstellbare AES features, was ich ausgesprochen toll finde.

Frei und cached schafft das Array ca. 540MB/s
Mit AES via Truecrypt und full disk encryption nur mehr um die 380MB/s.

Ich möchte gerne die vollen 480MB/s erreichen und hatte gehofft, dass die eingebaute AES Funktionalität einen kleineren Leistungseinbruch mit ZFS zur Folge haben könnte.

Wie kann ich mir den Wirkungsgrad von Arc Cache ungefähr vorstellen?
Normales RAM Caching via System Managed Virtual RAM Disk, oder komplexere Filesystem interne Prozesse?
Es würde mit einer 60GB Kingston EVO gecached, btw.
 
Zuletzt bearbeitet:
Wenn du mit AES-Feature ZFS native Verschlüsselung meinst, das gibt's derzeit nur (produktiv einsetzbar) von Oracle. Keine Ahnung ob dort AES-NI mittlerweile performant implementiert ist, bei Solaris Express wars das noch nicht.
Wenn du dich allerdings an die zfs-crypto Patches wagen willst, nur zu!
ARC ins ein reiner Lesecache und arbeitet auf Blockebene, er erkennt, ob es um Random oder Sequentielles I/O geht und reagiert entsprechend. Es wird als nicht einfach blöd alles durch den Cache geschoben, wie bei den meisten RAID-Controllern. Wenn dir Datensicherheit und -konsistenz nicht wichtig sind, kannst du sync=disabled setzen, dann werden die Schreibvorgänge im RAM gesammelt und am Stück rausgeschrieben.
Ansonsten gilt bei ZFS immer: jedes GB extra RAM bringt was, auch wenn du schon 128GB drin hast kannst du immer noch zulegen. L2ARC (also auf SSD) ist verglichen zu ARC (im Ram) immer nur ein Kompromiss, aber ein guter.
Es wird dir wohl nix anderes übrigbleiben, als selber zu testen.


cu
 
überleg mir auch ein Raid Z1 System zu machen.
Ich würde gerne allerdings schon meine 100mb/s schreiben und lesen packen.

Schaff ich das mit ein G3220 und 8GB Ram?
 

Was heisst Licht ins dunkel? Ist doch alles geklärt oder nicht?
Es gilt einfach beim einem copy-on-write FS, das genügend Platz zum "atmen" vorhanden sein muss um die Performance zu halten. Ob das jetzt ZFS oder Netapp WAFL ist, spielt keine Rolle, die Empfehlung lautet nicht mehr als 80% Füllgrad. Fragmentierung als solche seh ich nicht als Problem.
NB der Artikel hat ja nun auch schon ein paar Jährchen auf dem Buckel und da hat sich schon ganz gewaltig was getan im ZFS-Code.

cu
 
Zuletzt bearbeitet:
Bei einem ähnlichen Problem im Juni 2012 habe ich folge Info von einem Sun/Oracle Techniker bekommen. Kurz gesagt, Oracle und ZFS kann ungünstig sein, muss aber nicht. Das liegt daran, das ZFS Blöcke verwaltet und optimiert und Oracle aber auch Datenblöcke schreibt und optimiert. Das ist nicht immer ideal. Wir haben Oracle Systeme unter ZFS laufen die super flott sind, andere sind nicht zu gebrauchen. Es hängt von der Blockverwendung ab:

Text des Sun/Oracle Technikers:
Also wenn ich vier Blöcke schreibe sind die auch in der Reihenfolge auf Platte, wenn ein Platz gefunden wird der gross genug ist. Das Problem ist bei ZFS, dass sie auch dann in Reihe sind, wenn sie es vorher nicht waren. Ich habe eine Festplatte mit 10 Bloecken mit einer Datei die Block 1 bis 5 nutzt. Ändere ich Block zwei und drei in der Reihenfolge, dann stehen die Daten wie folgt auf der Platte "1-(alte daten)-(alte daten)-4-5-2-3-unbenutzt-unbenutzt-unbenutzt". Hat man sowas auf rotierendem Rost (herkömmliche Platte) muss für ein sequentielles Lesen aller fünf blöcke statt einmal (naemlich am Anfang) drei mal der Kopfträger der Platte bewegt werden. Das frisst natürlich ins IOPS-Budget einer Festplatte. Bei SSDs ist das kein Faktor. Muss man aber dran denken, wenn man ZFS unter einer Oracle Datenbank einsetzen will, die dann noch zusätzlich Datenblöcke optimiert.
 
Ich möchte mir ein FreeNAS-System mit 6 Platten mit raidz2 zulegen.
Könnte ein N54L (mit fünfter Platte im CD-Bay und sechster Platte extern am eSATA) mit 16GB ECC RAM dafür taugen?
Wenn nein, was wäre dann zu empfehlen?

Anwendung: Film-Datengrab zuhause, hauptsächlich DVB-T-Fernsehaufnahmen sowie onlinetvrecorder-Downloads. Also quasi ein WORM. Es kommen zwar regelmäßig neue Aufnahmen hinzu, aber gelöscht werden eigentlich nur wirklich schlechte Filme. Speedanforderung ist moderat, zum Abspielen reichen ja 3-4 GByte pro Stunde...
Ich hätte gerne sowas ähnliches wie TimeMachine Backups - nur eben auf dem NAS selber. Wiederherstellungspunkte, damit das versehentliche Löschen von Dateien/Ordnern ggf. rückgängig gemacht werden kann. Mit HardLinks damit die Daten selber nicht doppelt auf der Platte liegen. Wären ZFS Snapshots dafür geeignet?
 
Solange du die Snapshots nicht auch löschst, ist das wunderbar dafür geeignet. Bonus: Kostet nicht nur keinen Speicher (bis was geändert wird), sondern auch keine Zeit beim Anlegen.
 
Mit 6 Platten fährst du den N54L ja praktisch schon von Anfang an auf Anschlag, keine Chance ne SSD oder noch eine Platte dranzuhängen.
Such dir lieber was mit 8 Ports und Platz im Gehäuse.

cu
 
Mit 6 Platten fährst du den N54L ja praktisch schon von Anfang an auf Anschlag, keine Chance ne SSD oder noch eine Platte dranzuhängen.
Ein raidz2 fährt man eh nur mit entweder 6 oder 10 Platten. Klar, SSD als Cache wäre nett, aber ich will das Ding nur als rockstabiles Datengrab, Speed ist zweitrangig. Gebootet wird vom USB-Stick.

Such dir lieber was mit 8 Ports und Platz im Gehäuse.
Vorschlag?
Ich kenne mich mit PC-Hardware überhaupt nicht aus, meine 5 Rechner hier haben alle einen angebissenen Apfel...
 
Naja ludwinator wenn man das aber dann mal alles durchrechnet muss er für 8 Port PRO Sata Port wesentlich mehr aufen Tisch legen als beim Microserver.

Ob man ne SSD braucht halte ich für fraglich bei nem reinen Filmdatengrab. Das einzig dumme ist halt nur wenn du auch Musik auf dem Teil liegen hast auf dem selben Pool, dann müssen sich 6 3,5er HDD drehen. Hab selber auch nen Filmdatengrab, aber Musik, und persönliche Daten liegen dann auf nem Mirror aus 2 2,5er Platten.

Pro Sata Port gerechnet kommt man nicht billiger als mit nem Microserver weg. Die 16GB Ram wirste aber nicht brauchen bei dem Anwendungsgebiet. Sind doch 4GB schon dabei, entweder lässte das so oder packst nochmal 4GB dazu das reicht dann mehr als aus, dann musste den mitgelieferten Ramriegel auch net verstauben lassen oder verkaufen.
 
Zuletzt bearbeitet:
Ich kann nur jedem dazu raten, mindestens einen Port mehr zu haben als man aktiv benötigt.
Beispiel: Eine der Platten fängt an Ärger zu machen, das merkt ZFS recht schnell. Der Pool muss deswegen noch nicht degraded sein. Mit nem freien Port kannst einfach vor dem Ausfall schon ne Ersatzplatte bereithalten bzw. manuell ersetzen.
Am RAM würde ich auch keinesfalls sparen, das ist ja auch kein wirklicher Kostenblock mehr.
Ich würde entweder nen Poweredge T20 nehmen und entsprechend aufrüsten (IBM M1015 o.ä.) oder gleich ein Supermicro Board mit SAS onboard (oder eins der neuen mit Avoton 2550/2750) kaufen und in ein Gehäuse deiner Wahl stecken.
Wen es partout der N54L sein soll dann würde ich eher größere Platten nehmen und bei 5 Stück aufhören.

cu
 
Zuletzt bearbeitet:
Der T20 hat nur Platz für 4 3,5zoll Festplätzen selbst wenn du da nen 1015 Controller einbaust änder sich daran nix. Die ganzen anderen Sachen sind allesamt ne Ecke teurer
 
Dann rechne uns doch mal vor was er da umgerechnet pro Port zahlt. Alles was er nicht braucht ist rausgeschmissenes Geld. Idr ist es billiger einfach größere Platten zu benutzen anstatt mehr Ports. 6TB ist ja problemlos zu bekommen damit wären selbst mit 4 Platten schon 12TB als raidz2 möglich
 
Zuletzt bearbeitet:
Hat der Dell denn ECC? Wenn schon ZFS, dann gleich richtig. Deswegen auch raidz2 auf 6 Platten und nicht raidz auf 5.

Korrekt, der Preis ist zweitrangig. Das nackte Gerät sollte nur unter 400€ netto sein, damit man es direkt abschreiben kann. Und jede Erweiterung bzw. Komponente ebenfalls.

Auf dem FreeNAS sollen wirklich nur Filme lagern. Musik sowie meine TimeMachine-Backups laufen eh von einer per USB direkt an meine Airport-Extreme angeschlossenen simplen externen Platte.

Kann man in den N54L keine PCI-SSD stecken, so dass alle 6 SATA Ports für die Platten bleiben und man trotzdem 'ne Cache-SSD hat?
 
Zuletzt bearbeitet:
GWG gilt nur für Güter, die:
beweglich,
abnutzbar und
selbstständig nutzbar sind.
Ergo nicht für Einzelkomponenten, aber für Server schon.
Ich würde den Dell in der XEON-Variante nehmen, dazu 16GB Ram (ECC versteht sich), die Einbaubleche und Stromkabel aus dem Sammelthread dazu. Für nen SAS Controller wird's nicht reichen aber für 1-2 einfache SATA Controller auf jeden Fall.
Als Festplatten würde ich 6*4TB HGST NAS verwenden, ca 150€ pro Stück.
Evtl. auch 3*6TB im RaidZ1 ? Das ginge dann direkt im T20 ohne Zubehör, sind halt "nur" 12TB.

cu
 
Ja der Dell hat ECC, aber 16GB is unnütz bei dir, du wirst da keinen Vorteil haben. Finde "ich will 6 Platten" ein wenig merkwürdig, macht es nicht mehr Sinn eine bestimmte Kapazität bei sowas zu erreichen? Zumal ich eher weniger Platten benutzen würde und dafür größere. Brauchen weniger Strom und je weniger man hat desto weniger können kaputt gehen.

Der T20 wurde ja oft als Schnäppchen mal rausgehauen. Mit der kleinen CPU und wenn man wirklich nur 4 Platten bräuchte wäre das ebenfalls recht preiswert.

Gibt es einen Grund wieso es umbedingt 6 Platten sein sollen? RaidZ2 kannste auch mit 4 Platten machen

Kann man in den N54L keine PCI-SSD stecken, so dass alle 6 SATA Ports für die Platten bleiben und man trotzdem 'ne Cache-SSD hat?
Nein aber auch ne SSD zum Cachen bringt dir genau wie 16GB statt 8GB Ram als Lesecache gar nichts, es sei denn du guckst dir ständig die gleichen Filme an. Cachen bringt nur was wenn du die selben Dateien (bzw genauer gesagt Blöcke) mehrmals liest, bei Filmen ist das nicht der Fall. Lohnt also nicht.
 
Zuletzt bearbeitet:
Klar kann man raidz2 auch mit 4 Platten machen, dann hat man netto aber nur die halbe Bruttokapazität. Bei 6 Platten sind es immerhin zweidrittel. Und da der N54L 6 SATA-Ports hat, und sechs mal 3TB Intenso USB 3.0 mit Seagate ST3000DM001 hier bereits rumliegen bzw. einzeln via USB-Hub genutzt werden. Die will ich einfach in *ein* Gehäuse packen und als *ein* Volume nutzen (netto 12TB, brutto 18TB). Ich habe auch noch vier 4TB-Platten, aber die brächten ja nur 8TB netto bei 16TB brutto als raidz2.

Cache sollte durchaus was bringen, nämlich als Schreib-Cache. Also genau dann wenn man einen Film auf das NAS schreibt. Das kann anschließend in Ruhe die Daten auf die Platten verteilen. Beim Lesen ist's eh egal, da wird ja nur 60 Min. Film (3-4GB) pro Stunde benötigt.
 
Selbst als Schreibcache bringt ne ssd nicht wirklich was solange du das ganze nur mit gbit lan anbinden möchtest. Mehr RAM erhöht nur den lesecache. Da haste wirklich kein Vorteil durch mehr RAM
 
Ihr solltet euch alle beide etwas mehr mit ZFS befassen, dann wüsstet ihr, das

- bei ZFS RAM nie unnütz ist (ist wie Hubraum, nicht zu ersetzen)
- RAM sehr wohl als Schreibcache dient (wenn sync=disabled)
- ARC (=RAM) für jeden Pointer zum L2ARC (=SSD) benötigt wird
- L2ARC kein dummer Lesecache ist und sequentielles I/O da sowieso nicht reinläuft
- eine SSD als SLOG kein Schreibcache ist sondern für Transaktionssicherheit sorgen soll

cu
 
Zuletzt bearbeitet:
Willst du es nicht begreifen oder kannst du es nicht begreifen? Der Ram nützt ihm nix wenn er es so verwendet wie er schrieb. 8GB reichen hier voll aus. Wenn dir nicht klar ist wieso mache am besten das was du selbst schon gesagt hast: DICH etwas mehr mit ZFS befassen. Ansonsten immer her mit den Benches wie 16GB im Vergleich zu 8GB die Datenraten sooo enorm steigert beim Filmestreamen oder wenn jemand mal paar GB auf den Server kopiert.
 
Zuletzt bearbeitet:
Mal den Ball flach halten, ich antworte jetzt mal nur mit meinem alten Kumpel:

Oracle Solaris ZFS Performance: 10 Easy Tips


"How much RAM do you need? As a rough rule of thumb, divide the size of your total storage by 1000, then add 1 GB so the OS has some extra RAM of its own to breathe. This means for every TB of data, you'll want at least 1GB of RAM for caching ZFS metadata, in addition to one GB for the OS to feel comfortable in.

Having enough RAM will benefit all of your reads, no matter if they're random or sequential, just because they'll be easier for ZFS to find on your disks, so make sure you have at least n/1000 + 1 GB of RAM, where n is the number of GB in your storage pool."

Rechnen wirst ja wohl können ?

cu
 
Zuletzt bearbeitet:
Woran kann es liegen dass mein Pool so langsam ist übers Netzwerk? Komme in etwas auf 60MB/s schreiben und 30MB/s lesen.

Habe ein RaidZ1 aus 4x3TB Seagates Barracuda und den HP Mikroserver N36L. Pool ist zu 84% belegt.

Wenn der Server nichts tut habe ich aber bei "busy (iostat): now, last 10s: 57%, 25% stehen. Während average load 1,5,15min: 0,87% , 0,70%, 0,86% ist.

Und wenn ich etwas lösche, eine große Datei oder viel kleine gönnt sich der Pool eine Art "denkpause" und ist für mehrere Sekunden dann auf "100%". Ist das normal?

Unter diesem Gesichtspunkt haben deine Antworten hier gleich ein ganz anderes Gschmäckle.
 
- RAM sehr wohl als Schreibcache dient (wenn sync=disabled)
cu

In der ZFS-manpage steht unter sync:
"However, it is very dangerous as ZFS would be ignoring the synchronous transaction demands of applications such as databases or NFS."

Im ZFSTuningGuide von FreeBSD steht unter "NFS tuning":
"The combination of ZFS and NFS stresses the ZIL to the point that performance falls significantly below expected levels. The best solution is to put the ZIL on a fast SSD (or a pair of SSDs in a mirror, for added redundancy). The next best solution is to disable ZIL" (...) "Disabling ZIL is not recommended where data consistency is required (such as database servers) but will not result in file system corruption."

Klar ist, dass man es tunlichst vermeiden sollte sync=disbled zu setzen, wenn mein Datenbankserver dieses ZFS-Filesystem nutzt. Aber wie sieht es denn nun mit NFS aus? Laut manpage scheint NFS mit sync=disabled ein no-go zu sein, das FreeBSD-wiki hingegen scheint es für vertretbar zu halten.

Meinungen hierzu?
 
Hallo miteinander!
Ich überlege derweil, einen RAIDZ2 Pool mit 8 HDDs zu erstellen. Meine derzeitige Zusammenstellung steht in der Signatur.
Die Geschwindigkeit eines RAIDZ2 scheint ja kaum geringer zu sein als die eines RAID10. Ich hab hab mir dazu neulich mal die Ergebnisse eines Tests dazu angesehen.
Bis auf den geringen Geschwindigkeitsunterschied und die geringe Wahrscheinlichkeit, dass bei einem Resilvering noch eine dritte HDD aussteigt, gibt es irgendwelche Nachteile bei der Nutzung eines RAIDZ2? Bisher scheint das alles zu sein oder hab ich was übersehen?
 
In der ZFS-manpage steht unter sync:
"However, it is very dangerous as ZFS would be ignoring the synchronous transaction demands of applications such as databases or NFS."

Im ZFSTuningGuide von FreeBSD steht unter "NFS tuning":
"The combination of ZFS and NFS stresses the ZIL to the point that performance falls significantly below expected levels. The best solution is to put the ZIL on a fast SSD (or a pair of SSDs in a mirror, for added redundancy). The next best solution is to disable ZIL" (...) "Disabling ZIL is not recommended where data consistency is required (such as database servers) but will not result in file system corruption."

Klar ist, dass man es tunlichst vermeiden sollte sync=disbled zu setzen, wenn mein Datenbankserver dieses ZFS-Filesystem nutzt. Aber wie sieht es denn nun mit NFS aus? Laut manpage scheint NFS mit sync=disabled ein no-go zu sein, das FreeBSD-wiki hingegen scheint es für vertretbar zu halten.

Meinungen hierzu?

meine Meinung:
mit ner USV und einem Netzteil, das nicht dauernd ausfällt, kannst @home sync=disabled setzen. Eine Transactiongroup wird per Default nach 5s geschrieben, so lange muss es halten.
Sync=enabled nur dann, wenn du eine wirklich gute Enterprise-SSD hast mit Pufferkondensatoren.
Normale MLC SSDs verkraften das (100% Schreiben) eher schlecht bzw. nicht lange.
Optimal wäre was DRAM-basiertes, ist halt schweineteuer.

cu

- - - Updated - - -

Hallo miteinander!
Ich überlege derweil, einen RAIDZ2 Pool mit 8 HDDs zu erstellen. Meine derzeitige Zusammenstellung steht in der Signatur.
Die Geschwindigkeit eines RAIDZ2 scheint ja kaum geringer zu sein als die eines RAID10. Ich hab hab mir dazu neulich mal die Ergebnisse eines Tests dazu angesehen.
Bis auf den geringen Geschwindigkeitsunterschied und die geringe Wahrscheinlichkeit, dass bei einem Resilvering noch eine dritte HDD aussteigt, gibt es irgendwelche Nachteile bei der Nutzung eines RAIDZ2? Bisher scheint das alles zu sein oder hab ich was übersehen?

Vorteil von Mirror: Performance ist höher, prinzipiell kann später auch um weitere Pärchen erweitert werden.
Ein RAIDZ-x kannst du nur mit weiteren RAIDZ-x erweitern, das Ergebnis wäre dann sowas wir Raid-50 oder -60.



cu
 
@ludwinator

Danke, ich wusste irgendwas musste da noch sein^^
Hm, na ja, ein RAID50 könnt ich mir noch vorstellen, da würd ich mir immerhin pro niederem RAID eine HDD einsparen.
 
gibt es irgendwelche Nachteile bei der Nutzung eines RAIDZ2? Bisher scheint das alles zu sein oder hab ich was übersehen?

8 Platten als Z2 sind halt keine optimale Anzahl, hab ich aber auch, läuft, hat halt ein wenig "Verschnitt".
Und in Sachen Datensicherheit brauchst du dir wenig Kopf machen, wenn auch ein gestriptes RAIDZ1 ein Frage käme ;)


@Sync: Ist bei mir komplett off, da der sonst alles synchron schreiben will. Und das ist auf Platten und im TB-Maßstab nunmal unerträglich langsam. Aber USV ist vorhanden, und falls doch mal ein Transfer wegen [wildes Chaosszenario] abbrechen sollte, ist halt die Datei hin, aber das Filesystem bleibt ja dank CoW konsistent. Man darf im Privatbereich ruhig Ansprüche stellen und Qualität statt Billig verbauen, aber es führt nicht zum finanziellen Ruin eines Weltkonzerns, wenn mal irgendwas schiefgeht.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh