alchemy
Goto Top

Raid 5 ungerade Anzahl Platten

Hallo in die Runde,

ich benötige einmal euer Schwarmwissen.

Wir hatten eben die Diskussion bei der Konfiguration eines Servers, ob folgende Regel noch gilt:

Raid 5 immer nur mit ungeraden Anzahl an Platten

Ist das zu Zeiten von SSD und Raidcontrollern mit der Leistung eines PCs noch ein aktuelles Thema? Kann jemand den Hintergrund der Regel erläutern?

Ich hab das damals Anfang der 2000er auch noch so gelernt, allerdings nichts Stichhaltiges bei meiner Googlesuche eben gefunden was es technisch untermauert.

Ich freue mich auf den Austausch.

VG

Content-ID: 668640

Url: https://administrator.de/forum/raid-5-ungerade-anzahl-platten-668640.html

Ausgedruckt am: 21.12.2024 um 16:12 Uhr

maretz
maretz 08.10.2024 um 12:45:28 Uhr
Goto Top
warum sollte das so sein? es ist dem controller jetzt relativ egal ob der auf platte 4, 5 oder 17 die parität schreibt, der muss die eh berechnen... Es ist eben auch egal ob du 4, 5 oder 17 platten beim raid5 hast - EINE darf ausfallen, daher eben mind. 3, fällt die zweite aus hast du die a-karte...
niraxx
niraxx 08.10.2024 um 12:48:48 Uhr
Goto Top
ist der Rechenaufwand des Raid-Controllers eigentlich höher, wenn man 10 Festplatten zu einem Raid 5 aufbaut anstatt nur 3?
Alchemy
Alchemy 08.10.2024 um 12:52:35 Uhr
Goto Top
Warum sollte das so sein, dass ist genau die Frage.

Die grundsätzliche Funktionsweise ist mir schon klar. Allerdings hält sich ja hart das Gerücht, dass die Zahl ungerade sein sollte. Nur finde ich keine stichhaltige Erklärung dafür.

z.B. hier:

IONOS Raid 5 Erklärung

Zitat:

"Typischerweise wählt man im Übrigen eine ungerade Zahl an Datenträgern, also drei, fünf, sieben usw."
Spirit-of-Eli
Spirit-of-Eli 08.10.2024 um 13:33:47 Uhr
Goto Top
Zitat von @Alchemy:

Warum sollte das so sein, dass ist genau die Frage.

Die grundsätzliche Funktionsweise ist mir schon klar. Allerdings hält sich ja hart das Gerücht, dass die Zahl ungerade sein sollte. Nur finde ich keine stichhaltige Erklärung dafür.

z.B. hier:

IONOS Raid 5 Erklärung

Zitat:

"Typischerweise wählt man im Übrigen eine ungerade Zahl an Datenträgern, also drei, fünf, sieben usw."

Wo hält sich das Gerücht? Das ist schlicht Käse wenn man den Mechanismus verstanden hat.
Ich würde auch eher Raid6 nutzen oder zumindest ne Hot-Spare hinzufügen.

Aber am besten spart man sich das komplett und nutzt zfs usw.
Lochkartenstanzer
Lochkartenstanzer 08.10.2024 um 13:34:11 Uhr
Goto Top
Zitat von @Alchemy:

Hallo in die Runde,

ich benötige einmal euer Schwarmwissen.

Raid 5 immer nur mit ungeraden Anzahl an Platten


Das ist Grundlagenwissen:

Raid5 mit mindestens 3 Platten!

Ob das eine gerade oder ungerade Anzahl ist egal. Es kann sein, daß da einige Controller spezielle Vorlieben haben, aber das Verfahren legt sich nicht auf die Anzahl fest. Was natürlich sein kann, ist, das bei der falschen Wahl des Prüfsummenalgorithmus die eine Variante weniger performant ist als der andere.

lks
ipzipzap
ipzipzap 08.10.2024 aktualisiert um 13:47:52 Uhr
Goto Top
Zitat von @Alchemy:

Raid 5 immer nur mit ungeraden Anzahl an Platten

Die Aussage habe ich in über 30 Jahren IT noch nie gehört oder gelesen. Wo soll das herkommen?

Ein RAID 5 braucht mindestens drei Platten, danach ist die Anzahl egal (bzw. maximal 16).

Wir hatten eben die Diskussion bei der Konfiguration eines Servers, ob folgende Regel noch gilt:

Diese Regel gab es noch nie.


