ZFS 清理是否支援並行化以提高效能,例如使用 64 核心 AMD Threadripper Pro?

ZFS 清理是否支援並行化以提高效能,例如使用 64 核心 AMD Threadripper Pro?

我有一個 24 個驅動器 zpool,由 3 個 RAIDZ1 vdev 組成,每個 vdev 運行 8 個 Seagate Exos X18 16TB 驅動器。這是在具有 64 個核心(128 個線程)AMD Threadripper Pro 和 256GB ECC RAM 的 Supermicro MB 上。

清理期間的系統使用率顯示一次最多使用 2 個 CPU,總清理時間看起來可能需要 5 到 7 天。

有沒有辦法讓所有 CPU 核心並行工作以加快擦洗速度?

答案1

CPU 很可能不是效能的限制因素。 7200 RPM 主軸約為 60 至 70 隨機 IOPS。即使 24 個磁碟也不會為較低優先順序的完整性檢查留下大量空閒效能。

規劃當前的性能,可能每週進行一次擦洗。如果您的復原點目標來自夜間備份,則還原來源將不會完全清除。也許是一些快照。您可能可以接受。

考慮使備份與清理保持一致。如果您每週進行一次完整備份,並在此時開始清理,則它可能會在下週完整備份之前完成。為陣列以及代理程式備份的完整性提供額外保證。然而,對於進行良好的檔案系統完整性檢查的備份來說,這並不是很多時間。考慮方便地進行多個完整備份。多天前的存檔對您的恢復目標有多大用處取決於您,但至少應該完成相關的清理。

答案2

ZFS 磁碟讀取/寫入操作的平行化工作似乎正在進行中,但尚未準備好進行測試。

參數和一些數學來指導反應:

每個驅動器的容量:16,000,000,000,000 位元組(不是 16TB)。

持續讀取/寫入:270MB/秒(258 MiB/秒)。

平均故障間隔時間:285 年。

每位元讀取的不可復原磁區讀取錯誤:每 116,415 TB 資料讀取 1 個位元錯誤。

隨機讀取 4K QD16 QCD:170 IOPS。

隨機寫入 4K QD16 QCD:550 IOPS。

每個 8 磁碟機 RAIDZ1 vdev 連接到 8 通道 PCIe 3.0x HBA,支援每個連接磁碟機 512MB/秒的持續吞吐量。

HBA 連接到 128 通道主機板上的 PCI4.0 x16 插槽。

該系統並行運行,支援在 22 小時內完整讀取所有 24 個 16TB 硬碟。

我的預期是磨砂過程應在 24 小時內完成;因此,瓶頸在於校驗和驗證的CPU利用率。鑑於每個驅動器有 5 個計算線程的可用性(這是一個 128 線程/24 個驅動器系統),校驗和的並行化應該可以解決瓶頸問題。

根據可靠性:

鑑於製造商的 MTBF 為 285 年並假設置信區間為 6 個標準差,隨機理論預測驅動器故障的可能性不大。儘管如此,我還是有 4 個驅動器致力於糾錯和災難復原。

位元腐爛(每位讀取的不可恢復磁區讀取錯誤)是一個單獨的問題,這就是我擔心清理操作的原因。預期錯誤率為每 116,415 TB 資料讀取 1 位元錯誤。這表示每 14 年出現一位讀取錯誤,IFF 以 270MB/s 的全吞吐量連續讀取可保持 24x7 長達 14 年。

該計算機是熱故障轉移 1024 個節點、1 PB 叢集的一部分。

相關內容