Performance

具有大容量儲存的高速網路寫入

  • October 5, 2021

我有一個執行 Samba 的 NAS,它有一個 20T ZFS 池和一個帶有兩個旋轉 rust 驅動器的 raid1 vdev。我的機器現在有 16G RAM。該儲存用於持續增長的影片片段的永久備份存檔。它是一次寫入,一次讀取以進行處理,然後可能進行備份恢復。

我定期將 40GiB 文件發送到此 NAS。我打算將我的千兆網路升級到 10GbE,以減少這個過程的痛苦。但是我懷疑我會受到底層驅動器的寫入速度的限制。

我的理解是 ZIL 和 SLOG 僅加速同步寫入,因此添加 nvme SSD 作為 SLOG 不會影響我的案例,因為我相信 Samba 預設使用非同步寫入。

我不確定是否為同步寫入配置 samba 並在 nvme SSD 上添加 SLOG 是否可以滿足我的需要。我知道如果驅動器發生故障或斷電,這會帶來數據失去的風險。這是可以接受的,因為我將源電腦上的文件保留足夠長的時間,以便在近期數據失去的情況下重新傳輸。SSD 的磨損是一個問題,但典型的驅動器有 300 TBW 或以上,足以將我永不刪除的 NAS 填充 15 次,或者以目前的數據生成速率在 75 年內填充,我對此表示滿意,並且如果/當 SSD 損壞時,請購買新的 SSD。這些是可以接受的警告。通常我會嘗試進行基準測試,但在目前一切都短缺的情況下,我想提前知道我需要為此購買什麼。

我知道我可以將更多的 raid 1 vdevs 添加到池中以獲得 raid 10 池,但這太貴了,中塔機箱無法支持那麼多驅動器,它與現有驅動器一起嚴重超出了池的配置,並且會使用更多的能量是時候讓所有的鐵鏽繼續旋轉了。

除了以 raid 10 的方式向池中添加更多的旋轉 rust 之外,我還有哪些選擇可以為這個 zfs 池實現超過 10Gbps 的寫入速度以獲取至少 40GiB 的數據?

同步寫入模式可確保寫入立即在持久位置結束。使用非同步寫入,數據記憶體在 RAM 中,寫入呼叫立即完成。文件系統會將實際寫入安排到最終位置(硬碟)。

在 ZFS 的情況下,ZIL / SLOG 的重點是充當一個快速的臨時持久儲存,它允許同步模式,即確保寫入客戶端的寫入是最終的。否則文件系統將需要直接將塊寫入硬碟,這會使同步模式變慢。

在您的情況下,如果您想確保全速寫入 40 GB 數據,那麼您應該增加 RAM 大小以覆蓋文件的大小。

但是,由於 FS 立即開始寫入硬碟,因此您不需要 40GB 記憶體即可獲得全速寫入。例如,當客戶端寫入 20GB 數據時,10GB 可能在 RAM 記憶體中,其餘 10GB 已經在硬碟驅動器中。

因此,您需要進行一些基準測試以查看需要多少 RAM 才能獲得全速寫入。

引用自:https://serverfault.com/questions/1079090