ZFS-Raid10 deutlich langsamer als Hardware-RAID

Speedformer

New Member
Nov 11, 2021
5
0
1
39
Guten Morgen zusammen,

ich teste aktuell einen neuen Server mit zfs-raid10. Dabei ist mir aufgefallen, dass die Schreibperformance deutlich hinter den Erwartungen zurückbleibt.

Ich plane die Verwendung von 2 zfs-pools. Einen mirror aus 2 ssds für das Betriebssystem und einen Verbund aus 8 ssds im zfs-raid10.

Jetzt stellt sich per fio raus, dass die Schreibperformance mit zfs erheblich schlechter ist, als per Hardware-RAID (ohne Puffer).

Zum testen verwende ich aktuell Consumer-SSDs. Dass die Performance insbesondere bei random-IOPS nicht mit Enterprise-Hardware mithalten kann, ist mir bewusst. Trotzdem sollte sich das ja beim RAID-Controller und bei ZFS ähnlich stark auswirken.

Hier der Test mit Hardware-RAID10:
1637224909107.png

Und hier der Test im ZFS-Raid10:
1637225007794.png

Sonstiges zum System:
Raid-Controller: LSI MegaRAID SAS 9341-4i (für zfs-Test im JBOD-Modus)
RAM: 256GB DDR4
CPU 2x Xeon E5-2658 v4

Da das Dateisystem noch mehr oder weniger leer ist und die CPUs eigentlich nur vor sich hindümpeln, habe ich keine Idee mehr, was bei ZFS der bottleneck sein könnte und bin dankbar für Ideen.

Viele Grüße
Speedformer
 
Wohin genau schreibst du denn mit fio? Was ist in "/local-zfsRaid10" eingehängt? Bei ZFS macht es ja z.B. schon einmal einen großen Unterschied ob du in ein Dataset oder ein Zvol schreibst. Und in Falle eines Zvols müsstest du auch die Volblocksize anheben, weil sich sonst die Leistung halbieren sollte.

So wie das für mich aussieht vergelichst du da gerade das schreiben auf ein Blockdevice (HW Raid) mit dem Schreiben auf ein Dateisystem (ZFS Dataset). Da solltest du dann schon in ein Zvol mit 16K Volblocksize schreiben, damit der Vergleich fair ist.
 
Last edited:
Hi,
ggf. sofern du die ConsumerSSDs gegen vernünftige SSDs für "Server" ersetzt wäre es auch eine Option das ZFS als "Tiered" Storage anzulegen.
Also die SSDs als Special Device oder Cache oder LOGs zu verwenden. Aber nur dann! Die ConsumerSSDs wird ZFS sehr schnell sehr "kaputt" machen....

Ein dedizierter RAID-Controller hat für die "Arbeit" einen eigenen Prozessor der nur dafür genutzt wird. Deine E5-2658 v4 hat eine SingleThreadLeistung irgendwo bei 1500 im Passmark, für ZFS ist SingleThread-Leistung aber durchaus ein relevanter Faktor.

Mit entsprechender Singlethread-Leistung terminiert ZFS so ziemlich jeden RAID-Controller.... So ab 2200 im Passmark wird's interessant....
Der Rest ist wie Dunuin schon geschrieben hat, eine Frage der richtigen Konfiguration....
 
Der Hinweis, dass ich an die falsche Stelle schreibe war schon mal ein guter Ansatz. Ich habe jetzt nochmal einen Test auf /dev/local-zfsRaid10/test gemacht und komme jetzt tatsächlich ziemlich genau auf den halben Durchsatz des Raid-Controllers:

1637229938700.png

Zu den angesprochenen Themen Volblocksize und special devices muss ich mich noch einlesen. Da ich aber auf den von Dunuin vorhergesagten Wert komme, bin ich optimistisch dass ich den Rest hinbekomme.

Danke für die schnelle Hilfe!
 
Die Vollbocksize hättest du als Parameter beim Erstellen von dem Zvol "test" mit angeben müssen. Sowas wie zfs create -V 100g -o compression=lz4 -o volblocksize=256k local-zfsRaid10/test2

