[Sammelthread] ZFS Stammtisch

Die ZFS Sync Eigenschaft kennt drei Optionen

default (schreibendes Programm entscheidet)
always (immer mit write logging)
disabled (logging immer deaktiviert)

Wenn man bei einem Fileservice wie SMB oder iSCSI Logging erzwingt (bei default wird sync nicht genutzt) dann wird das Schreiben selbst mit dem schnellsten Logdevice langsamer da jede Schreibaktion zweimal ausgeführt wird, einmal bei jedem commit sofort auf das Logdevice und einmal wenn der Inhalt des Scheibcaches (Schreibcache bei ZFS ist RAM, per default - mit ausreichend RAM - sind das 4GB) sequentiell auf den Pool geschrieben wird.

Da ZFS selbst dank CopyOnWrite immer consistent ist (bei einer Schreibaktion ist immer gesichert dass auch bei Raid die Aktion komplett mit Daten und Metadaten auf dem Pool/Raid ist) ergibt sich nur ein minimaler Sicherheitsgewinn, nämlich dann wenn bei Schreiben einer kleinen Datei diese komplett im Schreibcache liegt (also komplett im Slog) aber noch nicht komplett aus dem Schreibcache auf den Pool geschrieben wurde. Das ist ein extrem kleines Zeitfenster das man damit zusätzlich absichern könnte. Deshalb ist sync=always für einen Fileserver mit SMB eigentlich wenig sinnvoll. Auch bei NFS wäre sync nicht sinnvoll wenn man damit reine ZFS Fileservices betreibt. Sind darauf allerdings VMs mit vmfs oder alten Dateisystemen z.B. mit ESXi wird sync essentiell da sonst schnell die Gefahr einer korrupten VM besteht. Vmfs, ext4, ntfs etc sind eben nicht transaktionssicher/ CopyOnWrite.

Normalerweise ist egal ob mit sync oder ohne die aktuell geschriebene Datei immer defekt wenn z.B. der Strom ausfällt. Das kann nur das schreibende Programm abfangen, z.B. mit einem temp-File des letzten Stands.

Wichtig ist sync nur bei Transaktionen, z.B. wenn alte Dateisysteme ohne CopyOnWrite beteiligt sind die keine sicheren atomaren Schreibaktionen können. Bei denen besteht jedes Write aus zwei abhängigen Aktionen.

1. Schreibe Daten
2. aktualisiere Metadaten

Wenn 1. ausgeführt wird und 2. nicht, ist das Dateisystem korrupt.

Ein anderes Beispiel ist eine Finanzumbuchung. Sie besteht aus einem Abbuchen von einem Konto und dem Aufbuchen auf ein anderes. Blöd wenn wegen einem Crash nur ersteres stattfindet. Das Geld ist dann im Datennirwana.

Genau für diese Fälle braucht man sync
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
@gea wie sieht das dann aus wenn man ein Volume hat das "sync=always" gesetzt hat und dieses dann per NFS mit "(rw,async,no_subtree_check)" freigegeben wird? Die Transaktion via NFS läuft ja asynchron ab. Durch "always" wird allerdings der sync write erzwungen. Gibt es in einem solchen Fall einen Performance "boost" mit SLOG Device?
 
Ich hab das wohl auch noch nicht ganz verstanden. Soll/kann ich nun die 120GB "powerloss protected" SSDs nehmen um meinem HDD-Pool write-mäßig Beine zu machen, damit ich den auch als geoßeb und gleichzeitig halbwegs schnellen ESXi-Datenspeicher (über NFS) benutzen kann, oder soll ich daraus lieber einen SSD-only-Pool bauen, der dann aber so doof klein ist...?
 
Zuletzt bearbeitet:
Wenn man eine ältere, langsame Festplatte hat, dann kann man beim Schreiben vieler kleiner Dateien und mäßig RAM vielleicht eine Schreibperformance von 50MB/s erwarten (sync=disabled). Mit ausreichend RAM für Schreibcache steigt das vielleicht auf 80-100 MB/s

