是否有可能让ZFS创build一个文件系统的快照,例如,只有在文件被更改时才使用pool / filesystem /。 而不是使用cron或其他东西来每5分钟自动创build一个快照,是否有可能让ZFS在文件更改后自动创build快照?
这是可能的,将涉及什么? 你会怎么做?
提前致谢。
多个选项:
1)基于cron的zfs diff(Solaris 11 Express ++),如果有更改 – >快照()2)dtrace zfs快照触发器
我没有做后者,但读了一下。 1)可能是最简单的方法,但是你可能会错过一些改变,但是你将不会有没有变化的快照。
问候,罗伯特
首先,您不使用ZFS制作目录,而是(整个)文件系统(或卷)。 而且,即使快照对于ZFS来说非常轻量级,触发每个文件更改的快照也可能会损害性能,除非您的文件系统具有非常低的更新速率。 一个文件可以通过大量的写操作来更新,每个写操作都会根据您的需求创build一个快照。 我不确定数千或数百万的快照是否可以pipe理。
难道你不能写一个脚本来创build一个新的快照,将它与上一个快照进行比较,如果没有更改,只需删除快照? 我不确定这两个快照的比较是如何发生的,但似乎应该是简单的。
假设您希望每五分钟避免使用未更改的文件创build快照,则可以实施一个dtrace脚本触发写入,以创build一个标志文件; 然后通过cron定期运行的脚本,在标志文件存在时创build一个快照。 康斯坦丁·冈萨雷斯写了一篇博客文章,涵盖了你需要实现的大部分内容: