PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Geschwindigkeiten Raid 0 und 1


smoe82
2009-09-28, 10:46:59
Hallo!


Seit einer Weile beschäftigt mich folgende Fragestellung, die mir bisher niemand zufriedenstellend beantworten konnte:

Im Raid 1 ist die Geschwindigkeit bei 2 oder mehr Platten üblicherweise (ich hab noch nichts anderes gesehen) in etwa so schnell wie die langsamste Platte im Verbund.

Bei Raid 0 ist die Geschwindigkeit oftmals bedeutend höher. Dies wird damit begründet, dass sowohl beim Lesen, als auch beim Schreiben die Möglichkeit besteht, unterschiedliche Teile einer Datei auf den beiden (oder mehr) Platten gleichzeitig zu bearbeiten. Auf Platte 1 könnte also der erste Teil einer Platte gelesen werden, auf Platte 2 der zweite Teil.


Warum aber wird das bei Raid 1 nicht auch so gemacht? Auf beiden Platten liegen die gleichen Daten vor, also könnte doch mindestens beim Lesen das gleiche Verfahren wie bei Raid 0 angewandt werden. Theoretisch ginge es auch beim Schreiben (Teil 1 der Datei erstmal auf Platte 1, Teil 2 auf Platte 2) und während Userinaktivität könnte der Controller dann Teil 1 von Platte 1 auf die 2. Platte replizieren und umgedreht. Klar, bei kritischen Anwendungen oder Severn wo ständig geschrieben wird, würde Raid 1 mit der Methode beim Schreiben wohl nicht funktionieren. Beim Lesen sollte es aber gehen.



Kann mir jemand erklären, warum Raid 1 eigentlich immer (oder nicht?) langsamer als Raid 0 (beim Lesen) ist und warum diese oben beschriebene Methode nicht angewandt wird. Und falls es doch Controller gibt, die das können, würdet Ihr bitte mal ein Beispiel posten, ich hätte da nämlich Interesse dran (also ein schnelles Raid1 beim Lesen).


Grüße

Gast
2009-09-28, 11:15:50
Beim Lesen sollte kein Unterschied bestehen, beim Schreiben ist RAID0 logischerweise schneller

StefanV
2009-09-28, 11:18:02
Nee, ganz im Gegenteil!

RAID1 ist beim lesen deutlich schneller, sofern Read Balancing unterstützt wird.
Da kann ja völlig unabhängig mit beiden Platen gearbeitet werden -> Zugriffszeit besser, geringer.

Leider wird Read Balancing meist nur bei 2 'Threads' genutzt, also wenn 2 Dinge gleichzeitig auf die Platte zugreifen wollen.

smoe82
2009-09-28, 11:27:05
Nee, ganz im Gegenteil!

RAID1 ist beim lesen deutlich schneller, sofern Read Balancing unterstützt wird.
Da kann ja völlig unabhängig mit beiden Platen gearbeitet werden -> Zugriffszeit besser, geringer.

Leider wird Read Balancing meist nur bei 2 'Threads' genutzt, also wenn 2 Dinge gleichzeitig auf die Platte zugreifen wollen.



Wenn ich nach Raid google, kommt unisono das Fazit Raid 0 schnell, Raid 1 sicher zum Vorschein. Deshalb frage ich ja, weil eigentlich zumindest beim Lesen beide gleich schnell sein müssten.



Kennst Du ein paar preiswerte Consumer-Controller für PCI Express (bis 4x), die das beherrschen?

Ajax
2009-09-28, 11:32:24
Wenn ich nach Raid google, kommt unisono das Fazit Raid 0 schnell, Raid 1 sicher zum Vorschein. Deshalb frage ich ja, weil eigentlich zumindest beim Lesen beide gleich schnell sein müssten.



Kennst Du ein paar preiswerte Consumer-Controller für PCI Express (bis 4x), die das beherrschen?

Also eigentlich sollte es bei RAID 0 (zumindest theoretisch) auch eine Beschleunigung beim Lesen geben. Insgesamt kann ja durch die Parallelität ein höherer Datendurchsatz erreicht werden. Inwieweit sich das llerdings bei schnellen Platten und z.B. kleinen Datein noch großartig auswirkt, wäre ein guter Fall für einen Benchmark (abhängig von der Chunk-Size?).

Gast
2009-09-28, 14:15:43
Moin,

