ZFS:鏡像與 RAID-Z
我正計劃使用 OpenSolaris 和 ZFS 建構一個文件伺服器,它將提供兩個主要服務——作為 XenServer 虛擬機的 iSCSI 目標和作為通用家庭文件伺服器。我正在查看的硬體包括 2 個 4 埠 SATA 控制器、2 個小型引導驅動器(每個控制器上一個)和 4 個用於儲存的大驅動器。這允許每個控制器有一個空閒埠,用於在以後升級陣列。
我有點困惑的是如何設置儲存驅動器。就性能而言,鏡像似乎是王道。我很難看到使用 RAIDZ 而非鏡像有什麼好處。通過此設置,我可以看到兩個選項 - 一個條帶中的兩個鏡像池,或 RAIDZ2。兩者都應該防止 2 個驅動器故障和/或一個控制器故障……RAIDZ2 的唯一好處是任何2 個驅動器都可能發生故障。在這兩種情況下,儲存都應該是容量的 50%,但第一種應該有更好的性能,對吧?
我要考慮的另一件事是具有兩個以上設備的鏡像陣列的好處。對於數據完整性,如果有的話,RAIDZ 相對於三向鏡像有什麼好處?由於 ZFS 維護文件完整性,RAIDZ 帶來了什麼……ZFS 的完整性檢查不會否定 RAIDZ 的奇偶校驗值嗎?
簡單的答案是鏡像某些東西幾乎不需要處理能力——它只是第二次寫入磁碟。對於 RAID-Z2,您必須計算一個全新的奇偶校驗塊,儘管當您必須快速寫入大量數據時,它雖然很小,但會使 CPU 陷入困境。
鏡像始終是高速數據的首選解決方案,如果它只是沒有快速寫入速度的大容量儲存,RAID-Z2 是一個很好的選擇,它確實允許任何兩個驅動器像您提到的那樣當機。
另一個優點是鏡像池可以使用更多鏡像設備進行擴展 - 而 RAID-Z2 無法擴展 - 雖然可以將更多 RAID-Z2 儲存添加到池中,但它將是兩個 RAID-Z2 儲存池串聯(在效果)而不是在所有儲存和條帶化之間平均分配。