Erhöht RAID1 die Leistung mit Linux mdadm?

Erhöht RAID1 die Leistung mit Linux mdadm?

Ich habe ein billiges 2-Bay-NAS mit einer 2TB-Festplatte. Um gegen Festplattenausfälle gewappnet zu sein, überlege ich, eine zweite 2TB-Festplatte zu kaufen und sie in RAID1 mit Linux mdadm einzubauen. Das Dateisystem ist ext4.

Wird dadurch die Leistung des NAS verbessert oder verschlechtert? Und wie sieht es mit der Lese- bzw. Schreibleistung aus?

Es scheint im Internet viele Meinungen hierzu zu geben, aber keinen Konsens.

Danke.

Bearbeiten:

Ich habe also bereits drei verschiedene Antworten erhalten: „ein gutes Stück schneller“, „Sie werden es nicht bemerken“ und „die Leistung wird eher nachlassen“. (Mich interessiert hauptsächlich die Leseleistung.) Wikipedia sagt: „Die Leseleistung kann ungefähr um ein lineares Vielfaches der Anzahl der Kopien steigen.“ Welche ist es?

Bearbeitung 2:

Ich habe zunehmend Belege dafür gefunden, dass RAID1 die Leseleistung steigert, unter anderem in der Manpage von MD:

Änderungen werden parallel auf alle Geräte geschrieben. Daten werden von einem beliebigen Gerät gelesen. Der Treiber versucht, Leseanforderungen auf alle Geräte zu verteilen, um die Leistung zu maximieren.

Ich habe auch MDs RAID10 mit entdeckt --layout=f2, das die Redundanz von RAID1 mit der Leseleistung von RAID0 bietet und mit nur zwei Laufwerken verwendet werden kann. Die Schreibleistung ist jedoch reduziert, da bei einem sequentiellen Schreiben beide Laufwerke zwischen weit voneinander entfernten Teilen des Laufwerks hin- und hersuchen müssen. man mdWeitere Informationen.

Antwort1

Ja,Die Linux-Implementierung von RAID1 beschleunigt Festplattenlesevorgänge um den Faktor zwei, solange zwei separate Festplattenlesevorgänge gleichzeitig ausgeführt werden.Das bedeutet, dass das Lesen einer 10 GB großen Datei auf RAID1 nicht schneller ist als auf einer einzelnen Festplatte, das Lesen von zwei unterschiedlichen 10 GB großen Dateien* jedoch schneller ist.

Um dies zu demonstrieren, lesen Sie einfach einige Daten mit dd. Bevor Sie irgendetwas tun, löschen Sie den Festplatten-Lesecache mit sync && echo 3 > /proc/sys/vm/drop_caches. Andernfalls hdparmwerden superschnelle Lesevorgänge behauptet.

Einzelne Datei:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

Zwei Dateien:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

Das Lesen von 10 GB Daten dauerte 65 Sekunden, während das Lesen von 10 GB + 10 GB = 20 GB Daten insgesamt 68,7 Sekunden dauerte, was bedeutetMehrfaches Lesen von Datenträgern profitiert erheblich von RAID1unter Linux. skip=$COUNTTeil ist sehr wichtig. Der zweite Prozess liest 10 GB Daten vom 10 GB-Offset.

Jareds Antwort und sshs Kommentare zuhttp://www.unicom.com/node/459sind falsch. Der Benchmark von dort beweist, dass Festplattenlesevorgänge nicht von RAID1 profitieren. Der Test wurde jedoch mit dem Benchmarking-Tool bonnie++ durchgeführt, das nicht zwei separate Lesevorgänge gleichzeitig durchführt. Der Autor gibt ausdrücklich an, dass bonnie++ nicht zum Benchmarking von RAID-Arrays verwendet werden kann (siehe Readme).

Antwort2

Ja, Sie erhalten eine Leistungssteigerung beim Lesen + Redundanz. Sie können sich das leicht vorstellen, da Sie Teile der Dateien gleichzeitig von zwei verschiedenen Festplatten lesen können, da sich die Dateien auf beiden Festplatten befinden.

Wenn der RAID-Controller seine Aufgabe richtig erfüllt, könnten Sie theoretisch eine Beschleunigung von O(n) erreichen.

Antwort3

Nein, Sie erhalten keine Vorteile beim Lesen von mdadm RAID1. Das habe ich mich vor einiger Zeit auch gefragt.

dstatzeigt die Festplattennutzung an, was bwm-ngbesonders in diesem Fall sehr hilfreich ist, da es die Lese-/Schreibnutzung auf separaten mdadm-RAID-Mitgliedern anzeigen kann. Drücken Sie einfach nein paar Mal (Weiter), um von den Schnittstellenstatistiken zu den Festplattenstatistiken zu wechseln. Wechseln Sie dann zu den Maximalwerten, um die tmaximalen Lese-/Schreibvorgänge von jeder Festplatte anzuzeigen. Sie werden Folgendes sehen:

Beim Schreiben auf das RAID1-Volume zeigt bwm-ng 2 x Schreibvorgänge an, wobei gleichzeitig auf 2 Festplatten geschrieben wird. Beim Lesen vom RAID1-Volume zeigt bwm-ng das Lesen von einem einzelnen Laufwerk (Array-Mitglied).

Antwort4

JAund NEIN gleichzeitig. Standardmäßig ist der RAID 1-Parameter „Read Ahead“ zu niedrig, um den Vorteil bei einer einzelnen Dateiübertragung zu bemerken, Sie müssen ihn jedoch nur anpassen.

Um Ihren Wert zu überprüfen, geben Sie Folgendes ein:

# blockdev --getra /dev/md0
256

Jetzt können Sie Read-Ahead (in 512-Byte-Sektoren) pro RAID-Gerät einstellen. Die Syntax lautet:

## Set read-ahead to 32 MiB ##
# blockdev --setra 65536 /dev/md0

In den meisten Fällen verdoppelt sich durch bloßes Festlegen dieses Parameters die Lesegeschwindigkeit einer einzelnen Datei (vorausgesetzt, beide Laufwerke sind gleich).

Hinweis: Dies gilt für alle RAID-Konfigurationen.

verwandte Informationen