混合式 RAID (SSD+HDD) 帶來意想不到的結果

混合式 RAID (SSD+HDD) 帶來意想不到的結果

我正在 Linux 中對混合 RAID 進行一些實驗。我的測試包括以下內容:

2 個 256GB SSD,RAID 0 ( /dev/md1)

2 個 256GB 硬碟,RAID 0 ( /dev/md2)

然後我將 md1 和 md2 製作成 RAID 1 ( /dev/md127) 並將慢速 HDD (md2) 標記為 --write-mostly。

從本質上講,我的目標是從 SSD 中獲得最大效能和磁碟空間,但同時「安全」免受磁碟機故障的影響。我知道丟失其中一個 SSD 意味著我只能使用速度較慢的 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 混合提供 437 MB/秒。

由於 HDD raid 已標記為 --write-mostly,我認為純讀取測試根本不會觸及 HDD,那麼這裡發生了什麼?我假設混合基準測試會給出與純 RAID 0 SSD 類似的結果。

乍一看,HDD 似乎因部分用於讀取而以某種方式減慢了 RAID 速度(儘管我告訴它不要在 HDD 上進行讀取)。但是,如果我在運行 hdparm 基準測試時在 HDD 上運行文件副本,我會得到相同的結果!如果 HDD如果在基準測試期間將 HDD 用於其他任務,我認為基準測試會給出更慢的結果。

我希望一些 Linux RAID 專家能夠解答我的問題。

相關內容