我编写了一个 cron 作业,以每小时为受益于主动跟踪的关键文件自动创建 ZFS 数据集的快照。
这样做的缺点是这些每小时快照会创建许多冗余条目,其中没有对数据集下的文件或文件夹进行任何更改。
我想知道是否可以安全地假设如果 USEDSNAP 属性(usedbysnapshots)等于 0 则快照不包含任何更改并且可以在不丢失历史记录的情况下删除。
我编写了一个 cron 作业,以每小时为受益于主动跟踪的关键文件自动创建 ZFS 数据集的快照。
这样做的缺点是这些每小时快照会创建许多冗余条目,其中没有对数据集下的文件或文件夹进行任何更改。
我想知道是否可以安全地假设如果 USEDSNAP 属性(usedbysnapshots)等于 0 则快照不包含任何更改并且可以在不丢失历史记录的情况下删除。
如果快照确实是空的,为什么还要首先删除它们呢?
请注意,您不能假设如果快照大小列为 0,您将不会丢失任何数据。快照的大小是您可以通过删除它来回收的数据量。如果添加了数据,那么快照删除将不会删除任何内容,并且快照大小将被列为 0。您必须查看 zfs diff 输出以确定是否有任何更改。
最后,正如迈克尔在评论中提到的那样,您应该认真看待 sanoid,因为听起来您正在努力重新发明轮子。