cu,
ipzipzap
ukulele-7
ukulele-7 08.10.2024 aktualisiert um 13:54:34 Uhr
Goto Top
Also nach meinem Verständnis ist der Rechenaufwand für die Parität der selbe, unabhängig von der Anzahl der Disks. Der Speicherbedarf sowieso. Ich kann mich auch nicht entsinnen irgendwo mal gelesen zu haben, das eine ungrade Anzahl an Disks bzw. eine grade Anzahl an Daten-Disks schneller oder sinnvoller ist, in einem RAID5. Auch eine Suche im Netz findet zwar die Behauptung, aber nicht die Quelle dafür:

https://community.spiceworks.com/t/raid-5-performance-with-odd-or-even-n ...
https://serverfault.com/questions/365903/why-does-raid5-with-an-odd-numb ...

Wenn man sich jetzt ein physisches XOR-Logikgatter bildlich vorstellt, gibt es eventuell eine "Erklärung". Wenn man XOR immer nur mit zwei Datenbits gleichzeitig macht, muss man bei mehr als zwei Datenplatten mehr als ein XOR Gatter "zeichnen". Man würde das vermutlich wie eine Pyramide anordnen bei der am Ende alle Datenbits mehrere XOR-Gatter durchlaufen bis am Ende genau ein Parität-Bit heraus kommt. Wenn ich jetzt eine ungrade Anzahl an Datenbits habe, dann "durchlaufen" nicht alle Bits die selbe Anzahl an XOR-Gattern. Da würde ich die ursprüngliche "Logik" hinter der Behauptung suchen.

Natürlich kann ich ein XOR-Gatter, physisch oder virtuell, auch mit mehr Eingängen für Datenbits bauen - also ich wüsste nicht, warum nicht.
user217
user217 08.10.2024 um 14:33:15 Uhr
Goto Top
Bei SSDs die i.d. Regel sowieso schon mehr leserate als schreibrate haben würde ich davon absehen auch noch ein Raid zu wählen das sich noch mehr auf lese performance konzentriert. Ich mache grundsätzlich R10 und hatte außer leicht erhöhten Datenträgerkosten nie engpässe damit, mit R5 schon face-smile
Alchemy
Alchemy 08.10.2024 um 15:01:38 Uhr
Goto Top
Zitat von @ukulele-7:

Also nach meinem Verständnis ist der Rechenaufwand für die Parität der selbe, unabhängig von der Anzahl der Disks. Der Speicherbedarf sowieso. Ich kann mich auch nicht entsinnen irgendwo mal gelesen zu haben, das eine ungrade Anzahl an Disks bzw. eine grade Anzahl an Daten-Disks schneller oder sinnvoller ist, in einem RAID5. Auch eine Suche im Netz findet zwar die Behauptung, aber nicht die Quelle dafür:

https://community.spiceworks.com/t/raid-5-performance-with-odd-or-even-n ...
https://serverfault.com/questions/365903/why-does-raid5-with-an-odd-numb ...

Wenn man sich jetzt ein physisches XOR-Logikgatter bildlich vorstellt, gibt es eventuell eine "Erklärung". Wenn man XOR immer nur mit zwei Datenbits gleichzeitig macht, muss man bei mehr als zwei Datenplatten mehr als ein XOR Gatter "zeichnen". Man würde das vermutlich wie eine Pyramide anordnen bei der am Ende alle Datenbits mehrere XOR-Gatter durchlaufen bis am Ende genau ein Parität-Bit heraus kommt. Wenn ich jetzt eine ungrade Anzahl an Datenbits habe, dann "durchlaufen" nicht alle Bits die selbe Anzahl an XOR-Gattern. Da würde ich die ursprüngliche "Logik" hinter der Behauptung suchen.

Natürlich kann ich ein XOR-Gatter, physisch oder virtuell, auch mit mehr Eingängen für Datenbits bauen - also ich wüsste nicht, warum nicht.

Na das klingt so technisch, das muss die Lösung sein face-smile Zumindest erschließt sich mir die Begründung.

Dann halten wir fest, dass es schon irgendwie seinen Sinn hat(te) aber vermutlich mit der heutigen Technik keine messbaren Auswirkungen mehr. Ansonsten hätten die Hersteller an irgend einer Stelle schon irgendwie drauf hingewiesen.

Danke an Alle für den Input
kpunkt
kpunkt 08.10.2024 um 15:35:43 Uhr
Goto Top
Tatsächlich scheint es beim Data Striping Fälle zu geben, bei denen eine ungerade Anzahl von Platten schneller ist.
https://www.perplexity.ai/search/why-do-certain-stripe-sizes-al-n8N.HGm4 ...

