RAIDZ
RAIDZ
RAIDZ 是 SUN Microsystem 在其 ZFS文件系統中採用的軟體 RAID 的解決方案。
RAIDZ 出現的背景是因為硬體 RAID 沒有表現出其聲稱應達到快速、可靠的效果,存在問題之一就是一個稱為 RAID-5 “ write hole ”的缺陷: RAID 的寫實分為兩步的,首先更新數據,其次更新校驗(將新數據和舊校驗異或以使得所有磁碟異或為零)。如果這個寫的過程中發生斷電、系統崩潰等故障時,這時磁碟上存儲的數據和校驗就不匹配了,如果沒有一個好的日誌或快照機制來進行恢復的話,錯誤的數據將永遠保存在磁碟上而無法糾正,而這一切對用戶都是不知道的。為解決這一問題,有用戶採用昂貴的 NVRAM 進行斷電保護。
RAIDZ 並不是真正意義上的 RAID,而是一種更高層的解決方案,所以它不需要像 RAID 一樣的額外設備,使用動態的條帶寬度,並利用了 ZFS 中類似於 RAID 的一種完整性冗餘機制——重定向寫(RoW,Ridrect-on-write)解決了 RAID-5 的“ write hole ”問題:首先數據寫到一個新的位置,接著再改寫原來指向舊數據的指針,避免了小寫必須讀後寫的操作而在全條帶上進行寫,利用小塊鏡像來代替奇偶校驗,這是因為能夠知道文件系統存儲結構並能夠在需要的時候分配額外的空間,RAID-Z2 是 RAIDZ 的升級, RAIDZ 採用的是類似 RAID-5 的單個奇偶校驗位,RAIDZ-Z2 是採用類似於 RAID-6 的兩個奇偶校驗,這樣前者允許一個磁碟損壞,而後者可以允許兩個磁碟損壞而不丟失數據。
另外一個需要談到的是 RAIDZ 是伴隨著 ZFS 文件系統產生的, RAIDZ 可以利用 ZFS 文件數據的校驗和與其他機制進行錯誤檢測和更正,它對所有的數據進行校驗並在有正確副本的時候對錯誤數據進行恢復。下圖給出了硬體 RAID-5 和 RAIDZ 的速度比較,需要提出的時,硬體實現的速度快但 RAIDZ 優勢在於不需要購買其他設備。
RAIDZ