Aktiviert man sync (sync=always) so ist es nicht völlig unüblich, wenn die Schreibrate auf 5-10 MB/s einbricht. Mit sehr wenig RAM landet man auch ohne sync bei solch niedrigen Werten. Eine 1TB WD Green kam bei mir bei ohne Schreibcache und sync=disabled auf ähnlich schlechte Werte (3MB/s), How slow is ZFS with low RAM or readcache disabled and slow disks? | ServeTheHome and ServeThe.Biz Forums

Ein Slog führt dazu dass zu der Zeit die zum sequentiellen Schreiben über den Cache benötigt wird zusätzlich die Zeit für das syncrone Schreiben bei jedem Commit addiert werden muss. Da viele billigere Desktop SSDs beim dauerhaften Schreiben kleiner Datenblöcke übel einbrechen, kann es passieren, dass das SSD Slog kaum was bis garnichts bringt und die Schreibrate vielleicht von 5MB/s auf 8MB/s steigt, bei ganz schlechten SSDs sogar garnichts bewirkt.

Ein perfektes Slog z.B. ein Intel P3700 sorgt dann dafür dass syncrones Schreiben nur etwas langsamer ist als normales Schreiben über den Schreibcache, also bei 60-70 MB/s landet.

Mit schnellen Platten oder Raid verschiebt sich das dann entsprechend nach oben.

- - - Updated - - -

Ich hab das wohl auch noch nicht ganz verstanden. Soll/kann ich nun die 120GB "powerloss protected" SSDs nehmen um meinem HDD-Pool write-mäßig Beine zu machen, damit ich den auch als geoßeb und gleichzeitig halbwegs schnellen ESXi-Datenspeicher (über NFS) benutzen kann, oder soll ich daraus lieber einen SSD-only-Pool bauen, der dann aber so doof klein ist...?

Man kann den Disk Pool mit der SSD als Slog beim syncronen Schreiben beschleunigen. Er wird aber nie so schnell wie ein SSD only Pool. Da VMs meist wenig Platz brauchen ist SSD only meist die bessere Wahl.
 
Man kann den Disk Pool mit der SSD als Slog beim syncronen Schreiben beschleunigen. Er wird aber nie so schnell wie ein SSD only Pool. Da VMs meist wenig Platz brauchen ist SSD only meist die bessere Wahl.

Also bräuchte zB ich als VM Pool 2-4 SSDs (SSDs waren eh als VM Pool geplant) als (Striped) Mirror und dann nochmal 2 als Mirror für das Slog, dass dann per NFS an den ESXi zurückgereicht wird ?
 
Zuletzt bearbeitet:
Also bräuchte zB ich als VM Pool 2-4 SSDs als (Striped) Mirror und dann nochmal 2 als Mirror für das Slog, dass dann per NFS an den ESXi zurückgereicht wird ?

Ein einfacher Mirror aus guten SSDs oder NVMe mit Powerloss Protection ist ausreichend, ein zusätzliches Slog dann unnötig. Damit ein Slog was bringt muss es ja viel schneller sein als der Pool, sonst hat es ja keinen Vorteil zum Onpool ZIL.

Slog-Mirror muss nicht sein. Das bringt nur was bei einem Crash mit gleichzeitigem Defekt des Slog oder um bei einem Ausfall des Slog weniger Performanceeinbußen zu haben.
 
Zuletzt bearbeitet:
Ich bin ja z.Zt. auch am Überlegen, wie ich mein Setup weiter fahren. Nach ein bissl hin- und her werde ich wohl auf Sicht meinen AIO-Server auflösen und eine Maschine mit den bisherigen HDD-Pools für Backup+Mediendateien plus eine Maschine mit den VMs und SSD-only Pools hinpacken.
Für diese SSDonly-Pools würde ich nach ein bissl Überlegen derzeit wohl auf Micron 5100, Samsung SM863 oder 960er einsetzen. Die o.g. alten Intels sind mir da deutlich zu langsam (btw: erst recht als Slog-Device).
 
