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