Daher wird Ionos das so ausgedrückt haben.
Penny.Cilin
Penny.Cilin 08.10.2024 um 16:12:32 Uhr
Goto Top
Gude,

bei Wikipedia gibt es auch eine detaillierte Erläuterung bzgl. RAID.

<Zitat:>
Einfluss der Anzahl der Festplatten
Bei RAID-5-Systemen sind Konfigurationen mit 3 oder 5 Festplatten häufig anzutreffen – das ist kein Zufall, denn die Anzahl der Festplatten hat einen Einfluss auf die Schreibleistung.

Einfluss auf die Read-Performance
Sie wird weitestgehend durch die Anzahl der Festplatten, aber auch durch Cache-Größen bestimmt, mehr ist hier immer besser.
/Zitatende>

Gruss Penny.
ukulele-7
ukulele-7 08.10.2024 um 16:17:32 Uhr
Goto Top
Zitat von @kpunkt:

Tatsächlich scheint es beim Data Striping Fälle zu geben, bei denen eine ungerade Anzahl von Platten schneller ist.
https://www.perplexity.ai/search/why-do-certain-stripe-sizes-al-n8N.HGm4 ...
Das Blocksize-Argument ist grundsätzlich schlüssig aber tatsächlich sagt Perplexity es selbst: Es geht dabei dann nicht um grade/ungrade sondern das die Anzahl der Datenlaufwerke einer 2er Potenz entspricht:
Practical Recommendations
For RAID 5, start with 3, 5, or 9 drives.
Damit wären 6 Datenlaufwerke ähnlich "problematisch" wie 5.

Aber auch dieser Grund scheint eher ein theoretischer zu sein und sich praktisch nicht auszuwirken.
Alchemy
Lösung Alchemy 08.10.2024 um 23:15:10 Uhr
Goto Top
Auf Wikipedia hätte man auch mal alleine kommen können. Hier steht schön beschrieben, warum Raid 5 mit einer geraden Anzahl von Platten suboptimal ist und es hat (so wie es klingt) auch heute noch Relevanz.

Zitat Wikipedia:

Im Unterschied zur Read-Performance ist das Ermitteln der Write-Performance bei RAID 5 deutlich komplizierter und hängt sowohl von der zu schreibenden Datenmenge, als auch von der Anzahl der Platten ab.[4] Ausgehend von Festplatten mit weniger als 2 TB Plattenplatz, ist die atomare Blockgröße (auch Sektorgröße genannt) der Platten häufig 512 Byte (siehe Festplattenlaufwerk). Geht man weiter von einem RAID-5-Verbund mit 5 Platten (4/5 Daten und 1/5 Parität) aus, so ergibt sich folgendes Szenario: Will eine Anwendung 2.048 Byte schreiben, wird in diesem günstigen Fall auf alle 5 Platten genau je ein Block zu 512 Byte geschrieben, wobei einer dieser Blöcke keine Nutzdaten enthält. Im Vergleich zu RAID 0 mit 5 Platten ergibt sich daraus eine Effizienz von 80 % (bei RAID 5 mit 3 Platten wären es 66 %). Möchte eine Anwendung nur einen Block von 512 Byte schreiben, so ergibt sich ein ungünstigerer Fall, es müssen zuerst der abzuändernde Block und der Paritätsblock eingelesen werden, danach wird der neue Paritätsblock berechnet und erst dann können beide 512-Byte-Blöcke geschrieben werden. Das bedeutet einen Aufwand von 2 Lesezugriffen und 2 Schreibzugriffen, um einen Block zu speichern. Geht man vereinfacht davon aus, dass Lesen und Schreiben gleich lange dauern, so beträgt die Effizienz in diesem ungünstigsten Fall, dem sogenannten RAID 5 write Penalty, noch 25 %. In der Praxis wird dieser Worst-Case-Fall bei einem RAID 5 mit 5 Platten aber kaum eintreten, denn Dateisysteme haben häufig Blockgrößen von 2 kB, 4 kB und mehr und zeigen daher praktisch ausschließlich das Well-Case-Schreibverhalten. Gleiches gilt analog für RAID 5 mit 3 Platten. Unterschiedlich verhält sich hingegen etwa ein RAID-5-System mit 4 Platten (3/4 Daten und 1/4 Parität), soll hier ein Block von 2.048 Byte geschrieben werden, sind zwei Schreibvorgänge notwendig, es werden dann einmal 1.536 Byte mit Well-Case-Performance geschrieben und noch einmal 512 Byte mit Worst-Case-Verhalten. Diesem Worst-Case-Verhalten wirken zwar Cache-Strategien entgegen, aber dennoch ergibt sich hieraus, dass bei RAID 5 möglichst ein Verhältnis von zwei, vier oder auch acht Platten für Nutzdaten plus einer Platte für Paritätsdaten eingehalten werden sollte. Daher haben RAID-5-Systeme mit 3, 5 oder 9 Platten ein besonders günstiges Performanceverhalten.
maretz
maretz 09.10.2024 um 05:04:19 Uhr
Goto Top
nun - das problem ist aber doch bei dem Beispiel: wenn du halt ca. 2048 Bytes hast is klar - sofern du Blöcke von 512 Byte pro Platte hast wären 4 +1 Platte optimal. Aber: Jetzt hast du nicht 2048 Byte zu schreiben sondern 2600 weil die Datengrösse nunmal so war. Dann hättest du bei 5+1 Platte doch genau denselben Faktor: 5 Platten je 512 Byte schreiben, 1 für Parität... hast du jetzt 4+1 muss also irgendeine Platte 2x schreiben...

