Warum ist raid 0 relativ langsam?

Hellstaff

Fleet Captain Special
Mitglied seit
08.08.2003
Beiträge
317
Renomée
0
Standort
Graz
Morgen miteinander!

Ist schon ein oft diskutiertes Thema, doch außer dem Streit zwischen pro und contra ist mir das dahinter liegende technische Problem untergegangen. Wieso bringt raid 0 nicht annähernd die doppelte Leistung wie eine einzelne HDD. Wenn die Daten eigentlich von 2 Leseköpfen aufgenommen werden, sollte doch theoretisch die Übertragung um einiges höher sein Ich höre immer wieder, das es liegt an der nichtlinearen Übertragung, aber trotzdem sind doch bei diesem Transfer zwei Lese/Schreibköpfe am Werk. Das stripping von Daten hört sich ja gut an, aber warum ist die praktische Effizienz so gering?

Mit freundlichen Grüßen

Hellstaff
 
Die Zugriffszeiten der Leseköpfe bleiben nahezu identisch, was aber einen weitaus grösseren Einfluss auf die Performance hätte als das pure beschleunigen linearer Lesevorgänge.
 
Jep, es wird immer die Zugriffszeit als eine der leistungsbestimmenden Größen bei Festplatten vergessen. Während die Köpfe neu Positioniert werden, können keine Daten übertragen werden. Werden nun viele kleine Daten gelesen bzw. geschrieben oder ist die Platte stark fragmentiert, müssen die Köpfe ständig neu positioniert werden, was die Zeit, in der keine Daten übertragen werden können, summmiert und dementsrpechen die effektive Transferrate senkt. Je öfter die Köpfe in einem bestimmten Zeitrahmen neu positioniert werden müssen, desto mehr Gewicht hat die Zugriffszeit und desto weniger die lineare Transferrate.
 
Heißt aber auch, dass die aktuellen Dateisysteme (FAT, NTFS etc.) für solche Systeme eigentlich ungeeignet sind!
 
was heisst denn "solche Systeme" *noahnung*

Verbesserungsvorschläge?
 
@ Madnex: Das ist auch meine Überlegung. Aber ein Beispiel: eine HDD hat eine Lese/Schreib Transfer von sagen wir 45/45 MB/s. Durch raid 0 müsste sich doch theoretisch der Transfer verdoppeln, da ja im raid0 die Arbeit exakt auf zwei HDD aufgeteilt wird. Da müsste sich doch jede Festplatte voll auf den zugewiesenen Teil konzentrieren können. Dass eine fragmentierte Platte einen gerigeren Durchsatz hat ist klar, aber warum legt sie im raid0 so wenig zu?
 
@ Madnex: Das ist auch meine Überlegung. Aber ein Beispiel: eine HDD hat eine Lese/Schreib Transfer von sagen wir 45/45 MB/s. Durch raid 0 müsste sich doch theoretisch der Transfer verdoppeln, da ja im raid0 die Arbeit exakt auf zwei HDD aufgeteilt wird. Da müsste sich doch jede Festplatte voll auf den zugewiesenen Teil konzentrieren können. Dass eine fragmentierte Platte einen gerigeren Durchsatz hat ist klar, aber warum legt sie im raid0 so wenig zu?
Hi,

exakt wird bei raid0 gar nichts aufgeteilt. Es wird nach der stripesize aufgeteilt.
Je nach Einstellung gelangen so je 4kb bis 32kb auf je eine Platte erst dann kommt die zweite Platte ins Spiel.
Zb. kann es sein das ein Directory immer auf einer Platte ins liegen kommt sodass beim lesen dessen überhaupt nie eine Geschwindigkeitserhöhung zu stande kommt.

Raid 0 verdoppelt die Performance annähernd beim reinen sequenziellen Lesen von Blöcken hintereinander.
Raid 0 verbessert die Performance leicht beim Lesen von vielen kleinen Dateien weil es 2 Heads zum Positionieren hat.

lg
__tom
 
Heißt also: Wenn man einen üblichen Windows-Spiele- oder Bürorechner hat, bringt einem Raid 0 wenig, weil da eben viele relativ kleine Dateien gelesen werden müssen, die nicht hintereinander angeordnet sind. Daß Leute dann trotzdem mit einem neu eingebauten Raid 0 mehr Performance haben, liegt dann oft eher daran, daß sie neue Platten drin haben, die für sich bereits schneller als die alte sind.