Da in meinem Fall die VMs die darauf laufen werden, bisher nur 2 Ubuntu Server mit jeweils Pi Hole und OpenVPN sind, dürfte dass von der SSD Geschwindigkeit ansich locker reichen - wenn man bedenkt, das die aktuell auf einer C300 128 GB sind ^^. Die Frage ist eher wegen der Syncwrite "Problematik" bez NFS.
Die Server 08 VM würde wegfallen, da die Solaris VM nicht nur den VM Storage sondern auch den Filestorage ( HDD Pool, mirror) über CIFS/SMB breitstellen wird.Allerdings nicht auf der HW aus meiner Sig., da soll schon Passtrough etc. sauber laufen und nicht RDM genutzt werden.
 
Zuletzt bearbeitet:
Nur zum Vergleich: Bei Sync-Writes gehen, je nach erzeugter Last, selbst Pools aus 850pro durchaus ein auf ~5Mb/s....
Kommt halt immer auf Art und Dauer der Last an.

Und ich denke, die meisten hier wissen, dass die 850pro in der Liga der besten Consumer-SSDs bei Sata spielen.
Daher hab ich sync=disabled für NFS.
 
Zuletzt bearbeitet:
Deshalb eben die Frage ob das in meinem Usecase passieren würde, denn 5 MB/s sind jetzt nicht so dolle.Allerdings sind die 850 auch nicht wirklich teuer mit ca 130 € bei 256 GB, was mir reichen würde.
Und da der Server auch eine USV bekommen würde, sollte ein etwaiges fehlen von der PLP nicht ins Gewicht fallen.
 
Nur zum Vergleich: Bei Sync-Writes gehen, je nach erzeugter Last, selbst Pools aus 850pro durchaus ein auf ~5Mb/s....
Kommt halt immer auf Art und Dauer der Last an.

Und ich denke, die meisten hier wissen, dass die 850pro in der Liga der besten Consumer-SSDs bei Sata spielen.
Daher hab ich sync=disabled für NFS.
yep, muß ich leidvoll bestätigen :)
(2x850Pro 512 GB als ZFS Mirror via NFS an ESXi als VM Datastore lief ohne sync=disabled unterirdisch)

Hat zufällig schonmal jemand die Kingston DC400 (480 GB / 960GB) in einer ähnlichen Kosntellation eingesetzt?
(sind wohl so ziemlich die preiswertesten Enterprise-Class SSDs)
DC400 Solid-State-Drive – 480GB – 1,6TB | Kingston
 