Halbe Leistung meinte ich weil Zvols standardmäßig mit einer Volblocksize von 8K arbeiten, die SSDs aber 4x 4K gestriped sind also wenigstens 16K für optimale performance bräuchten. Dein HW raid wird ja auch mit viel größeren Blockgrößen wie 64K-1M arbeiten.
 
Last edited:
Hi, der Hardwarecontroller wird immer schneller sein und weniger Verschleiß auf den SSDs verursachen. Deshalb kostet der ja auch Geld und hat eine dafür optimierte CPU. Dein RAID Controller ist auch schon älter und der Chip ist noch für HDDs optimiert. Mit neueren Controllern kommt da auch noch mehr raus.

Die Frage ist, auf welche Features legst du wert? Wenn es nur ein RAID sein soll, dann lass die Hardware arbeiten. Wenn du weitere Features von ZFS nutzen willst, dann solltest du aber mit den Consumer SSDs etwas aufpassen.
 
Mit volblocksize=256k bin ich wieder in einem ähnlichen Bereich wie vorher:
1637239343097.png

zfs soll in erster Linie eingesetzt werden, um einfache Replication zwischen zwei Nodes zu bekommen. Vielleicht sollte ich aber besser beim Hardware-RAID bleiben und im Zweifel vom Backup wiederherstellen.

Danke für das Feedback!
 
>Zum testen verwende ich aktuell Consumer-SSDs.

welche genau ?

zfs ist recht empfindlich was schleche latenz und write-delays (z.b. wegen garbage collect) von consumer ssd's angeht.

ich hab z.b. noch 4 samung evo's in nem raidz1 und das läuft absolut grottig bzw. was da drauf liegt hat ständig "schluckauf".
 
Ich empfehle auch immer einen Batteriecache für den rais Controller, da dann die Weites auch gecached werden und der Raid Controller etwas sammelt vorm schreiben, leben auch günstige SSDs viel länger.
Replikation ist natürlich ein Feature wo ZFS echte Vorteile ausspielt. Wenn du nicht auf schnelles umschalten angewiesen bist, reicht natürlich ein Restore.
Ich persönlich mag das HCI Konzept, wenn du schnelle Netzwerkkarten hast, kannst du auch einen Ceph Cluster fahren, der läuft mit Consumer SSDs auch besser als ein ZFS.
 
Ich empfehle auch immer einen Batteriecache für den rais Controller, da dann die Weites auch gecached werden und der Raid Controller etwas sammelt vorm schreiben, leben auch günstige SSDs viel länger.
Replikation ist natürlich ein Feature wo ZFS echte Vorteile ausspielt. Wenn du nicht auf schnelles umschalten angewiesen bist, reicht natürlich ein Restore.
Ich persönlich mag das HCI Konzept, wenn du schnelle Netzwerkkarten hast, kannst du auch einen Ceph Cluster fahren, der läuft mit Consumer SSDs auch besser als ein ZFS.
Sorry aber nein. Auch CEPH will keine Consumer SSDs haben. Höchstens für nen Testaufbau oder als Studiencluster.
Für alles andere ist das einfach nicht wirklich tauglich..... Weder Firmware noch Technik in den Consumer SSDs ist gedacht für Enterprise-Systeme wie einen CEPH-Cluster.

Its more than just benchmarks that separates consumer disks. But you will easy see percent of disk left in Gui, so its easy to change bad disks later.
 
Hi, hier muss man auch mal den Einsatzzweck sehen. Wenn ich für zuhause einen Cluster aufbaue, reichen mir Consumer SSDs immer aus. Auch wenn ich zusätzlich viel rumteste, habe ich niemals so viel Traffic wie bei Clustern in Firmen wo einige Mitarbeiter Daten erzeugen.
Also für den Homecluster kann man schon mal Consumer SSDs nehmen, für meine Kunden nehme ich gern die Kioxia PM6 Reihe (SAS) notfalls auch die Kioxia HK6 (SATA). Die haben immer mind. 1DWPD. Für ZFS empfehle ich lieber welche mit 3DWPD, was für zuhause schon deutlich drüber ist.
 
