Leserartikel Performanceunterschied mit aktuellem Raidcontroller bei Cache Ein/Aus

AssassinWarlord

Lieutenant
Registriert
Okt. 2008
Beiträge
990
Servus, vielleicht interessiert es den einen oder anderen hier ja auch wie ein halbwegs aktueller Raidcontroller heutzutage so performt in den verschiedenen Raid-Leveln wenn man den Cache aktiviert oder deaktiviert. Hatte die Tests eigentlich nur für mich selber gemacht, aber kann ja mal nicht schaden das mit online zu teilen :d
Gibt ja mancherorts das Gerücht, dass z.B. bei nem Raid5 nur so schnell geschrieben werden kann, wie ein einzelnes Laufwerk maximal kann...was so nicht ganz richtig ist und ich das mit Benchmarks und real-Szenario Tests einfach mal widerlegen wollte. Das Raid ist nicht nur solange schnell bis der Cache voll ist - der ist nahezu immer deutlich schneller mit aktivem Cache (WriteBack Cache).
Daher einmal mit aktiven Cache & ReadAhead getestet und einmal mit deaktivierten Cache & ReadAhead soweit es möglich war (also einmal alles an Raidcontroller optimierungen ein, und einmal alles an optimierungen aus, auch HDD Cache)

Testsystem besteht aus:
Intel Core i5-12600k mit deaktivierten E-Cores, auf einem Gigabyte Z690 UD mit 2x 8GB DDR5 4800Mhz Ram.
Als Raidcontroller hält ein Broadcom 9560-16i her, mit 8GB Cache welcher mit seinen vollen 8 Lanes bei PCIe 4.0 angebunden ist.
Als Festplatten habe ich zum testen 4x Seagate IronWolf NAS HDDs genommen mit je 2TB, 5900U/min und 64MB HDD Cache (ST2000VN004)
Der Primäre Datenträger von dem Gelesen und geschrieben wird besteht aus 3x WD SN700 NVMe SSDs mit je 4TB und das ganze im Intel VMD RAID 0 gesetzt dass es keinerlei Flaschenhals diesbezüglich gibt.
nvme_Raid0.png



Ich habe jeweils zum testen einmal das Tool CrystalDiskMark genommen, aber um auch Real-Szenario workload zu haben auch mal einen Ordner mit knapp 96.000 Daten welcher ca. 13GB groß ist, und ein 50GB komprimiertes Image (also auch nichts mit gleichen blockinhalt oder dergleichen)

Betriebssystem war ein Windows Server 2022, welches selber ja schon ein Software Cache System mitbringt (was ich nicht deaktiviert habe, also alles auf Standard gelassen)

hier die Ergebnisse:
Benchmarks.png Diagramm_Cache_aus.jpg Diagramm_Cache_ein.jpg


Einzelnachweise

Erstmal eine HDD einzeln, mit unterschiedlichen HDD Cache Einstellungen (Raidcontroller Cache geht beim JBOD nicht)
Cache ausCache Ein
Lesen:
HDD einzeln 50GB SingleStream Leseleistung Cache aus.PNG

Schreiben:
HDD einzeln 50GB SingleStream Schreiblesitung Cache aus.PNG
Lesen:
HDD einzeln 50GB SingleStream Leseleistung Cache an.PNG

Schreiben:
HDD einzeln 50GB SingleStream Schreiblesitung Cache an.PNG
HDD einzeln 95k Dateien Kopiert auf HDD Cache aus.PNGHDD einzeln Benchmark Cache aus.PNGHDD einzeln 95k Dateien Kopiert auf HDD Cache an.PNGHDD einzeln Benchmark Cache an.PNG


RAID 0
Cache ausCache Ein
Lesen:
Raid0 50GB SingleStream Leseleistung Cache aus.PNG

Schreiben:
Raid0 50GB SingleStream Schreiblesitung Cache aus.PNG
Lesen:
Raid0 50GB SingleStream Leseleistung Cache ein.PNG

Schreiben:
Raid0 50GB SingleStream Schreiblesitung Cache ein.PNG
Raid0 95k Dateien Kopiert auf Raid Cache aus.PNGRaid0 Benchmark Cache aus.PNGRaid0 95k Dateien Kopiert auf Raid Cache an.PNGRaid0 Benchmark Cache an.PNG


RAID 5
Cache ausCache Ein
Lesen:
Raid5 50GB SingleStream Leseleistung Cache aus.PNG

