允許更大 ZFS 記錄大小以提升傳輸效能

嗨,

在使用 ZFS 時,有一個 recordsize(紀錄大小)的設定。Quts hero 允許將其設為最高 128kB。recordsize 是一個紀錄可以有的最大大小,也允許設定更小。

它的主要用途在於優化「大檔案、隨機小存取」以及針對虛擬機(例如 VM)的卷,當 recordsize 配合常用存取大小時,讀寫性能會有提升。

以一個有 4 顆硬碟的 Z1 RAID 為例,一個紀錄加上其同位元資料會分散在 4 顆硬碟上,因此每顆硬碟最多承擔 128/(4-1) kB 的資料。這些資料可能是連續的,也可能不是。

對於 SSD 儲存來說表現還不錯,但 HDD 儲存則會比較吃力。

若場景中有多個 Megabytes 的大檔案時,會被拆分成大量請求。

此外,因為 128kB/3 無法與 ZFS 的 4kB ashift 對齊,會有幾個百分比的儲存空間損失。如果 Z1 裡有 3 或 5 顆硬碟,這個問題就不會發生。不過隨著 recordsize 增大,損失也會相對減少。

如果能提高使用者建立的 ZFS 分享資料夾的 128kB 限制,將會很有幫助。ZFS 6.0 版本已經回報支援高達 1MB recordsize。既然如此,何不讓使用者自行設定這個選項呢?

此致
敬禮

Florian

謝謝你的建議!我會轉交給我們相關的內部團隊。