
--------------------------- +-------+ --------
| |
| part | vdev 1
| | no redundancy
------------------ +-------+ +-------+ --------
| | | | vdev 2
| part | | part | mirroring
| | | | (2 mirrors)
-------- +-------+ +-------+ +-------+ --------
| | | | | | vdev 3
| part | | part | | part | mirroring
| | | | | | (3 mirrors)
+-------+ +-------+ +-------+ +-------+ --------
| | | | | | | | vdev 4
| part | | part | | part | | part | raidz2
| | | | | | | |
+-------+ +-------+ +-------+ +-------+ -------
Disk Disk Disk Disk
1TB 2TB 3TB 4TB
假設我有一堆不同大小的磁碟,想要對它們進行分割以利用所有可用空間,同時將分割區聚合到具有不同冗餘程度的 vdev。
我正在考慮一種像上面描述的那樣的梯狀結構。
每個磁碟1至4,分別分為1、2、3或4個分割區,大小為1TB。每個磁碟分別在 1、2、3 或 4 個 vdev 之間共用。
- vdev 1 專用於非關鍵資料(無冗餘)
- vdev 2 包含重複一次的數據
- vdev 3 保存關鍵數據,這些數據透過 3 個鏡像複製兩次
- vdev 4 使用雙奇偶校驗保存關鍵數據,這些數據被複製兩次。這應該具有與 vdev 3 相同的可靠性,但空間效率更高。
鑑於我不清楚 ZFS 如何在內部佈局數據,我想知道在多個 vdev 之間分割磁碟是否是常見做法或無意義,從效能和穩健性角度來看。
答案1
當您同時存取多個池時,效能將變得非常糟糕。
除了浪費磁碟空間之外,三向鏡像不太可能帶來太多好處。
RAIDZn 具有近似於單一磁碟的 IOPS 效能。
在穩健性方面,請務必小心,因為丟失除最小驅動器之外的任何驅動器都會導致多個池性能下降。降級狀態會導致效能下降。
也要考慮您的開銷。您有 10TB 磁碟,但有 5TB 可用空間,其中 1TB 沒有冗餘。
您可能會更好地安排您有兩個池,2+3 和 4+1,並使用 sanoid/syncoid 定期(每小時)快照並將資料從 2+3 池主池傳輸到 4+ 1 個備用池。這仍然為您提供 5TB 的可用空間,所有這些空間都經過備份,並且設定扭曲程度要小得多。