Wobei die Schreiblatency der DC400 (Lesen/Schreiben: <400 µs / <4 ms (99,9%) im Vergleich zu einer Intel DC-S (40 - 45 µs Lesen/Schreiben) eher unterirdisch aussieht.
 
Irgendwo muss der Preisunterschied ja herkommen. Omg, 4ms ist ja schon quasi HDD-Level (einer 15k). Ist da ne Handkurbel dran als Taktgeber?
 
Zuletzt bearbeitet:
Mach ich auch zurzeit so: async und bei der Gelegenheit gleich auch Raid0. Und jede Nacht um 24h läuft 'ne Replikation inkl. ESXi-Snapshots vom NFS-VM-SSD-Raid0-Pool auf einen lahmen RaidZ HDD-Pool im gleichen Host.

Wenn mir bei einer VM ein Tag fehlt, ist das kein Weltuntergang (und wenn ich mal wirklich was Größeres mache, stoße ich den Replikations-job halt zwischendurch einmal manuell an). Im Gegenteil, könnte zur Not jede VM bei Verlust auch wieder von Grund auf neu aufsetzen, ist halt nur nervig.
 
Hi Leute,

ich habe mir FreeNAS mit 4 x 4 TB-WD-RED in einem Raidz1 in meinem HP ProLiant MicroServer G1610T mit 8 GB ECC-RAM aufgesetzt. Die Frage ist nun, lohnt sich eine 128 GB-SSD als L2ARC? Oder ist das eher unnötig bzw. überflüssig?
 
Zuletzt bearbeitet:
Hallo Zusammen,


ich habe zwei Solaris 10.3 Server hier, die beide mit Mellanox Connect X3 Karten bestückt sind.
Laufen soweit auch wunderbar.
Aber: während die Server zum Client im Schnitt 600mb/s liefern, läuft die Replikation über Napp-it nur mit maximal 130mb/s.
Kann mir das nicht erklären.
Hat jemand eine Idee ?

thx

edit:


Aktuell keine Jumbo Frames
Napp-it tuning bei Eth aktiv

Der eine Pool ( Hauptserver ) liefert ca 600mb/s. Der Backup-pool kommt auf ca 350mb/s.
Die Differenz erschient mir aber trotzdem zu hoch.
 
Zuletzt bearbeitet:
Ich habe hier einen Pool, beim importieren werden mir allerdings 2 angezeigt wobei der eine allerdings beschädigt ist bzw im Grunde gar nicht mehr existiert, hatte damals nen bisschen rumgespielt und die Festplatten auch eigentlich formatiert bevor ich meinen "richtigen" Pool erstellt habe aber der alte Pool scheint immer noch irgendwie drauf gespeichert zu sein. Kann man diesen Eintrag irgendwie löschen?

Alternativ kann ich die ZFS Dateisysteme irgendwie auf einen neuen Pool mit nur einer HDD rüberschieben und nachträglich aus dem Pool aus einer HDD einen Mirror machen mit 2 HDDs während die Dateien drauf bleiben?
 
Zuletzt bearbeitet:
Ich habe hier einen Pool, beim importieren werden mir allerdings 2 angezeigt wobei der eine allerdings beschädigt ist bzw im Grunde gar nicht mehr existiert, hatte damals nen bisschen rumgespielt und die Festplatten auch eigentlich formatiert bevor ich meinen "richtigen" Pool erstellt habe aber der alte Pool scheint immer noch irgendwie drauf gespeichert zu sein. Kann man diesen Eintrag irgendwie löschen?

Alternativ kann ich die ZFS Dateisysteme irgendwie auf einen neuen Pool mit nur einer HDD rüberschieben und nachträglich aus dem Pool aus einer HDD einen Mirror machen mit 2 HDDs während die Dateien drauf bleiben?

1.
Deshalb sollte man einen Pool per Destroy zerstören bevor man die Platten einem neuen Pool zuweist. Den Eintrag kann man auch löschen wenn man eine Platte mit einem anderen Dateisystem z.B. ntfs formatiert.

2.
Ja per attach
http://docs.oracle.com/cd/E19253-01/819-5461/gcfhe/index.html
 
Okay aber bei einem Resilvering mit einer frischen Platte wird er mir den alten Eintrag auch auf die neue kopieren warscheinlich?
 
Um dem weiter oben beschriebenen Problem nachzugehen, habe ich jetzt die MTU auf 9000 gesetzt.
Nur meldet jetzt Napp-it, dass der Server offline wäre, der die Replikation ausführt.
Löschen und neu anlegen der Appliance Group bringt nichts, da immer die Fehlermeldung erscheint, dass das Gerät offline wäre.

Ich komme bei beiden Servern auf die Webui und sie lassen sie pingen.
Bin etwas ratlos...


Ideen ?
 
Zuletzt bearbeitet:
MTU 9000 muss von beiden Servern und den Switchen dazwischen unterstützt werden und macht selbst dann bei mancher Hardware Probleme.

Was ergibt denn iperf als Netzperformance bei MTU 1500?
 
@xymos Ich vermute du pingst von windows?
Probier mal:
ping -n 1 -l 9000 -f -4 ERSETZEMICHDURCHDEINENSERVER
 
Ich habe heute morgen die beiden Solaris Büchsen neu gebootet.
Mit Erfolg !
Replikation funktioniert jetzt wieder.

Iperf kommt nur mit mehr als 4 streams auf 10g speed. Mit einem Stream sieht die Sache schon wieder anders aus.
Die Hardware, auf dem das alles aufsetzt ist zwar nicht das aktuellste, aber Pci-e 8x ist alles angebunden.

@gea

Wie lässt sich erkennen, ob eine Installation mit optimierten "Appliance Tuning" läuft ?
 
@gea
Wie lässt sich erkennen, ob eine Installation mit optimierten "Appliance Tuning" läuft ?

Durch Vergleich von "current values" mit "default values"

tuning.png
 
Danke, wer lesen kann, ist klar im Vorteil. :)
Ich sollte schlaf nachholen....
 
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