RAID-Analyse: Welche Blockgröße ist ideal?

Zählt (Stripe-) Größe doch?

Bevor wir anfangen, über die Stripe-Größe zu diskutieren, sollten wir den Begriff Stripe-Weite erwähnen: Dieser gibt die Anzahl der Laufwerke in einem RAID-Array wider – fünf Laufwerke ergeben somit eine Stripe-Weite von fünf. An diesem Wert ändert sich ganz offensichtlich nur dann etwas, wenn Sie die Anzahl der Laufwerke in Ihrem RAID-Array verändern. Je mehr Laufwerke Sie hinzufügen, desto schneller wird Ihr RAID-Array – bis ihm unweigerlich der Flaschenhals Ihres Controller oder System-Interfaces die Grenzen aufweist. Die Stripe-Größe ist die kleinste Speicherkapazität auf jeder einzelnen Festplatte in einem RAID-Array, die der Anwender bei den meisten RAID-Controllern bestimmen kann. Die Stripe-Größe gibt allerdings nicht die Kapazität eines kompletten Stripe Sets wieder, das sich über alle verwendeten Laufwerke erstreckt. Ein Stripe Set stellt viemehr die Gesamtheit aller individuellen Stripes mit der jeweils ausgewählten Stripe-Größe dar.

Ein Stripe ist also das kleinste ansprechbare Datenteil innerhalb eines RAID-Arrays. Viele sprechen hier auch von einer Granularitäts- oder Blockgröße; es lässt sich also gut mit den Blöcken (Logical Block Addressing – LBA) auf herkömmlichen Festplatten vergleichen. Mit den meisten RAID-Controllern können Anwender die bevorzugte Stripe-Größe festlegen, da sich hierdurch auch die Leistungseigenschaften eines RAID-Arrays verändern lassen. Typische Möglichkeiten wären hierbei 16, 32, 64 und 128 KB; allerdings bieten zahlreiche professionelle RAID-Controller auch kleinere Stripe-Größen, während manche sogar bis zu 256 KB unterstützen.

Was den Desktop-Bereich angeht, macht es kaum einen Unterschied, die Stripe-Größe mittels On-Board RAID-Controllern wie z.B. die Intel Southbridge(s) ICH7R, ICH8R und ICH9R anzupassen. Eigentlich wird diese Tatsache sogar völlig überschätzt, da die Leistungsveränderungen bei Ihrem Spiele-PC oder Büro-Rechner gering sein werdeb. Anders kann das bei Servern aussehen, wo solche Unterschiede zwischen sehr kleinen und sehr großen Stripes mit bestimmten Anwendungen bemerkbar sind. Den Wechsel von 32 auf 64 KB kann man zwar messen, spürt davon aber nicht wirklich etwas. Allerdings hat Ihre Wahl der entsprechenden Stripe-Größe sehr wohl Auswirkungen auf andere Faktoren:

Performance
Herkömmliche Festplatten liefern die beste Übertragungsleistung, wenn sie sequenziell lesen oder schreiben und dabei die Köpfe so wenig wie möglich neu positionieren müssen. Von diesem Standpunkt aus gesehen ist es am sinnvollsten, die größte verfügbare Stripe-Größe zu wählen, besonders wenn Ihre Festplatten hohen Durchsatz liefern. Allerdings funktioniert das nur, wenn die gespeicherten oder gelesenen Dateien mindestens so groß sind wie ein kompletter Stripe. Sollten Sie also zigtausende Textdateien, Word-Dokumente, kleine Spreadsheets oder ähnliches speichern müssen, dann sind kleine Stripe-Größen besser, da hier alle Dateien über mehrere Laufwerke verteilt werden, um so den Durchsatz möglichst hoch zu halten.

Genutzte Kapazität
Die Stripe-Größe bestimmt auch die Menge an Speicherkapazität, die auf einer RAID-Partition beim Schreiben einer Datei mindestens in Anspruch genommen wird. Sollten Sie z.B. eine Stripe-Größe von 64 KB wählen und eine Textdatei von 2 KB speichern, so nimmt diese Datei 64 KB in Anspruch. Also bestimmt die Stripe-Größe offensichtlich die Mindestmenge an Daten, die der RAID-Controller in Form von Dateien über seine Festplatten verteilt – in meinem Beispiel also ein 64 KB Stripe. Solange eine Datei auf einen einzelnen Stripe oder ein einzelnes Laufwerk geschrieben werden kann, bietet Ihnen der Betrieb dieses speziellen RAID-Arrays absolut keinen Vorteil.

