ハイブリッドRAID(SSD+HDD)は予期せぬ結果をもたらす

ハイブリッドRAID(SSD+HDD)は予期せぬ結果をもたらす

私は 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 の専門家が私の問題を明らかにしてくれることを願っています。

関連情報