Schreiben:
Raid5 50GB SingleStream Schreiblesitung Cache aus.PNG
Lesen: Schreiben:
Raid5 50GB SingleStream Leseleistung Cache ein.PNG

Schreiben:
Raid5 50GB SingleStream Schreiblesitung Cache ein.PNG
Raid5 95k Dateien Kopiert auf Raid Cache aus.PNGRaid5 Benchmark Cache aus.PNGRaid5 95k Dateien Kopiert auf Raid Cache an.PNGRaid5 Benchmark Cache an.PNG


RAID 6
Cache ausCache Ein
Lesen:
Raid6 50GB SingleStream Leseleistung Cache aus.PNG

Schreiben:
Raid6 50GB SingleStream Schreiblesitung Cache aus.PNG
Lesen:
Raid6 50GB SingleStream Leseleistung Cache ein.PNG

Schreiben:
Raid6 50GB SingleStream Schreiblesitung Cache ein.PNG
Raid6 95k Dateien Kopiert auf Raid Cache aus.PNGRaid6 Benchmark Cache aus.PNGRaid6 95k Dateien Kopiert auf Raid Cache an.PNGRaid6 Benchmark Cache an.PNG


RAID 10
Cache ausCache Ein
Lesen:
Raid10 50GB SingleStream Leseleistung Cache aus.PNG

Schreiben:
Raid10 50GB SingleStream Schreiblesitung Cache aus.PNG
Lesen:
Raid10 50GB SingleStream Leseleistung Cache ein.PNG

Schreiben:
Raid10 50GB SingleStream Schreiblesitung Cache ein.PNG
Raid10 95k Dateien Kopiert auf Raid Cache aus.PNGRaid10 Benchmark Cache aus.PNGRaid10 95k Dateien Kopiert auf Raid Cache an.PNGRaid10 Benchmark Cache an.PNG



Windows hat beim einzel-Datei Kopieren erstmal den RAM befüllt, daher der Peak am Anfang beim Schreiben (Windows hat da immer mit 1.7GB/s geschrieben).
Interessant ist auch, dass der Raidcontroller bei einem Nicht-Paritätsbasierendem Raid seinen kompletten Cache zum Burst genutzt hat was man beim CrystalDiskMark sieht, beim Raid5/6 hingegen scheint der Controller seinen Cache lieber freihalten zu wollen für die Berechnungen der Parität(en)

Man kann festhalten - für ein Fileserver wo man eigentlich nur große images drauf schreiben will, ist ein RAID5 schon sehr schnell, auch beim Schreiben. Selbst ein Raid6 ist recht schnell wenn man eine noch höhere Hardware-Ausfallsicherheit haben möchte. Über die einzelnen Raidlevel und die jeweilige Verfügbarkeit der Arrays wollte ich hier nicht weiter diskutieren, denke es sollte bekannt sein wieviel Laufwerke bei den jeweiligen Raidleveln ausfallen dürfen. Der Cache bzw. die Algorithmen die dahinter stehen um den Schreibprozess zu optimieren machen auch das Schreiben vieler kleiner Dateien sehr schnell :)
 
  • Gefällt mir
Reaktionen: SVΞN, DJMadMax, -byTe- und 9 andere
Vielen Dank für den Aufwand!
Mich würde es ja schon interessieren wie das dann zB bei 2x 4TB SSDs aussehen würde :)

HDDs versuche ich möglichst von mir fern zu halten xD
 
Cache ist gefährlich, wenn sich der PC aus irgendwelchen Gründen verabschiedet, dann droht Datenverlust. Daher haben Hardware Raidcontroller auch oft Batterien, um die Daten zu Puffern.
 
  • Gefällt mir
Reaktionen: geollum und metallica2006
Da PCIe und SATA so langlebig sind, gibt es noch Tonnen an alten Controllern auf dem Markt. Und dann noch das billig Segment.
 
@AssassinWarlord
Super danke für die Messungen 👍

Aber ich muss etwas intervenieren 😅

Einen Hardware RAID Controller sollte man heut zu Tage gar nicht mehr einsetzen.

Besser ist ein HBA (Hostbusadapter) + Dateisystem wie btrfs oder ZFS mit integrierter RAID Funktion (wobei diese viel mehr kann und noch wenig mit dem klassischen RAID zu tun hat), sowie CoW und Checksumming.
 
  • Gefällt mir
Reaktionen: geollum
Da war polyphase etwas schneller
Hier ein Video, das die Probleme von raid erklärt

 
  • Gefällt mir