Dazu kommt das nahezu jeder Speicher entweder nen Cache hat (oder nur aus RAM besteht), was wiederrum das in der Praxis vermutlich recht gut abfängt da du ja kaum mal auf die Platte (zumindest bei rotierenden Disks) direkt schreibst. Wenn man dann noch ein reales System annimmt was meistens mehr liest als schreibt (egal ob es jetzt nen Windows beim Start ist, ne Datenbank,...) dann könnte man sogar noch überlegen ob "Mehr Platten" nicht auch "Mehr Datendurchsatz" bedeutet.

Es wäre daher höchstens mal interessant in wiefern sich das in der realität wirklich auswirkt... denn klar, theoretisch kann ich viel bauen, wenn es aber in der Praxis am Ende sich aufhebt ist das ganze eben eher was für ne lange Winternacht für den Spass ;)
Alchemy
Alchemy 09.10.2024 um 10:51:46 Uhr
Goto Top
Hab in einem anderen Forenbeitrag folgendes gefunden, was in dem Kontext Sinn macht.

Mehr Platten = mehr Leistung (Da die Last auf mehr Platten verteilt wird, wenn der Controller es schafft)
Gerade Anzahl Platten = weniger Leistung

Damit soll sich grob folgende Faustformel zur Geschwindigkeit ergeben:

3=4
4<5
5=6
... usw

nun - das problem ist aber doch bei dem Beispiel: wenn du halt ca. 2048 Bytes hast is klar - sofern du Blöcke von >512 Byte pro Platte hast wären 4 +1 Platte optimal. Aber: Jetzt hast du nicht 2048 Byte zu schreiben sondern 2600 >weil die Datengrösse nunmal so war. Dann hättest du bei 5+1 Platte doch genau denselben Faktor: 5 Platten je 512 >Byte schreiben, 1 für Parität... hast du jetzt 4+1 muss also irgendeine Platte 2x schreiben...

Naja, so funktioniert das glaub nicht. Die Blockgröße bei drehenden Platten ist 512 Byte. SSDs arbeiten meistens mit 4KB Blöcken, emulieren aber auf Wunsch die 512 Byte um die Kompatibilität zu gewährleisten. Jedenfalls gibt das Dateisystem vor, in welcher Blockgröße es gern die Daten hätte.

Es geht nicht um den letzten Block, welcher vermutlich immer aufgesplittet werden muss, sondern um die ganzen Blöcke davor wenn man zB mal 10MB schreiben muss, da auch die 4k Blöcke nicht sauber durch 3/5/7... (Datenplatten) geteilt werden können und damit jedes mal diesen doppelten Schreibaufwand produzieren.

Ob der Cache den Effekt jetzt abfängt, hängt glaub von der Intelligenz der Raidcontroller ab. Dazu hab ich aber nun gar nichts mehr gefunden.
Spirit-of-Eli
Spirit-of-Eli 09.10.2024 um 12:08:38 Uhr
Goto Top
Die Blockgröße kann ich doch frei beim sizing des Dateisystems wählen..
Spirit-of-Eli
Spirit-of-Eli 09.10.2024 um 12:10:20 Uhr
Goto Top
Das ganze Problem tritt immer dann auf wenn ich viele kleine Datei schreibe oder lese und/oder wenn die Daten stark fragmentiert sind.

Nur das SSD diesen Faktor eher relativieren.