vor einigen Wochen habe ich mich auch mit diesem Thema beschäftigt. Es gibt tatsächlich RAID1 Controller die beim Lesen die Geschwindigkeit von RAID0 erreichen. Die ICH#R Controller von Intel sind leider nicht dabei.

Sehr schön zu erkennen in den Festplatten Bechmarks auf den Seiten von Tom´s Hardware

smoe82
2009-09-28, 14:29:02
Ein paar Beispiele bitte aus der Klasse unter 250 Euro. Man findet auf den Vertriebswebseiten keine Hinweise auf die Leistungsfähigkeit der einzelnen Modi. Noch dazu gibt es hunderte Controller, die sich teilweise nur marginal unterscheiden. Ich hab da ehrlich keinen Überblick über den Markt. Hab auch diverse Testberichte zu Raidcontrollern gelesen, bin daraus aber auch nicht schlau geworden. Vielleicht hat jemand paar Links zu wirklich aussagekräftigen Testberichten?

Gast
2009-09-28, 19:56:56
Moin nochmal,

leider habe ich keine Beispiele für dedizierte Controller. Ich bezog mich auf die bereits vorhandenen Controller "onboard" diverser namhafter Mainboard Hersteller

Gast Berlin
2009-09-28, 22:15:33
SAS 2.0: Sechs Gbit/s und neue Features
http://www.tomshardware.com/de/SAS-600-6gbit,testberichte-240392.html

Performance Charts: Festplatten in RAID-Konfiguration
http://www.tomshardware.com/de/Charts-RAID-Festplatten-Performance,testberichte-239760.html

Avalox
2009-09-28, 22:36:53
Wenn ich nach Raid google, kommt unisono das Fazit Raid 0 schnell, Raid 1 sicher zum Vorschein.


Ja, dass ist auch so richtig.

RAID 0 ist kein RAID. Da keine redundante Datenhaltung besteht.
RAID 0 ist 0 RAID. Allerdings der schnellste Ansatz.
RAID 1 ist das sicherste alle RAID. Aber damit auch langsam und platzaufwändig.



Deshalb frage ich ja, weil eigentlich zumindest beim Lesen beide gleich schnell sein müssten.



Nein überhaupt nicht. RAID 1 verbindet immer das lesen der identischen Informationen aller(!) Festplatten und einem anschließenden Vergleich dieser Daten. Es ist langsamer als bei einer einzigen Festplatte. Dieses ist nicht zu vergleichen mit dem abwechselnden Lesen nur einer Festplatte.

Letzteres wird von einigen Controllern unter RAID 1 angeboten, das Lesen ist dann zwar so schnell wie RAID 0 aber auch ebenso unsicher. Zuvor falsch geschriebene Informationen werden so nicht mehr erkannt. Diese Funktion entspricht dann nicht mehr RAID 1.

Im Heimbereich findet man kaum ordentliche RAID Lösungen.

smoe82
2009-09-29, 15:40:07
Ja, dass ist auch so richtig.

RAID 0 ist kein RAID. Da keine redundante Datenhaltung besteht.
RAID 0 ist 0 RAID. Allerdings der schnellste Ansatz.
RAID 1 ist das sicherste alle RAID. Aber damit auch langsam und platzaufwändig.





Nein überhaupt nicht. RAID 1 verbindet immer das lesen der identischen Informationen aller(!) Festplatten und einem anschließenden Vergleich dieser Daten. Es ist langsamer als bei einer einzigen Festplatte. Dieses ist nicht zu vergleichen mit dem abwechselnden Lesen nur einer Festplatte.

Letzteres wird von einigen Controllern unter RAID 1 angeboten, das Lesen ist dann zwar so schnell wie RAID 0 aber auch ebenso unsicher. Zuvor falsch geschriebene Informationen werden so nicht mehr erkannt. Diese Funktion entspricht dann nicht mehr RAID 1.

Im Heimbereich findet man kaum ordentliche RAID Lösungen.




Ah, ok danke. Jetzt hab ich es verstanden. Eine sehr gute Erklärung!


@gast: danke für die Links.


Thema ist damit (für mich) durch.

Darkstar
2009-09-29, 21:27:27
RAID 1 verbindet immer das lesen der identischen Informationen aller(!) Festplatten und einem anschließenden Vergleich dieser Daten.Was passiert eigentlich, wenn bei diesem Vergleich Unterschiede festgestellt werden? Soweit ich das recherchieren konnte, werden bei RAID 1 keine Paritätsinformationen geschrieben. Kann also bei RAID 1 überhaupt erkannt werden, welche Festplatte die fehlerhaften Daten enthält (der Einfachkeit halber ausgehend von zwei beteiligten Festplatten)?

