Vergleich: Linux SoftwareRAID Benchmark (RAID Level 0,1,5,10)

Software RAID Systeme erhöhen die Ausfallsicherheit von Speichersystemen. Und da ein RAID10 den nutzbaren Speicherplatz gleich mal halbiert, tut es aus wirtschaflichen Gründen häufig ein RAID5. Eine schlechtere Wahl lässt sich kaum treffen.

25. Apr 2018 14:51

An verschiedenen Stellen, an denen RAID-Konzepte erklärt werden, wird der theoretisch mathematisch mögliche Idealfall beschrieben, bei dem ein RAID5 mit 80% Effizienz einem RAID10 überlegen ist, weil dieses nur eine mathematisch berechnete Effizienz von 50% aufweist.

Theorie ist gut, Praxis ist besser

Das Testsystem ist ein AMD Sempron 2600+ mit 1GB Ram und openSuSE 11.1 auf eigener System-Festplatte. Das Speichersystem für den Test sind 4x WD1600AAJS an einem PDC40718 (SATA 300 TX5) Controller.

Als Benchmarksoftware verwende ich hdparm und dd und später ein eigenes Script, welches eine Real-Life Situation simuliert.

Um Meßungenauigkeiten zu mindern, wird jeder Testlauf 5 mal wiederholt und der Mittelwert aus den Ergebnissen gebildet (stimmt, das ist ordentlich aufwändig).

RAID Performance Vergleich

Im ersten Schritt geht es um einen groben Vergleich der RAID Performance verschiedener Systeme untereinander.
Soweit so gut. Etwas wird jetzt bereits deutlich: in der Theorie geht man davon aus, dass ein RAID5 nur beim Schreiben kleiner Dateien einen erwähnenswerten Performanceverlust aufweist. Die Praxis sagt etwas anderes. Eine 10GB-Datei ist nicht klein. Selbst die Blockgröße beim Schreiben war mit 1024k relativ groß.

Das RAID0 ist hier nur der Neugier wegen mit angegeben, im produktiven Einsatz ist das natürlich keine Option!

Einfluss der Blockgröße auf die Performance

Die RAID Geschwindigkeit ist kein absoluter Wert. Eine wichtige Rolle für den Vergleich spielt die Blockgröße der Daten, die gelesen und geschrieben werden, sowie dazugehörend, die Chunk Size der RAID Konfiguration.

Der folgende Test zeigt das beim kontinuierlichen Schreiben einer Datei von 1GB in unterschiedlich großen Blöcken.
Wie man sieht, ist der Einfluß in allen RAID Systemen vorhanden. Sobald die Blockgröße der Chunk Size entspricht, geht der Performancegewinn des RAID Verbundes verloren und die Leistung bricht ein. Zur individuellen Optimierung lässt sich die Chunk Size der RAID Level entsprechend anpassen. Allgemein gilt hier, bei vielen kleinen Dateien eher eine kleine Chunk-Size zu wählen und umgekehrt.

Real-Life Benchmark

Im realen Leben werden auf einem Storage System Dateien immer in unterschiedlichen Blockgrößen geschrieben und gelesen. Und das natürlich gleichzeitig.

Um das zu simulieren, habe ich mir 15 Dateien unterschiedlicher Größe in einen Ordner kopiert. Ein Script sorgt dafür, dass diese Dateien in parallel ablaufenden Prozessen mit unterschiedlichen Blockgrößen gelesen, ineinander kopiert, gelöscht und neu geschrieben werden - insgesamt werden 120 Dateioperationen durchgeführt. Deren Abfolge ist in allen Tests gleich.

Gemessen wird die Zeit, wie lange das System mit all diesen Operationen beschäftigt ist. Das beste System ist am schnellsten fertig, kleinere Werte sind also besser!
Nicht wirklich verwunderlich, aber dennoch nur zum Vergleich, ist ein RAID0 aus 4 Festplatten am schnellsten mit der Aufgabe fertig. Die Performance der RAID5 Systeme ist allerdings geradezu erschreckend - das RAID10 benötigt für die Aufgabe 5min16sec, ein RAID5 mit 3 Platten braucht 26min13sec, ist also fast 5x langsamer.

Fazit

Bei einem SoftwareRAID werden die Paritätsberechnungen für ein RAID5 von der CPU des Systems durchgeführt. Je leistungsfähiger die CPU, desto besser die Werte. Das Testsystem ist hier ohne Zweifel verantwortlich dafür, dass die Unterschiede so deutlich ausfallen, aber es zeigt auf, wie wichtig bei einem Software RAID5 eine leistungsfähige CPU im Storage Server ist.

Und es wird ebenfalls andeutungsweise sichtbar, dass ein RAID5 zwar unter idealen Bedingungen seine mathematisch berechneten Stärken auch in der Praxis aufweist, aber deutlich auf der Strecke bleibt, sobald sich die Bedingungen auch nur geringfügig verschlechtern. Ein RAID1 oder RAID10 ist hier die bessere Wahl.

 
π