RAID 0 - Chunksize

pfORchT

Ensign
Registriert
Juli 2005
Beiträge
213
Hallo.
Ich habe vor zwei 160GB S-ATA Platten mit dem OnBoard RAID Controller zu einem RAID 0 Array zu machen.

Habe es bis jetzt noch nicht ausprobiert, sondern nur gelesen, dass man die "Streifenlänge" definieren kann.
Mein Controller kann lt. Anleitung 2, 4, 8, 16, 32, 64 und 128 - welche Einheit steht nicht dabei.

Jetzt die Frage - welche Größe ist für welche Anwendung (Server, Home PC, etc) günstig?
Welche Vorgänge laufen bei welcher Einstellung schneller ab, und welche langsamer?

Edit: Bringt dieses NCQ im RAID Betrieb was?
 
Zuletzt bearbeitet:
Ich selbst habe bereits unterschiedliche Stripesizes getestet und keine subjektiven Unterschiede festgestellt. Ich empfehle auch die Kompromißgröße 64kb, welche für ein typisches Game-System ist. Größer wäre performanter, wenn man hauptsächlich große Videodateien hat. Kleiner ist eher bei Systemen mit kleineren Dateien zu empfehlen, da hohe Stripesizes bei kleinen Dateien bekanntlich doch sehr zu Lasten ungenutzter Speicherplatzressouren gehen können.
Im Anhang ein Screenshot mit einem Benchmark eines SATA 1-RAID 0 und eines SATA 2-RAID 0 (mit NCQ), beide am selben nForce 4-Controller. Ob die Mehrleistung des SATA 2 ausschließlich durch NCQ oder durch die höhere Datendurchsatzrate entsteht, lasse ich mal offen... ;)
 

Anhänge

  • Maxtor-Raid0_Sata1.JPG
    Maxtor-Raid0_Sata1.JPG
    92,4 KB · Aufrufe: 213
  • Hitachi-Raid0_Sata2.JPG
    Hitachi-Raid0_Sata2.JPG
    94,5 KB · Aufrufe: 239
Ich selbst hab bei meinem Raid 64kb, ich hab mir das mal während eines Praktikums von einem der davon Ahnung hat erklären lassen, wenn man nix außergewöhnliches macht, sind 64kb die beste Wahl!
 
Ich habe alle Stripesizes bis auf 2k ausprobiert, die der nForce4 bietet. Das hat ne ganz schöne Weile gedauert, da ich ja jedes Mal Windows wieder erneut installieren musste.

Ich habe dann jedesmal ein paar Festplattenbenchmarks durchgeführt und bin auch zu dem Schluss gekommen, dass 64k ein sehr guter Kompromiss ist. Wenn man eine kleinere Stripe-Size wählt, dann steigt die CPU Belastung dramatisch an (bis auf über 40% bei 4k) und die Leistung wird eigentlich kaum besser.

Bei 64k liegt die Prozessorlast nur noch bei ein paar %.

Wählt man größere Stripe-Sizes als 64k, bewirkt das auch keine all zu großen Unterschiede. Die Prozessorlast sinkt nur noch geringfügig um 2-3% und die Transferrate bleibt auch identisch.

Heut zu Tage hat man sowieso kaum Dateien, die kleiner als 64k sind und die kann man auch ruhig ungestriped speichern. Das macht den Kohl auch nicht fett.


Ich muss allerdings dazusagen, dass ich mit einer Stripe-Width von 4 getestet habe. Also mit einem Raid 0 aus 4 Platten. Bei zwei Platten würde ich vielleicht 128k nehmen. Am besten man nimmt die "Optimal"-Einstelllung die einem der Controller empfiehlt. Bei zwei Platten empfiehlt er glaube ich 128k und bei vier Platten 64k.


Eines muss ich allerdings noch erwähnen. Der nForce4 Controller hat ne kleine Macke. Bei Stripesizes über 32k wird die maximale Transferleistung auf 110 MB/sec gedrosselt. Höher geht er einfach nicht. Siehe Screenshot 1 von Sublogics

Wählt man 32k als Stripe-Size liegt das Maximum sogar nur noch bei 80 MB/sec. Da wird ganz hart abgeriegelt.

Alles was unter 32k liegt läuft mit vollem Tempo ab. Bis zu 260 MB/sec. Da das aber im Realbetrieb kaum eine Rolle spielt habe ich trotz der 110MB/sec Limitierung des Stripe-Size auf 64k eingestellt.

Besonders wenn man nur mit zwei Platten arbeitet kriegt man eh nicht viel mehr als die 110 MB/sec hin.


Um's abschließend noch einmal zusammenzufassen. Ich würde dir die Optimal-Einstellung empfehlen, die soweit ich weiß bei 128k liegt. Damit ist die Prozessorlast sehr gering und nur Dateien, die kleiner sind als 128k werden mit einfacher Geschwindigkeit geschrieben/gelesen. Alle Dateien die größer sind werden voll gestriped und in 128k-Blöcken eingelesen. Das reicht völlig aus.
 
Zuletzt bearbeitet:
Wer mit seinem RAID protzen also mit einer sehr hohen sequenziellen Transferrate angeben möchte, der sollte eine Stripesize von maximal 16 KB wählen. Low-Level-Benchmarks, wie z.B. HD-Tach, haben Probleme mit größeren Einstellungen bei der Stripesize und zeigen ab 32 KB in der Regel nur noch unsinn an. Auf die allgemeine Leistung des RAIDs lässt das aber keine Rückschlüsse zu.

Im Übrigen ist die Chunksize was anderes.
 
Stimmt was du sagt deshalb schlagen viele ja auch Wegeseen vom HD-Tach
64 kb Cluster vor---- ich selber habe es nie getestet - und fahre immer den 16 kb-er
(eventuell HD-Tach geil !)werde aber beim x-ten Raid neu aufsetzen den 64 mal testen
aber ob man davon Merklich was zum unterschied hin sprich 16 vs 64 kb Cluster
was merkt sei doch mal dahingestellt
 
Zuletzt bearbeitet:
Warum nimmt die CPU auslastung bei kleineren Stripe-Größen zu? Ich dachte der Controller erledigt alles - bei mir ist der OnBoard. Mach das vll einen Unterschied?

Was ist mit Dateien, die kleiner als die StripeSize sind? Wird die Datei nur auf eine Platte geschrieben? oder zwei mal die Gleiche Datei auf beide? Oder wird mal eine von den kleineren auf die Eine, und dann die nächste auf die Andere geschrieben?
 
Der Controller erledigt in der Regel gar nichts. Die gesamten Berechnungen übernimmt der Treiber des RAID-Controllers und somit die CPU selbst. Der Controller, bzw. dessen BIOS, ist im Grunde nur dazu da, um von einem RAID-Array booten zu können. Du kannst mit jedem standard Controller über einen Treiber bzw. der Windowsfunktion ein RAID-Verbund erstellen. Nur eben ein Betriebssytem darauf installieren und davon booten kannst du dann nicht.

Wie die Dateien, die kleiner als die Stripsize sind, nun tatsächlich gespeichert werden, kann ich dir nicht sagen. Ich glaube aber, dass es möglicherweise von Controllerhersteller zu Controllerhersteller anders gehandhabt wird. Alle drei Szenarien sind möglich.
 
Zurück
Oben