Gast
2009-10-01, 23:32:19
Hallo,

es gibt sowohl für RAID1 als auch für RAID 5 und 6 "nonparity Read", dabei werden die Redundnazdaten nicht gelesen und nicht verglichen. Somit kann schneller gelsen werden.

Im Zweifelsfall nimmt der Controller die Daten der ersten HDD (Port #0), dennoch ist nich davon auszugehen, das die HDDs unterschiedliche Daten mit jeweils korrekter Prüfsumme liefern können, daher sehr theoretische Frage.

Hinweis Auf der HDD stehen nicht die echten Daten sondern ein codierter und per mehrstufigem ECC gesicherter Datenstrom.

mfg

Darkstar
2009-10-02, 19:22:22
Hinweis Auf der HDD stehen nicht die echten Daten sondern ein codierter und per mehrstufigem ECC gesicherter Datenstrom.Vielen Dank für diese Information. Ich war bisher immer davon ausgegangen, daß man bei RAID 1 eine Festplatte aus dem RAID-System entnehmen, einfach in einen anderen Rechner verbauen und anschließend dort problemlos auf die Daten zugreifen kann (die Festplatte sich dann wie eine herkömmlich beschriebene verhält).

Panasonic
2009-10-04, 10:32:18
Ein Raid 0 dient der Sicherstellung der Datenverfügbarkeit / Datensicherheit (nicht Datensicherung), es wäre also extrem unlogisch, wenn man dem Controller erlauben würde, beide Platten nicht Synchron zu behandeln.

Avalox
2009-10-04, 11:14:15
genauso ist es auch. bei raid1 gibt es auch genau 0 Fehlerkorrekturdaten, daher wird hier auch überhaupt nichts verglichen. eben aus dem grund weil der controller nicht in der lage ist zu bestimmen welche daten ok sind und welche nicht. das würde böse ausgehen wenn der controller mal auf gut glück bei einer 50:50 chance automatisch einen rebuild mit einer eventuell zusätzlich angeschlossenen "hot-spare"-platte versuchen würde.

Du gehst hier zwei Irrungen nach.

Zum einen ist kein RAID System der Welt in der Lage unter diesen Umständen zu erkennen, welches Festplatte die korrekten Daten enthält. Es wird schlicht ein Mismatch festgestellt.
Ausserdem gehst du davon aus, dass ein RAID 1 Array mit 2 Festplatten aufgebaut sein muss.
Gute RAID 1 Arrays haben mehr als zwei sich spiegelnde Festplatten. In der Musikbranche z.B. nicht unüblich, wo sehr viel mit kreativen und nicht rekonstruierbaren Datenquellen gearbeitet wird.

Das sind aber alles Regionen von Leistungen und Funktionen, welche von einfachen oder gar Heimlösungen nicht geboten werden.

Der erste Schritt ist es einen solchen Fehler, als Fehler zu erkennen, um dann z.B. von einer Datensicherung Daten zu rekonstruieren.


Soweit ich das recherchieren konnte, werden bei RAID 1 keine Paritätsinformationen geschrieben.

Natürlich werden keine geschrieben. Aber nur aus dem Grund weil bei RAID 1 gar keine Paritätsinformationen notwendig sind. Statt der Paritätsdaten werden ja die unveränderten Originaldaten redundant geschrieben.
Deshalb ist ja RAID 1 z.B. auch bei entsprechender Auslegung unempfindlich, wenn mehr als eine Festplatte gleichzeitig sich verabschiedet, oder wenn halt Datenunterschiede zwischen Redundanz- und Originaldatum aufgetreten sind. Deshalb ist RAID 1 ja auch das sicherste aller RAID Level.

Darkstar
2009-10-04, 14:12:20
Hinweis Auf der HDD stehen nicht die echten Daten sondern ein codierter und per mehrstufigem ECC gesicherter Datenstrom.Entweder habe ich Dich falsch verstanden oder die anderen Poster widersprechen Dir in diesem Punkt. Hast Du eine Quelle für Deine Aussage?Zum einen ist kein RAID System der Welt in der Lage unter diesen Umständen zu erkennen, welches Festplatte die korrekten Daten enthält. Es wird schlicht ein Mismatch festgestellt.Wenn man den Spiegelungsmodus von ZFS (http://de.wikipedia.org/wiki/ZFS_(Dateisystem)) benutzt (dieser entspricht in etwa einem herkömmlichen RAID 1), kann man erkennen, welche Festplatte den Fehler meldet. Es werden dann die Daten von der intakten Festplatte gelesen. Das liegt daran, daß ZFS generell Prüfsummen für die abgelegten Dateien anlegt und Volume Manager und Dateisystem bei dieser Art der Spiegelung von derselben Software verwaltet werden. Für Windows-Nutzer ist das gegenwärtig mangels Verfügbarkeit von ZFS für ihr Betriebssystem natürlich noch uninteressant.

Avalox
2009-10-04, 14:41:39
Das liegt daran, daß ZFS generell Prüfsummen für die abgelegten Dateien anlegt und Volume Manager und Dateisystem bei dieser Art der Spiegelung von derselben Software verwaltet werden.

Was macht das System, wenn die Prüfsumme auf beiden Platten völlig mit den geschriebenen Daten übereinstimmt und dementsprechend unterschiedlich ist?

Man wird immer theoretische Fehler konstruieren können, welche nicht eindeutig erkennen lassen, welches Datum nun das richtige ist. Man verschiebt ja nur die Wahrscheinlichkeit des Auftretens solch eines Fehlers.

Natürlich werden auch bei bei RAID Systemen überwiegend Fehler auftreten, welcher eindeutig eine der Quellen als Fehlerhaft erkennt. Das ist ja der Sinn der Sache.

Entweder habe ich Dich falsch verstanden oder die anderen Poster widersprechen Dir in diesem Punkt.

Doch klar werden Daten immer mit ECC auf die Festplatte geschrieben. Das ist doch der Kern des Problems. So lassen sich eben grade keine Fehler erkennen, welche dadurch zustande kommen dadurch, dass der Controller die falschen Daten schon aufbereitet.

klutob
2009-10-04, 15:26:43
Was macht das System, wenn die Prüfsumme auf beiden Platten völlig mit den geschriebenen Daten übereinstimmt und dementsprechend unterschiedlich ist?


Wie soll das mit ZFS passieren können?

Avalox
2009-10-04, 16:15:46
Wie soll das mit ZFS passieren können?

Absichtlich, oder durch einen Systemfehler z.B.
Ist natürlich alles etwas an den Haaren herangezogen. Es geht halt immer nur um Wahrscheinlichkeiten.

Gast
2009-10-04, 17:27:34
Entweder habe ich Dich falsch verstanden oder die anderen Poster widersprechen Dir in diesem Punkt. Hast Du eine Quelle für Deine Aussage?

Hallo, du hats mich falsch verstanden. Bei RAID-1 steht natürlich auf beiden HDDs der gleiche Datenstrom, da dieser aber codiert und ECC gesichert ist, bekommt der Controller (bzw. die HDD selbst) raus auf welcher HDD Unsinn steht.

Daher wenn du einen Sketor auf die logische HDD des Raids schreibst, schiebt der Controller diesen auf beide HDDs. Diese codieren die Daten laut ihrerem Codierverfahren (siehe Datenblatt der HDD) und schreiben diese Daten auf die Platter. Sollte auf der HDD etwas falsches stehen, bemerkt diese das beim lesen und meldet es dem Controller. Dieser nimmt dann die Daten der anderen HDD.

Was ZFS macht ist "einafches" Softwareraid, nur ohne Controller.

Einfaches umhängen der HDDs geht nur bei einfachen (billigst) Softwareraid Controllern. "Echte" Controller schreiben eine Beschreibungsstrucktur auf die HDD, die meist nur die Controller dieser Serie oder dieses Herstellers lesen können.

mfg

Darkstar
2009-10-04, 20:14:32
Hallo, du hats mich falsch verstanden. Bei RAID-1 steht natürlich auf beiden HDDs der gleiche Datenstrom, da dieser aber codiert und ECC gesichert ist, bekommt der Controller (bzw. die HDD selbst) raus auf welcher HDD Unsinn steht.

Daher wenn du einen Sketor auf die logische HDD des Raids schreibst, schiebt der Controller diesen auf beide HDDs. Diese codieren die Daten laut ihrerem Codierverfahren (siehe Datenblatt der HDD) und schreiben diese Daten auf die Platter. Sollte auf der HDD etwas falsches stehen, bemerkt diese das beim lesen und meldet es dem Controller. Dieser nimmt dann die Daten der anderen HDD.

Was ZFS macht ist "einafches" Softwareraid, nur ohne Controller.

Einfaches umhängen der HDDs geht nur bei einfachen (billigst) Softwareraid Controllern. "Echte" Controller schreiben eine Beschreibungsstrucktur auf die HDD, die meist nur die Controller dieser Serie oder dieses Herstellers lesen können.

mfgDanke für die Ausführungen, jetzt ist mir klar, wie Du es gemeint hast. :up:

Dann fasse ich nochmal kurz zusammen:
Auf unterster Ebene hat jede Festplatte eine ECC-Fehlerkorrektur, die einem Fehler meldet, wenn z. B. die Daten eines Sektors auf der Oberfläche nicht mehr korrekt gelesen werden können. Ein herkömmliches RAID-1-System kann erkennen, wenn eine Festplatte komplett ausfällt oder wenn eine Festplatte Fehler dieser Art meldet. Ein solches System kann gegenüber der ZFS-Spiegelung allerdings nicht erkennen, wenn die Daten bereits vor dem Schreiben korrumpiert wurden, also eine Festplatte andere Daten vom Controller zum Schreiben erhalten würde als die zweite. Beim Lesen stände der Controller dann vor dem Dilemma, daß beide Festplatten aus ihrer Sicht korrekte, aber unterschiedliche Daten liefern.

Gast
2009-10-04, 20:31:18
Hallo, fast.

Die HDD erkennt ob Unsinn auf ihr steht. -> Der Controller nimmt die validen Daten.

Wenn aber in irgendeinem Speicher der kein ECC hat (z.B. HDD Cache oder Schreibcache des OS) ein Bit kippt, würden die HDDs jeweils gültige Bitströme erzeugen und diese auf die HDDs schreiben, wenn der Controller (oder das OS bzw. ZFS) beide HDDs liest. Hat man in beiden Fällen Datensalat.

Wie genau reagiert wird, hängt vom System ab. Da die meisten System aus Performancegründen die Daten nicht vergleichen, ist davon auszugehen, das die Daten von der HDD genommen werden, die zuerst antwortet.

Gute Controller schreiben auch Timestamps in die Beschreibungsstruckturen der HDDs und können im Zweifelsfall die HDD mit den neueren Daten nehmen. (Ausfallszenario bzw. lockers Datenkabel und ehemaliger Spiegel weiterverwendet).

mfg

Gast
2009-10-04, 20:33:14
Hallo, ich nochmal.

Auf normalen RAIDs kommt ja ein Dateisystem zum Einsatz, diese führt ein Log (Journal), somit weis das OS auch welche Daten valid sind.

mfg

StefanV
2009-10-04, 22:02:39
http://www.hardwaresecrets.com/imageview.php?image=5337

Das Diagramm sollten sich manche mal gut merken.
Ich quote das einfach mal...

Darkstar
2009-10-04, 22:20:54
Hallo, fast.

Die HDD erkennt ob Unsinn auf ihr steht. -> Der Controller nimmt die validen Daten.Das kann sie nicht. Eine Festplatte weiß nichts über die Organisation der Daten, die auf sie geschrieben werden.Hallo, ich nochmal.

Auf normalen RAIDs kommt ja ein Dateisystem zum Einsatz, diese führt ein Log (Journal), somit weis das OS auch welche Daten valid sind.

mfgHier umgekehrt: Das Betriebssystem weiß nichts davon, auf welcher Festplatte die richtigen Daten lagern. Es muß sich auf die Informationen verlassen, die das RAID-System liefert. Es kann nur feststellen, ob die Daten aus Dateisystemsicht richtig sind oder nicht.Wenn aber in irgendeinem Speicher der kein ECC hat (z.B. HDD Cache oder Schreibcache des OS) ein Bit kippt, würden die HDDs jeweils gültige Bitströme erzeugen und diese auf die HDDs schreiben, wenn der Controller (oder das OS bzw. ZFS) beide HDDs liest. Hat man in beiden Fällen Datensalat.Ich denke nicht, daß dies in diesem Umfang auch für ZFS gilt (zumindest Fehler im HDD Cache stellen kein Problem dar). Bei ZFS wird die Prüfsumme bereits vor dem Schreiben berechnet und zusammen mit den Nutzdaten weggeschrieben. Kippt dabei ein Bit, ist dies für ZFS beim nächsten Lesen leicht zu erkennen.