Filesystems

為什麼 ZFS 複製是單執行緒的?

  • November 16, 2012

在我的 8 核 NAS 上,當 ZFS 複製通過 SSH 執行時,我看到只有一個核心被最大化。

我希望傳輸快照將與數量或核心完美擴展,因為快照可以分成 N 個獨立的部分。

為什麼它是單執行緒的有任何技術原因嗎?

對此不確定,但(受過教育的)猜測:

機器上的本地複制可以很容易地通過多執行緒方法實現,但問題是這是否會給您帶來很多好處,因為與 HD 之間的數據傳輸在很大程度上是一個順序過程。當然,您可以並行執行多個 HD,但並行程序之間的同步將非常重要,並且會非常複雜。

當您將 LAN 連接放入混合中時,情況再次不同。

SSH 連接是一個單執行緒的東西。您顯然可以並行執行多個連接,但 LAN 連接的本質是高度連續的(LAN 速度通常是最大的限制因素),因此這是否會獲得很多性能以及付出的努力是否值得值得商榷。

當然……對方是否能夠以同樣的方式處理這個問題?

如果接收 NAS 的核心數(更糟糕的情況:只有 1 個)比發送者少,那麼您可以輕鬆地為其承擔大量任務切換成本。

而且,如果 NAS 盒之間的物理磁碟結構不匹配,則還需要即時完成大量(非平凡的)數據重組。

再次:是否值得複雜和努力?

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