Aber wirklich interessant ist das nur bei längeren großen Dateien, z.B. wenn man Videodateien kopiert, entweder beim Videoschnitt oder als Mediaserver im LAN - allerdings muß dann auch das LAN dementsprechend leistungsfähig sein, was nicht unbedingt immer gegeben ist (ein übliches Gigabit-LAN, was nur mehrere hundert MBit schafft, ist schon mit einer einzelnen Platte gut beschäftigt). Da könnte man dann tatsächlich auf annähernd doppelte Geschwindigkeit kommen, aber eben nur in diesen eng begrenzten Fällen.

D.h. also wenn man als Heimanwender Geld in Festplatten investieren will, ist es meist sinnvoller, dann z.B. eine WD Raptor (kürzere Zugriffszeit dank 10000 U/Min, daher schnelleres Laden von viele kleinen Dateien) zu nehmen, auf der man die Sachen installiert, die schnell laden sollen (Betriebssystem, Programme, Spiele) und dann eine zweite Platte mit viel Kapazität als Datengrab, die nicht unbedingt so schnell sein muß.

Oder man setzt auf Raid 1, was die Datensicherheit etwas erhöht. Allerdings hilft das nur bei Plattencrash, aber wenn ein Virus o.ä. die Daten verwurstet, dann auf beiden Platten, also kommt man um ein Backup auch nicht herum. Raid 1 ist also eher auf Servern interessant, da man die Ausfallzeit auf Null verringern kann, wenn man Hot-Swap-Platten hat. Einfach im Betrieb kaputte raus, neue rein, fertig, man muß nicht erst ein Image zurücksichern. Für zuhause kann man sich das aber sparen, macht ja nix, wenn der Rechner mal ne Stunde unbenutzbar ist.


Mit den Dateisystemen hat das nichts zu tun, das Raid wirkt für die ja auch nur wie eine einzelne Platte, das läuft auf einer anderen Ebene ab. Natürlich könnte man auch bei den Dateisystemen noch was rausholen und verbessern, aber das Verhältnis der Raidtypen zueinander und zu einzelnen Platten in den genannten Anwendungsfällen bleibt gleich, egal ob es nun FAT, NTFS, WinFS, ext2/3, ReiserFS oder was es noch alles sonst so gibt wäre.
 
Raid 0 verbessert die Performance leicht beim Lesen von vielen kleinen Dateien weil es 2 Heads zum Positionieren hat.
dateien, die kleiner sind als die stripe-size, werden wie du richtig erwähnt hast eben nicht auf die platten eines arrays verteilt, sondern nur auf eine platte geschrieben. und genau dort können in verbindung mit intelligenten controllern latenz-vorteile entstehen, wenn beide platten gleichzeitig auf unterschiedliche files zugreifen können, die nicht im array verteilt sind. dann können nämlich beide platten zur gleichen zeit unterschiedlichen dateien adressieren.

da aber viele bei raid-0 vor allem an tolle low-level-benchmarks und noch tollere sequentielle transferraten denken, ist die empfehlung meistens, eine möglichst kleine stripe-size von 8 bis 16kb zu wählen, damit eben möglichst viele dateien auch tatsächlich auf alle platten des arrays verteilt werden. nur dass dies nicht bei jedem anwendungsprofil auch tatsächlich vorteile bringt.
 
Heißt aber auch, dass die aktuellen Dateisysteme (FAT, NTFS etc.) für solche Systeme eigentlich ungeeignet sind!

"aktuell" und "FAT" verbieten sich in einem Satz. Moderne Dateisysteme wie XFS können auch mit 'nem Raid0 besser arbeiten, in der Praxis fällt das aber auch nur bei Anwendungen auf, bei denen viele Daten sequenziell auf den Platten landen oder von da gelesen werden.

Das mit den Zugriffszeiten wurde ja schon angeführt. Da wäre vielleicht noch anzumerken, dass die Zugriffszeiten schon etwas zurückgehen, weil sich ein Fenster von zB. 40GB bei einem Raid0 aus 2 HDDs nur noch über 20GB auf jeder Platte erstreckt.
Der Leistungsgewinn dadurch dürfte etwas niedriger sein als wenn man 2 bis auf die Kapazität baugleiche Platten vergleicht, wobei die eine Platte doppelt so groß ist wie die andere (bei den C't Benchmarks sieht man das recht gut).
 
Wobei man interessanterweise bei den Raptor Raid-Verbunden optisch meist kaum Abweichungen in der Zugriffszeit vorhanden sind, wobei es ja sein müßte.

Letzteres darf man ein Raid-0 Verband nicht in mehrere Teilen partionieren, dies verlangsamt es nochmals.

Und Platten verwenden, die sich für ein Raid-0 als geeignet erwiesen haben. Dazu gehört nen der WD-Raptor, Hitachis Produktpalette an oberster Stelle.
 
Ich vermisse hier noch den Zusatz des 'Verwaltungsaufwandes' für den Raid-Verbund, der ja nun mal ebenfalls an den theoretisch möglichen Übertragungsraten knabbert.

Was aus meiner Sicht für die Paxis eigentlich viel interessanter ist, wäre die Benennung der Werte der tatsächlich vom Controller erreichbaren I/O-Raten je Raid-Typ.
 
Ich vermisse hier noch den Zusatz des 'Verwaltungsaufwandes' für den Raid-Verbund, der ja nun mal ebenfalls an den theoretisch möglichen Übertragungsraten knabbert.
Nachdem die LBN's linear organisiert sind und die Verteilung auf die Stripeset Member über eine einfache modulo Funktion erreicht wird geht der 'Verwaltungsaufwand' für Raid0 gegen 0.
Raid0 ist die Raid Variante mit dem geringsten Verwaltungsaufwand.

Was aus meiner Sicht für die Paxis eigentlich viel interessanter ist, wäre die Benennung der Werte der tatsächlich vom Controller erreichbaren I/O-Raten je Raid-Typ.
Eher die Festplatten sind der limitierende Faktor bei den I/O Raten denn der Kontroller.
Bewegte, mechanische Teile sind immer noch das schwächste Glied in der Kette.

lg
__tom
 
Da wäre vielleicht noch anzumerken, dass die Zugriffszeiten schon etwas zurückgehen, weil sich ein Fenster von zB. 40GB bei einem Raid0 aus 2 HDDs nur noch über 20GB auf jeder Platte erstreckt.
wobei du den gleichen effekt hast, wenn du einfach nur eine größere festplatte hast. ein fenster von 40gb ist auf einer 160gb festplatte kleiner als auf einer 80gb festplatten, entsprechend innerhalb dieses fenster bei der 160gb platte die wege kürzer, die die köpfe zurücklegen müssen.
 
[3DC]Payne;2856270 schrieb:
...nur das RAID0 in der PRaxis meist nicht schneller ist als eine einzelne, ein User bei HWLuxx hat das mal getestet...

Super Test... Ladezeiten eines Spiels. Als ob da nichts anderes gemacht wird als Daten von
der HDD zu schaufeln. Wenn es so ist, würden alle Spiele viel schneller starten. Die geladenen
Daten werden in der Regel ausgeackt, gelesen, und verarbeitet. Dann wieder was vom RAM
auf die HDD usw.

Raid 0 ist etwas schneller, aber nicht doppelt so schnell, SLI ist ja theoretisch auch doppelt
so schnell, schaft aber im besten Fall auch nur 80% Mehrleistung.
 
Raid 0 ist etwas schneller, aber nicht doppelt so schnell
sorry, aber das ist einfach zu pauschal ...

raid-0 kann dort, wo daten massiv sequentiell übertragen werden, sehr wohl bei einer möglichst kleinen stripe-size eine effektive verdoppelung der geschwindigkeit erreichen. nur dass dies eher in seltenen bzw. sehr speziellen fällen passiert (klassischerweise im bereich audio- und videobearbeitung).

es gibt bereiche, da erreicht ein raid-0 im prinzip überhaupt keinen geschwindigkeitsvorteil, nämlich dort, wo viele verteilte zugriffe stattfinden wie z.b. vom betriebssystem verursacht, siehe auch Madnex erklärung.

und es gibt fälle wie raid-internes kopieren, wo ein raid-0 sogar deutlich langsamer ist als zwei einzelne platten.
 
Eher die Festplatten sind der limitierende Faktor bei den I/O Raten denn der Kontroller.

Kann ich so nicht 'stehen lassen'.:)
Beim Einsatz von nur 2 Platten mag das vielleicht vernachlässigbar sein, es können doch aber weit mehr Platten in den Verbund aufgenommen werden - und dann ist I/O_max. des Controllers schon ein nicht zu unterschäzender Wert.
 