Reaktionen: oicfar und polyphase
polyphase schrieb:
Einen Hardware RAID Controller sollte man heut zu Tage gar nicht mehr einsetzen.
Eine "schöne" Verallgemeinerung die so für sich nur Quatsch ist, auch wenn da vielleicht manche Seiten das Gegenteil behaupten wollen. Fangen wir zum Beispiel schon mal mit den von dir genannten Dateisystemen an, und nein auch mit ReFS und Storage Spaces wird nicht jeder glücklich.

Am besten nimmt mal aber eine andere Aussage hier aus dem Thread:
john.smiles schrieb:
Cache ist gefährlich, wenn sich der PC aus irgendwelchen Gründen verabschiedet, dann droht Datenverlust. Daher haben Hardware Raidcontroller auch oft Batterien, um die Daten zu Puffern.
Das gilt nämlich ebenfalls für beliebige Software-Raid Lösungen. Kann man zwar wunderbar "beheben" in dem man jeglichen Cache abschaltet, kriegt aber dann die "entsprechende" Leistung.

Zusammengefasst, ja alles hat so ihre Vor- und Nachteile, bei kommerziellen Systemen fängt es schon dabei an, dass man sich das Dateisystem selten selbst aussuchen kann. Allgemein ins Blaue irgendwelche Behauptungen aufzustellen, zeugt eigentlich nur davon, dass man sich damit nie wirklich in verschiedenen Konstellationen beschäftigt hat.

@AssassinWarlord
Danke für die Tests, auch wenn ich die Konstellation etwas "seltsam" finde, ein 1000€ Controller mit langsamen NAS Platten ist mir so noch nicht untergekommen, auch würde ich heutzutage für ein Raid keine 512e Platten nehmen, das ergibt schlichtweg "seltsame" Leistungsdaten in Abhängigkeit zu gewählten Block- und Stripegrößen.

Ein kleiner "Tipp" am Rande, mit den Broadcom Controllern kein Raid10 bauen, sondern bei Raid1 bleiben. Ergibt ein Raid1e statt einer "staged" Konfiguration.
1676799339163.png
1676799359891.png
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: SVΞN und AssassinWarlord
Deine Ergebnisse zeigen aber auch schön, wie Sinnbefreit CDM Ergebnisse sein können..:D
Danke für die Tests
 
Mycomser schrieb:
Deine Ergebnisse zeigen aber auch schön, wie Sinnbefreit CDM Ergebnisse sein können.
Die Ergebnisse gehen in Ordnung, die Testdatei ist schlichtweg zu klein für einen Raidcontroller mit 8GB RAM.
1676799738243.png


Was man kriegt ist halt die Übertragungsrate zu und vom Cache, mit den Werten kann man jetzt nur bedingt arbeiten.
 
AssassinWarlord schrieb:
Interessant ist dennoch, dass der Controller bei nem Raid5 oder Raid6 das Testfile nicht einfach in den Cache reinhaut und darin belässt
Vielleicht nur eine Frage am Rande, war der Cache in WB Modus geschaltet? So oder so, wenn es nicht zwingend um maximale Kapazität geht, würde ich immer ein Raid1e einem mit Parität vorziehen, aber ist deine "Spielwiese". :)

Achte bei den Platten nur, das es "echte" 4K Platten sind und keine mit Emulation. Zumindest bei WD lässt sich die Emulation auch nachträglich abschalten.
 
AssassinWarlord schrieb:
auf einem Gigabyte Z690 UD mit 2x 8GB DDR5 4800Mhz Ram.
Als Raidcontroller hält ein Broadcom 9560-16i her, mit 8GB Cache welcher mit seinen vollen 8 Lanes bei PCIe 4.0
Rein interessehalber:
Du hast den Kontroller also an dem PCIE5.0 x 16 Slot angeschlossen? Die anderen Slots deines MoBo können doch nur Max x4..? Zumindest laut GB Homepage..
 
xexex schrieb:
Eine "schöne" Verallgemeinerung die so für sich nur Quatsch ist,
Ich habe hier gar nichts verallgemeintert 😉

Ich schrieb "einen RAID Controller sollte man heute nicht mehr einsetzen", d.h. nicht das es nicht Szenarien gibt, in welche dieser noch ggf. Sinn machen könnte.
Aber wenn es zu vermeiden ist, sollte (da ist dieses Wort wieder) man es tun.

xexex schrieb:
auch wenn da vielleicht manche Seiten das Gegenteil behaupten wollen.
Ok, kann verstehen, das du mit Level1Techs (das ist so ne Seite) nicht anfangen kannst.

