Zfs
更改現有 ZFS 數據集的記錄大小
我想更改
recordsize
現有 ZFS 數據集的屬性。手冊頁指出:
更改文件系統的記錄大小僅影響之後創建的文件;現有文件不受影響。
因此,簡單地更改
recordsize
屬性只會對新創建的文件產生影響。我希望現有文件也能利用新的記錄大小。數據集的a
zfs send
和zfs receive
是否會將現有文件轉換為新的記錄大小,還是我必須手動將文件從數據集中複製然後再复制回來?
如果您想利用新的記錄大小,您需要將數據複製回文件系統。
不過,我不確定你的問題是什麼。
我知道回复晚了,但這裡有幾點建議:
zfs receive
有一個-o recordsize
選項可讓您覆蓋接收端的值。- 恕我直言,同步 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 頁面上,但它完全按預期工作。