我有一个在OpenSolaris / Illumos / OmniOS上运行的NAS,有几个共享的ZFS文件系统,其中autosnaps被激活以保留一个历史logging(保持4个15分钟快照,24个小时快照,7个每天快照等等)。 我可以使用Windows资源pipe理器以前的版本窗口访问快照,并恢复旧版本的文件或删除的文件,这很好。
重命名或移动文件时出现的问题:
Draft1.txt并在一天内修改它,则历史将被保留。 当我完成草稿并将其重命名为其他任何内容时,请说Letter.txt甚至Draft2.txt ,版本消失(只有在知道旧文件名时才能通过目录访问,或者将文件重命名为旧名称) 。 Draft1.txt并保存完成版本Letter.txt (现在有两个文件)的另一个副本,第一个有历史,第二个没有(这是好的)。 如果我删除Draft1.txt ,然后想要恢复它,我可以在目录中find它,但恢复的版本现在已经失去了它的历史。 所以如果我想保留以前版本的全部function,那么在使用这个共享时,我必须考虑几件事情:
除此之外,还有什么可以解决的吗? 看起来很奇怪的是,ZFS在大多数情况下(写时复制,发送/接收,zvols,快照)的块上工作,但在这种情况下在文件上。 或者这是SMB / CIFS子系统而不是文件系统的限制?
我认为这可能只是它的工作方式的一个限制。 对我来说,似乎只是扫描当前文件的不同版本的快照,所以如果文件已被重命名,将不会显示任何版本。
不过,如果将文件移动到另一个目录,我不确定历史logging丢失了什么。 在我的FreeBSD / Samba系统上,我可以在共享本身上查看以前的版本。 这给我一个所有快照的完整列表,我可以浏览任何快照,显示共享的全部内容,因为它在那个时间点。