Eigentlich denke ich, Wikipedia erklärt es besser als die eigentlichen Dokumente. Hier ist der Text aus dem Artikel.
Der Linux-Kernel-Software-RAID-Treiber (md genannt, für "multiple device") kann zum Aufbau eines klassischen RAID 1 + 0-Arrays verwendet werden, aber auch (seit Version 2.6.9) als Single Level [4] mit einigen interessanten Erweiterungen [ 5]. Das standardmäßige "Near" -Layout, bei dem jeder Chunk n-mal in einem k-Way-Stripe-Array wiederholt wird, entspricht der standardmäßigen RAID-10-Anordnung, erfordert jedoch nicht, dass n k geteilt wird. Zum Beispiel würde ein n2-Layout auf 2, 3 und 4 Laufwerken so aussehen:
2 drives 3 drives 4 drives
-------- ---------- --------------
A1 A1 A1 A1 A2 A1 A1 A2 A2
A2 A2 A2 A3 A3 A3 A3 A4 A4
A3 A3 A4 A4 A5 A5 A5 A6 A6
A4 A4 A5 A6 A6 A7 A7 A8 A8
.. .. .. .. .. .. .. .. ..
Das Beispiel mit 4 Laufwerken ist mit einem Standard-RAID-1 + 0-Array identisch, während das Beispiel mit 3 Laufwerken eine Software-Implementierung von RAID-1E ist. Das Beispiel mit zwei Laufwerken entspricht RAID 1. Der Treiber unterstützt auch ein "Fern" -Layout, bei dem alle Laufwerke in f Abschnitte unterteilt sind. Alle Blöcke werden in jedem Abschnitt wiederholt, jedoch um ein Gerät versetzt. Beispiel: f2-Layouts auf Arrays mit 2 und 3 Laufwerken sehen folgendermaßen aus:
2 drives 3 drives
-------- --------------
A1 A2 A1 A2 A3
A3 A4 A4 A5 A6
A5 A6 A7 A8 A9
.. .. .. .. ..
A2 A1 A3 A1 A2
A4 A3 A6 A4 A5
A6 A5 A9 A7 A8
.. .. .. .. ..
Dies ist für die Striping-Leistung eines gespiegelten Arrays ausgelegt. Sequentielle Lesevorgänge können gestreift werden, wie bei RAID-0, zufällige Lesevorgänge sind etwas schneller (möglicherweise 10-20% aufgrund der Verwendung der schnelleren äußeren Sektoren der Datenträger und geringerer durchschnittlicher Suchzeiten), und sequentielle und zufällige Schreibvorgänge sind ungefähr gleich leistungsfähig zu anderen gespiegelten Überfällen. Das Layout eignet sich gut für Systeme, bei denen häufiger gelesen wird als geschrieben, was auf vielen Systemen sehr häufig der Fall ist. Das erste 1 / f jedes Laufwerks ist ein Standard-RAID-0-Array. Auf diese Weise erhalten Sie Striping-Leistung auf einem gespiegelten Satz von nur 2 Laufwerken. Die Optionen nah und fern können gleichzeitig verwendet werden. Die Blöcke in jedem Abschnitt sind um n Geräte versetzt. Zum Beispiel speichert n2 f2 layout 2 × 2 = 4 Kopien von jedem Sektor, benötigt also mindestens 4 Laufwerke:
A1 A1 A2 A2 A1 A1 A2 A2 A3
A3 A3 A4 A4 A3 A4 A4 A5 A5
A5 A5 A6 A6 A6 A6 A7 A7 A8
A7 A7 A8 A8 A8 A9 A9 A10 A10
.. .. .. .. .. .. .. .. ..
A2 A2 A1 A1 A2 A3 A1 A1 A2
A4 A4 A3 A3 A5 A5 A3 A4 A4
A6 A6 A5 A5 A7 A8 A6 A6 A7
A8 A8 A7 A7 A10 A10 A8 A9 A9
.. .. .. .. .. .. .. .. ..
Ab Linux 2.6.18 unterstützt der Treiber auch ein Offset-Layout, bei dem jeder Streifen mehrmals wiederholt wird. Beispiel: o2-Layouts auf Arrays mit 2 und 3 Laufwerken sind wie folgt angeordnet:
2 drives 3 drives
-------- --------
A1 A2 A1 A2 A3
A2 A1 A3 A1 A2
A3 A4 A4 A5 A6
A4 A3 A6 A4 A5
A5 A6 A7 A8 A9
A6 A5 A9 A7 A8
.. .. .. .. ..
Hinweis: k ist die Anzahl der Laufwerke, n #, f # und o # sind Parameter in der Option mdadm --layout. Linux kann mit dem md-Treiber (0, 1, 4, 5, 6) auch andere Standard-RAID-Konfigurationen erstellen.
Das ist interessant und gut erklärt. Ein einfaches RAID1 bietet jedoch zumindest unter Linux-Software-RAID die Möglichkeit, mehrere Leser gleichzeitig mit einer sehr guten Leistung zu unterstützen:
Es sieht so aus, als wäre RAID10 in seinem nahezu passenden Layout besser für dieses Verhalten geeignet (Beschleunigen von nicht Single-Threaded-E / A wie RAID0, sondern von Multi-Threaded-E / A). n2f2 mit 4 Festplatten ähnelt RAID1 mit 4 Festplatten.
Das n2-Layout mit 4 Festplatten kann beides: die Leseleistung für einen einzelnen Thread verdoppeln und die Leseleistung für zwei Threads vervierfachen (wenn der Linux md RAID10-Scheduler gut implementiert ist, sollte ein Thread ein Paar und der andere einlesen das andere Paar).
Alles hängt davon ab, was Sie brauchen! Benchmarks habe ich noch nicht gemacht.
quelle