私は Linux でハイブリッド RAID の実験をいくつか行っています。テストの内容は次のとおりです。
2x256GB SSD、RAID 0 ( /dev/md1
)
2x256GB HDD、RAID 0 ( /dev/md2
)
次に、md1 と md2 を RAID 1 ( /dev/md127
) にして、低速 HDD (md2) を --write-mostly としてマークしました。
基本的に、私の目標は、SSD から最大限のパフォーマンスとディスク スペースを引き出すことですが、同時にドライブ障害から「安全」であることも重要です。SSD の 1 つが失われると、低速の HDD に頼らざるを得なくなることは理解していますが、すべてのデータを失うことに比べれば、その代償は払う価値があります。それに、壊れた SSD が交換され、RAID が修復されるまでの数時間しかかかりません。
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
ここで、3 つの RAID デバイスで簡単なスループット ベンチマークを実行すると、驚くべき結果が得られます。
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は870 MB/秒を実現
RAID 0 HDDは270 MB/秒
RAID 1 HYBRID では 437 MB/秒になります。
HDD RAID は --write-mostly としてマークされているので、純粋な読み取りテストでは HDD にまったく触れないと思われますが、ここで何が起こっているのでしょうか? ハイブリッド ベンチマークでは、純粋な RAID 0 SSD と同様の結果が得られると想定されます。
一見すると、HDDが読み取りに部分的に使用されているため、RAIDの速度が低下しているように見えます(HDDで読み取りを行わないように指示したにもかかわらず)。ただし、hdparmベンチマークを実行中にHDDでファイルコピーを実行すると、同じ結果が得られます。HDDがだった使用した場合、ベンチマーク中に HDD が他のタスクに使用されていたら、ベンチマークの結果はさらに遅くなると思われます。
Linux RAID の専門家が私の問題を明らかにしてくれることを願っています。