我在 ZFS 上运行 Ubuntu 19.10,一切运行良好。我知道 Ubuntu 默认每周安排一次 fstrim,但 ZFS 还支持通过“/sbin/zpool trim [pool]”进行修剪。它们之间有什么区别?我应该安排两者来修剪我的 SSD 吗?
答案1
简而言之,它是fstrim
一个在内核支持此功能的文件系统上运行 trim 的命令,例如ext4
、等。btrfs
f2fs
由于 ZFS 不仅仅是一个文件系统(它也是一个磁盘卷管理器),它有自己的修剪实用程序来修剪 Zpool(ZFS 存储系统的顶级组件),由命令运行zpool trim
。
这是必要的,因为 ZFS 系统上的挂载点不一定等同于磁盘(挂载点可以是池、子文件系统、快照等)。而且由于该fstrim
命令不知道 ZFS 数据结构,因此它无法在 ZFS 上执行任何操作。
如果您实际尝试fstrim
在 ZFS 挂载点上运行,这一点就非常明显,我在下面尝试过:
$ sudo fstrim -v /mnt/zfs/public
fstrim: /mnt/zfs/public: the discard operation is not supported
所以这行不通。相反,对于 ZFS,您应该使用命令设置常规修剪,或者在 Zpool 上zpool trim
设置 ZFS 属性。autotrim=on
另请参阅此问答有关如何在 ZFS 池上配置 trim 的建议。