Ich mache einige Experimente mit Hybrid-RAID unter Linux. Mein Test besteht aus Folgendem:
2x256GB SSD im RAID 0 ( /dev/md1
)
2x256GB HDD im RAID 0 ( /dev/md2
)
Dann habe ich md1 und md2 zu einem RAID 1 ( /dev/md127
) gemacht und die langsame Festplatte (md2) als --write-mostly markiert.
Im Wesentlichen besteht mein Ziel darin, die maximale Leistung UND den maximalen Speicherplatz aus meinen SSDs herauszuholen, aber gleichzeitig vor Laufwerksausfällen „sicher“ zu sein. Ich verstehe, dass der Verlust einer der SSDs bedeuten würde, dass ich auf langsame Festplatten zurückgreifen müsste, aber das ist ein Preis, den ich im Vergleich zum Verlust aller Daten zu zahlen bereit bin. Außerdem würde es nur ein paar Stunden dauern, bis die defekten SSDs ersetzt und das RAID repariert werden.
root@s1 / # cat /proc/mdstat
Personalities : [raid0] [raid1] [linear] [multipath] [raid6] [raid5] [raid4] [raid10]
md2 : active raid0 sdd1[1] sdc1[0]
498802688 blocks super 1.2 512k chunks
md127 : active raid1 md1[2] md2[1](W)
498671616 blocks super 1.2 [2/2] [UU]
bitmap: 1/4 pages [4KB], 65536KB chunk
md1 : active raid0 sdb2[1] sda2[0]
498802688 blocks super 1.2 512k chunks
Wenn wir nun einen einfachen Durchsatz-Benchmark auf den drei RAID-Geräten ausführen, erhalten wir überraschende Ergebnisse:
root@s1 / # hdparm -t /dev/md1
/dev/md1:
Timing buffered disk reads: 2612 MB in 3.00 seconds = 870.36 MB/sec
root@s1 / # hdparm -t /dev/md2
/dev/md2:
Timing buffered disk reads: 812 MB in 3.01 seconds = 270.14 MB/sec
root@s1 / # hdparm -t /dev/md127
/dev/md127:
Timing buffered disk reads: 1312 MB in 3.00 seconds = 437.33 MB/sec
RAID 0 SSD bietet 870 MB/s
RAID 0 HDD bietet 270 MB/s
RAID 1 HYBRID bietet 437 MB/Sek.
Da der HDD-RAID als --write-mostly gekennzeichnet wurde, würde ich annehmen, dass ein reiner Lesetest die HDD überhaupt nicht berühren würde. Was ist also hier los? Ich würde annehmen, dass der Hybrid-Benchmark ähnliche Ergebnisse liefern würde wie die reine RAID 0-SSD.
Auf den ersten Blick sieht es so aus, als würde die Festplatte das RAID irgendwie verlangsamen, da sie teilweise für das Lesen verwendet wird (obwohl ich ihr gesagt habe, dass sie keine Lesevorgänge auf der Festplatte durchführen soll). Wenn ich jedoch eine Dateikopie auf den Festplatten laufen lasse, während ich den hdparm-Benchmark ausführe, erhalte ich das gleiche Ergebnis! Wenn die Festplattenwarverwendet würde, würde ich annehmen, dass der Benchmark sogar noch langsamere Ergebnisse liefern würde, wenn die Festplatten während des Benchmarks für andere Aufgaben verwendet würden.
Ich hoffe, dass ein Linux-RAID-Experte Licht in mein Problem bringen kann.