Dann gebe ich dir ein andere Beispiele:
Meta, die Firma hinter Facebook verwendet btrfs, mit entsprechenden Config als Software RAID für den ganzen Datenspeicher:

Backblaze (großer Cloud Storage Provider) verwendet z.B. Erasure Coding anstatt Hardware RAID:
https://www.backblaze.com/blog/reed-solomon/

Ich denke diese zwei Beispiele kann man nicht als "irgendeine Seite" bezeichnen. Das sind zwei große IT Firmen, die entsprechend Erfahrung mitbringen.

xexex schrieb:
auch mit ReFS und Storage Spaces wird nicht jeder glücklich
Davon hatte ich gar nichts geschrieben. Sowas würde ich persönlich auch nicht einsetzen.
Zu intransparent.
 
polyphase schrieb:
Ich denke diese zwei Beispiele kann man nicht als "irgendeine Seite" bezeichnen. Das sind zwei große IT Firmen, die entsprechend Erfahrung mitbringen.
Doch! Die kannst du beide als "irgendeine Seite" betrachten, weil du hier von ganz speziell gestalteten Storage Lösungen sprichst, die von riesigen Unternehmen betreut werden und speziell an die drauf laufende Applikationen angepasst wurden. Der gesamte Exchange Server wurde an den Betrieb mit einzelnen Festplatten ausgelegt, "Voraussetzung" dafür sind DAG Cluster die bei solchen Konfigurationen das "Raid" auf Anwendungebene übernehmen und genauso funktioniert es bei Anbietern wie Backblaze, die nicht einmal mehr Serverplatten nutzen, fällt dort ein Rechner aus wird er schlichtweg am Stück ausgetauscht.

Darauf auf den allgemeinen Fall zurückzuschließen, bei dem man gemischte Applikationen auf Hyper-V oder ESXi Hosts laufen hat ist schlichtweg hanebüchen und da wo man kein Raid braucht, braucht man oft auch kein Software-Raid. Nur weil man irgendwas im Internet aufgeschnappt hat was ein paar spezialisierte Unternehmen machen, gilt es noch lange nicht für die Allgemeinheit.
Ergänzung ()

polyphase schrieb:
Sowas würde ich persönlich auch nicht einsetzen.
Zu intransparent.
Aha! Also nimmst du unter Windows was?
 
Zuletzt bearbeitet:
xexex schrieb:
Der gesamte Exchange Server wurde an den Betrieb mit einzelnen Festplatten ausgelegt
Hä?
Ich habe nichts zu einem Exchange Server geschrieben. Hier dichtest du was dazu 😉

xexex schrieb:
die nicht einmal mehr Serverplatten nutzen, fällt dort ein Rechner aus wird er schlichtweg am Stück ausgetauscht.
Auch wieder falsch, es wird nur die Platte getauscht:
https://www.backblaze.com/blog/life-and-times-of-a-backblaze-hard-drive/

xexex schrieb:
Darauf auf den allgemeinen Fall zurückzuschließen, bei dem man gemischte Applikationen auf Hyper-V oder ESXi
Davon habe ich doch garnicht geredet.
Ich habe geschrieben, ich vereinfache es noch mehr:
  • Wenn HW RAID benötigt dann nehmen
  • Wenn HW RAID nicht benötigt (vermeidbar) dann nix nehmen

xexex schrieb:
Aha! Also nimmst du unter Windows was?
Gar nichts, da ich kein Windows nehme. Hatte ja auch nichts von Windows geschrieben 😉

Und jetzt bitte wieder zurück zum Thema. Ich habe nur aufgezeigt das HW Raid nicht das Allheilmittel ist.
Und immer weniger Sinn macht, außer man lebt in einer Windows Only Welt.

Damit ist da Thema für mich erledigt 😉
 
Mycomser schrieb:
Rein interessehalber:
Du hast den Kontroller also an dem PCIE5.0 x 16 Slot angeschlossen? Die anderen Slots deines MoBo können doch nur Max x4..? Zumindest laut GB Homepage..
Korrekt, Controller sitzt im ersten PCIe x16 Slot der auch 5.0 Könnte. Grafikkarte brauch ich da nicht, die igp reicht zu
 
  • Gefällt mir
Reaktionen: Mycomser
Sorry, aber irgendie liest du nur den halben Text.
Lese noch mals alle Antworten von mir durch und du wirst merken, das ich was dazu geschrieben habe 😘
 
Zurück
Oben