Wenn Sie darauf bedacht sind, ein RAID-Array für den schnellen Zugriff auf kleine Dateien zu erstellen, dann sollten Sie kleine Stripe-Größen wählen, um Dank eines hohen Datenverteilungsgrades über viele Laufwerke den Durchsatz möglichst hoch zu halten. Fileserver für Fotos, Audio- und Videoinhalte sollten allerdings mit größeren Stripe-Größen ausgeführt werden, da das der maximalen sequentiellen Leseleistung auf die Sprünge hilft. Letztendlich sollten Sie – um die beste Lösung für sich herauszufinden – die möglichen Optionen ausprobieren: Versuchen Sie es mit einer kleinen und einer großen Stripe-Größe und sammeln Sie dafür Leistungsdaten. Wir empfehlen Ihnen, keine kleinen Schritte zu machen: Der Wechsel von 32 auf 64 KB Stripe-Größe wird keine großen Auswirkungen haben.

Erstelle einen neuen Thread im Artikel-Forum über dieses Thema
Dieser Thread ist für Kommentare geschlossen
11 Kommentare
Im Forum kommentieren
    Dein Kommentar
  • DHAmoKK
    Moin

    Sagt mal, bin ich der einzige, der sich den Artikel nicht durchlesen kann?
    Firefox 2.0 meldet mir einen
    Fehler: Umleitungsfehler
    "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

    IE7 lädt seit 10 Minuten, aber sonst passiert nichts.
  • Idleking
    Hallo!

    Nein, du bist damit nicht allein! ;)
    Habe das gleiche Problem mit Firefox. Und mit dem IE geht's gar nicht, kann ich auch bestätigen.

    Wäre toll, wenn ihr das in den Griff bekommt.

    Grüße
    Idle
  • jb79
    Weder Firefox 2.0.0.11 noch Firefox 3.0b2 wollen's anzeigen, IE7 hab ich nicht, aber mein IE 6.0.2800.1106 kommt damit klar.
    Sehr seltsam das Ganze, hoffe es ist bald gefixt.
  • audience
    Jetzt sollte wieder alles funktionieren, die Probleme gab es gestern Abend.

    Viele Grüße
    Frank Völkel

    www.tomshardware.com/de
  • lennier
    So, der Artikel ist ja recht nett, obwohl mich auch die Auswirkung unter einer Small Business Umgebung wie (3Ware Controller mit WD150 Raptor oder Seagate ES Platten) brennend interessieren würde.

    Doch nun zu meinem eigentlichen Anliegen:
    Ich weis ja nicht, wie es den anderen Lesern geht aber ich hab noch immer Probleme mit der Stripe-Size. Ist der angegebene Wert jetzt die Summe über die Stripe-Weite? d.h. bei RAID 5 mit 5 Platten schreib ich auf die einzelne Platte 64k/5?
    Und eine weitere Frage zu der Problematik:
    Wie verhält sich die Sache dann mit der Zuordnungsgrösse des verwendeten Filesystems?

    Und da ich hier schon mal fachkundiges Publikum anspreche auch eine kleine Frage am Rande:
    Was ist aus der Anhebung der physikalischen Blocksize der Festplatten geworden (also von 512b auf 4k)?
    Und werden es Filesysteme, die davon Gebrauch machen es dann auch schaffen, kleinere Datenmengen zusammenzufassen und in einen Block zu schreiben?
  • DHAmoKK
    Moin

    Die Firma dankt :D
  • derGhostrider
    AAAAAARGH!

    Zitat aus dem Artikel:
    "; allerdings haben wir uns hier auf komplexe Lösungen auf Basis von RAID 5 und RAID 6 konzentriert, bei denen eine bzw. zwei Festplatten eingesetzt werden, um Paritätsinformationen zu speichern."
    Das, was ihr beschreibt, ist RAID-3 bzw RAID-3 mit doppelter Parität. Bei RAID-5 ist der Fortschritt eben darin begründet, daß die Paritätsdaten verteilt werden und somit die Geschwindigkeit merklich zunimmt, da eben nicht immer auf die Platte gewartet werden muß, die gerade Paritydaten schreibt.

    Theme "Gleiche Festplatten":
    Es gibt da zwei konkurrierende Ansichten. Die eine wurde bereits genannt: "Möglichst identische Festplatten benutzen."
    Die andere ist genau entgegengesetzt: Möglichst Festplatten unterschiedlicher Hersteller einsetzen. Grund: Wenn eine Fehleranfällige Serie erwischt wird, so sind nicht gleich alle Festplatten betroffen.
    Beides hat vor und nachteile. Nun, wo nicht mehr alle Festplatten an einem BUS hängen, sondern bei SAS oder SATA einzeln angeschlossen werden, ist die letztere Variante eventuell die sicherere.
    Solange es nicht auf den Benchmarkweltrekord ankommt, sind die Geschwindigkeitsunterschiede vergleichbarer High-End Festplatten auch nicht SO wichtig. Für einen Heimanwender vielleicht schon, damit er sich besser fühlt, aber im Unternehmen ist es i.d.R. total egal ob nun Maximal 400MB/s oder 450MB/s übertragen werden können. Und wenn DAS doch entscheidend ist, dann werden eben 2 Festplatten mehr eingekauft.

    Und noch ein Fehler im Artikel:
    "Typische Möglichkeiten wären hierbei 16, 32, 64 und 128 KB; allerdings bieten zahlreiche professionelle RAID-Controller auch kleinere Stripe-Größen, während manche sogar bis zu 256 KB unterstützen."
    Das letzte soll wohl 256Byte heißen.

    Der ARECA-Controller verhunzt die Zugriffszeiten. Mein 3Ware 7850 (das Teil ist relativ alt...), das ist ein 8-Kanal 64bit PCI Hardware RAID-Controller, zeigt keine derartig hohe Zugriffszeiten. Ich habe zur Zeit 5 Festplatten im RAID-5. Aber das ist bei ARECA schon bei anderen Tests auffällig gewesen - scheint bei Tomshardware nur niemanden zu stören...

    Große Stripes erreichen höhere Werte bei IO/s? Hui, das ist verwunderlich, sollte aber vor allem von der angeforderten Blockgröße abhängen. Prinzipiell sollte die Datentransferrate sinken und die IO/s sollten ansteigen. Vielleicht sollte man doch noch einen anderen Controller verwenden. Manche Controller sind auch sehr stark für Standardeinstellungen optimiert, bearbeiten intern z.B. quasi immer 64KB-Blöcke, auch wenn kleinere angefordert werden. Soetwas scheint mir hier fast der Fall zu sein.

    Aus eigener Erfahrung hätte ich mit einem etwas anderen Ergebnis gerechnet. Vor allem, daß zu große Stripes (also deutlich über 64K) nichts bringen und zu kleine Stripes (<4K) die Transferrate dermaßen weit absacken lassen, daß es sich selbst für Webserver nicht lohnt. Insofern bin ich erstmal überrascht.
    ABER: Es wäre nett zumindest bei ein paar Tests einen vergleich mit einem anderen Controller zu sehen. Z.B.: Den "Testsiegern" vom letzten RAID-Test. 3Ware und ICP (oder waren es 3Ware und LSI?) - egal.
  • kiu77
    @ derGhostrider

    Aha!
    Und ich dachte immer, dass Datentransfer und IO/s gegenläufig sind, abhängig von der Stripe-Größe.

    Insgesamt sind die Transferraten sehr uneinheitlich und folgen irgendwie keinem Trend, sodass man nicht wirklich irgendwelche Daumenreglen erstellen kann, wenn die Daten denn stimmen sollten und nicht der Zufall zu viel regiert...
  • WildCard
    Interessanter Artikel, jedoch nicht sehr aussagekräftig, vor allem aufgrund des in den Tests verwendeten Controllers. Ich denke eines der "Standard-Modelle", z.B. von Adaptec wäre geeigneter gewesen. Und ein vergleich mit einem Controller eines anderen Herstellers wie z.B. ICP Vortex (auch wenn ICP vor ein paar Jahren von Adaptec aufgekauft wurde) oder LSI wäre schön gewesen da auch der Controller einen erheblichen Teil der Performance ausmacht.

    Und da sich der Artikel eher nicht an den Heimanwender sondern an Firmen richtet hätte man evtl. SCSI-Controller anstelle von S-ATA testen sollen da meiner Meinung nach in einen (vernünftigen) Server ein SCSI-RAID-System gehört, schon aufgrund der erheblich schnelleren und vor allem langlebigeren HDDs! S-ATA würde ich bestenfalls in kleinen Unternehmen und z.B. Arzt-Praxen einsetzen da für ein 5-User Netz die kosten für SCSI oft zu hoch sind. Und da braucht man wiederum selten 8 HDDs in einem Array weil das Datenaufkommen zu gering ist.

    Abschliessend möchte ich noch darauf hinweisen das RAID-0 eigentlich gar kein RAID ist da die Redundanz nicht gegeben ist.

    Alles in allem jedoch trotzdem ein höchst interessanter Artikel.
  • Snoopy69
    Hab seit ein paar Tagen einen Areca ARC-1210 mit dem ich endlich ein gescheite Perf. mit den 2x 16GB-SSDs hinbekomme.

    Ich hätte nicht gedacht, dass der Cache soviel ausmacht. Aber seht selbst...

    http://www.forumdeluxx.de/forum/showthread.php?t=427495
  • Anonymous
    Hmm.

    Welche Stripegröße empfiehlt sich denn nun auf einem RAID0 mit 2 Platten, auf der Windows+Programme/Spiele liegen?