sorry, aber das ist einfach zu pauschal ...
Deine Erklärung war zwar etwas ausfürlicher, aber auch da könnte man noch immer zu
pauschal zu sagen.

Falsch war meine kurze Erklärung zumindest nicht, Raid 0 ist niemals doppelt so schnell wie
eine HDD allein. Und in der Summe aller Anwendungen ist sie etwas schneller als eine allein.

Das ist doch eigentlich eine unmissverständliche für alle verständliche Erklärung.
Mit deinen einzelnen Aufführungen denkt nun schon wieder das 08/15 ComputerBILD
Kiddy das Raid 0 im Großteil nicht mal so schnell ist wie eine einzelne HDD.
 
der controller und bus system ist beim pc oft zu langsam

bei diesen billig raid controllern ist es oft so das ein reines software raid sogar schneller ist

beim verteilen der stripes auf beide Platten wird die CPU belastet weil der controller keine eigene Logik hat, bei RAID5 ist das noch schlimmer
 
Kann ich so nicht 'stehen lassen'.:)
Beim Einsatz von nur 2 Platten mag das vielleicht vernachlässigbar sein, es können doch aber weit mehr Platten in den Verbund aufgenommen werden - und dann ist I/O_max. des Controllers schon ein nicht zu unterschäzender Wert.
OK, wenn Du 100 Member hast, dann kann der Kontroller durchaus das Limit sein.
Ich frage mich aber ob so ein Raidset noch eine MTBF von grösser einem Tag hat ;D

Wie i_hasser sagte ist das Bussystem eher das Limit.
Normalerweise schafft jeder Kontroller >1000 IO/s

lg
__tom
 
Wieso? Partitionen kannst du auf ein Raid0 machen wie es dir gefällt, tut der Geschwindigkeit keinen Abbruch.


Das ist leider ein gewaltiger Irrtum, .......... Stichwort kopieren innerhalb mehrerer Partitionen im Raid-0 selber. Da ist es bereits erwiesen das es langsamer als, als von Raid zur Platte, oder umgekerht kopieren zu wollen. Für große Datenblöcke sehe ich da jedenfalls keinen Vorteil. Bei 32er Stripset oder höher meine noch in mehr als 6 Stücke zu zerteilen.

Das ist irgendwo glaub im HW-Luxx schon mal diskutiert worden.............
 
Super Test... Ladezeiten eines Spiels. Als ob da nichts anderes gemacht wird als Daten von
der HDD zu schaufeln. Wenn es so ist, würden alle Spiele viel schneller starten. Die geladenen
Daten werden in der Regel ausgeackt, gelesen, und verarbeitet. Dann wieder was vom RAM
auf die HDD usw.

Raid 0 ist etwas schneller, aber nicht doppelt so schnell, SLI ist ja theoretisch auch doppelt
so schnell, schaft aber im besten Fall auch nur 80% Mehrleistung.
Nein, der Test passt schon, andere haben ähnliches festgestellt, ebenso einige andere User!

RAID0 bringt in der Praxis bei einem normalen Anwendern und Anwendungen wenig bis garnichts!!!

Das ist einfach Fakt, wenn du dem nicht zustimmst, widerleg es, in dem du selbst Tests durchführst.
 
Ladezeiten von irgendwelchen Spielen sind ganz einfach unbrauchbare Tests, ist so ;). Beim Kopieren innerhalb eines Raid Array sollte das schon deutlich schneller gehen als eine einzelne Platte, was für'n Murk Windoofs da macht weis ich aber nicht. Kopierbenchmarks wollen übrigens auch ordentlich durchgeführt werden, da bringt es rein garnix mal im explorer ein paar GB hin und her zu schieben.

Es ist prinzipiell beim Kopieren auch egal wie weit die Partitionen auseinanderliegen, der einzige Einfluss ist da, dass auf einer Partition die Lese/Schreibrate etwas geringer ist (weil die weiter innen auf den Platten liegt).
 
Zurück
Oben Unten