Linux
RAID1 vs RAID5:2磁碟陣列的讀取性能
我正在測試一些使用
mdadm
. 這是關於 2 磁碟陣列上的並行讀取。RAID1似乎通過程序來平衡讀取,某種粗粒度的平衡,因此使用簡單的讀取整個 RAID 陣列
dd if=/dev/md0 of=/dev/null bs=1M
,根據nmon
,基本上將所有讀取定向到/dev/sda
。當多個dd
命令並行執行時,sda
一些從sdb
.奇怪的是,我使用RAID5進行了測試,相同的兩個磁碟,相同的冗餘和 50% 的磁碟使用率。一個單一的低級讀取
dd
分佈均勻sda
,sdb
因此每個讀取操作似乎都可以更好地並行化。對 CPU 負載的影響似乎可以忽略不計。我也沒有檢查寫操作。
將 RAID5 用於 2 磁碟陣列是否有意義?
順便說一句,在 1 和 5 之間來回切換就像
mdadm --grow /dev/md0 --level 1
or一樣簡單5
,沒有數據移動,只有並行讀取模式發生變化。
使用 dd 進行的一次低級讀取均勻分佈
sda
,sdb
因此每個讀取操作似乎都可以更好地並行化。您誤讀了 RAID-5 中發生的事情。要從 RAID-5 陣列讀取任何數據,必須讀取所有磁碟,並且從儲存在陣列中所有磁碟上的“數據 + 奇偶校驗”中提取實際數據。
實際上,您必須在 RAID-5 配置中讀取兩倍的數據才能獲取數據,但還有檢測數據損壞的額外好處。(在某種程度上 RAID-5 可以防止數據損壞。它並不完整。)
在 RAID-1 鏡像中,您只能在陣列的全面清理中檢測到數據損壞。
將 RAID5 用於 2 磁碟陣列是否有意義?
如果你想要數據損壞檢測,是的。但請記住,這是以需要兩倍的讀取頻寬和兩倍的讀取 IO 操作數為代價的。