Hi, hier muss man auch mal den Einsatzzweck sehen. Wenn ich für zuhause einen Cluster aufbaue, reichen mir Consumer SSDs immer aus. Auch wenn ich zusätzlich viel rumteste, habe ich niemals so viel Traffic wie bei Clustern in Firmen wo einige Mitarbeiter Daten erzeugen.
Also für den Homecluster kann man schon mal Consumer SSDs nehmen, für meine Kunden nehme ich gern die Kioxia PM6 Reihe (SAS) notfalls auch die Kioxia HK6 (SATA). Die haben immer mind. 1DWPD. Für ZFS empfehle ich lieber welche mit 3DWPD, was für zuhause schon deutlich drüber ist.
Job, zuhause ist aber ja auch immer eher ein Testaufbau oder ein Studiencluster, passt schon...
 
Da sind Crucial MX500 mit 2TB drin. Die haben laut google TLC und ein DWPD von 0,2.

Ob das für meine Zwecke reicht, wird sich zeigen.
Ich plane jetzt, das ganze im Hardware-RAID ohne zfs und ceph einzusetzen. Die Restlebensdauer kann ich per smartctl auch durch den RaidController automatisch überwachen. Wenn ich nachher zugucken kann, wie die SSDs sterben, dann habe ich wenigstens ein gutes Argument, einkaufen zu gehen.
 
Hi, das klingt ja nach Unternehmenseinsatz. Meine Erfahrung mit Consumer SSDs bei Unternehmen:
Die ersten SSDs machen schon Probleme lange vor erreichen der Lifetime Writes, meist so ca. bei 50%. Natürlich immer Workloadabhängig.
Der Hardware Raid hat dann den Vorteil, dass du die Disk einfach ziehen und eine neue stecken kannst, ohne Manuell etwas ausführen zu müssen.
Sobald du du die erste Meldung vom Controller bekommst, oder es langsam wird. Fange direkt an deine SSDs nach und nach gegen vernünftige zu tauschen. Also immer eine raus, Rebuild abwarten und dann die nächste.
Hat sich eigentlich bewährt und keinen großen Impact.
 
>Der Hardware Raid hat dann den Vorteil, dass du die Disk einfach ziehen und eine neue stecken kannst, ohne Manuell etwas ausführen zu müssen.

Hardware Raid hat aber auch den Nachteil, daß Du fast immer irgendwelche proprietären Management Tools installieren musst, die es insbesondere bei ältetren Controllern oft garnicht als passendes Binary Package für DEIN Linux gibt. Und deren Bedienung ist oft auch noch ziemlich kryptisch und wenig intuitiv. Und hast Du viele Server und viele verschiedene Raid Controller, hast Du mit dem Überwachen und Managen der Disks richtig Arbeit. Und Du kannst auch nicht einfach alle Platten nehmen und einfach in eine andere Maschine mit anderm Controller reinstecken wenn die mal abraucht. Schon allein aus diesen beiden Gründen hab ich überall Hardware Raid verbannt und nutze nur noch ZFS und Linux-Software-Raid.
 
Last edited:
Hat aber auch alles seine Schattenseiten. Ich habe hier auch schon von Admin gelesen die ihre ZFS Pools aus vielen HW raid0 mit nur einer Disk betrieben, damit sie weiterhin ihre Disks über die Herstellersoftware überwachen können und sich nicht noch zusätzlich mit ZFS Monitoring herumschlagen wollten. Da war dann ZFS auf HBA keine Option, weil dann eben kein iDrac ginge ;)
 
Last edited:
Hat aber auch alles seine Schattenseiten. Ich habe hier auch schon von Admin gelesen die ihre ZFS Pools auf einem HW raid0 betrieben, damit sie weiterhin ihre Disks über die Herstellersoftware (war iDrac glaube ich) überwachen können und sich nicht noch zusätzlich mit ZFS Monitoring herumschlagen wollten. ;)
Also das geht gar nicht, entweder ganz oder gar nicht. Da sind doch Probleme vorprogrammiert.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!