將磁碟組水平分割到不同的 ZFS vdev 中是個好主意嗎?

將磁碟組水平分割到不同的 ZFS vdev 中是個好主意嗎?
 ---------------------------  +-------+ --------
                              |       |
                              | 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 的可用空間,所有這些空間都經過備份,並且設定扭曲程度要小得多。

相關內容