Zfs

更改現有 ZFS 數據集的記錄大小

  • February 13, 2021

我想更改recordsize現有 ZFS 數據集的屬性。

手冊頁指出:

更改文件系統的記錄大小僅影響之後創建的文件;現有文件不受影響。

因此,簡單地更改recordsize屬性只會對新創建的文件產生影響。我希望現有文件也能利用新的記錄大小。

數據集的azfs sendzfs receive是否會將現有文件轉換為新的記錄大小,還是我必須手動將文件從數據集中複製然後再复制回來?

如果您想利用新的記錄大小,您需要將數據複製回文件系統。

不過,我不確定你的問題是什麼。

我知道回复晚了,但這裡有幾點建議:

  1. zfs receive有一個-o recordsize選項可讓您覆蓋接收端的值。
  2. 恕我直言,同步 ZFS 數據集最容易在 syncoid 的幫助下實現(這是Sanoid套件的一部分)。例如,以下相當簡單的命令行會將給定數據集從現有 Zpool 複製apool到,同時在接收端bpool將期望的數據集強制為 64k:recordsize
syncoid --recursive --recvoptions="o recordsize=64k" apool/DATASET bpool/DATASET

syncoid是一個包裝器zfs send/receive,它根據自己管理的快照進行操作;因此您可以在系統執行時使用它,也可以發送增量。 --recvoptions被傳遞到zfs receive。此選項僅記錄在syncoid的聯機幫助頁中,而不是在 Github 頁面上,但它完全按預期工作。

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