Linux

RAID1 vs RAID5:2磁碟陣列的讀取性能

  • February 15, 2019

我正在測試一些使用mdadm. 這是關於 2 磁碟陣列上的並行讀取。

RAID1似乎通過程序來平衡讀取,某種粗粒度的平衡,因此使用簡單的讀取整個 RAID 陣列dd if=/dev/md0 of=/dev/null bs=1M,根據nmon,基本上將所有讀取定向到/dev/sda。當多個dd命令並行執行時,sda一些從sdb.

奇怪的是,我使用RAID5進行了測試,相同的兩個磁碟,相同的冗餘和 50% 的磁碟使用率。一個單一的低級讀取dd分佈均勻sdasdb因此每個讀取操作似乎都可以更好地並行化。

對 CPU 負載的影響似乎可以忽略不計。我也沒有檢查寫操作。

將 RAID5 用於 2 磁碟陣列是否有意義?

順便說一句,在 1 和 5 之間來回切換就像mdadm --grow /dev/md0 --level 1or一樣簡單5,沒有數據移動,只有並行讀取模式發生變化。

使用 dd 進行的一次低級讀取均勻分佈sdasdb因此每個讀取操作似乎都可以更好地並行化。

您誤讀了 RAID-5 中發生的事情。要從 RAID-5 陣列讀取任何數據,必須讀取所有磁碟,並且從儲存在陣列中所有磁碟上的“數據 + 奇偶校驗”中提取實際數據。

實際上,您必須在 RAID-5 配置中讀取兩倍的數據才能獲取數據,但還有檢測數據損壞的額外好處。(在某種程度上 RAID-5 可以防止數據損壞。它並不完整。)

在 RAID-1 鏡像中,您只能在陣列的全面清理中檢測到數據損壞。

將 RAID5 用於 2 磁碟陣列是否有意義?

如果你想要數據損壞檢測,是的。但請記住,這是以需要兩倍的讀取頻寬和兩倍的讀取 IO 操作數為代價的。

引用自:https://serverfault.com/questions/953954