我已经为 ZFS Automatic Snapshots SMF Service 原型编写了下一轮功能。您可以以 zfs-auto-snapshot-0.6.tar.gz 形式下载

本版本中主要的新功能包括:

发送/接收支持意味着,需要时服务可以发送每个快照的备份,无论是完整的流还是递增的流(取决于该服务的配置)。该服务还将发送所有子文件系统的快照(如果需要),尽管在 ZFS 中没有 send -r 支持,现在这还有一点小问题。

有一个 SMF 属性,用户可以在恢复备份流的命令中使用该属性。通常,这应该是“zfs receive”,但是理所当然应该将输出 cat 到 NFS 服务器上的单个文件中。我还修改了打包的 GUI,以便在构建新的清单时请求这些新选项:

每个文件系统多个计划的功能允许用户给每个快照计划分配一个可选标签,这样同一数据集可以有多个计划。例如,对于一个给定文件系统,您可以选择每月进行完整备份,发送到远程服务器(并且作为平面文件备份到磁带),也可以选择每天进行增量备份,通过 zfs 发送/接受不同的服务器。

该标签还可以快速告诉您哪些文件系统运行了哪些服务。例如,这里是我桌面的当前配置:

root@haiiro[236] svcs | grep zfs
online         Aug_31   svc:/system/filesystem/zfs/auto-snapshot:space-archive
online         Aug_31   svc:/system/filesystem/zfs/auto-snapshot:tank-root_filesystem
online         13:28:27 svc:/system/filesystem/zfs/auto-snapshot:space-timf
online         17:47:37 svc:/system/filesystem/zfs/auto-snapshot:default
online         18:00:02 svc:/system/filesystem/zfs/auto-snapshot:tank-new,backup
online         18:01:02 svc:/system/filesystem/zfs/auto-snapshot:tank-new,moreoften

我已经更新了这些新功能的文档和自述文件,如果有任何不清楚的地方,请告诉我。

最后,我努力在面对失败时作出正确的事情。如果备份因为某种原因失败了,该服务将会移动到 maintenance(维护)状态,在这种情况下,应该删除 cron 作业。另外,我也在做一些基本的锁定,以在尝试发送同一实例的另一个备份流之前,查看 zfs send 命令是否仍然在运行。不幸的是,据我所知,似乎没有一种便捷的方法来设置/获取 SMF 的属性(欢迎反馈)。

我希望这个这对您有用,如果您遇到问题,欢迎报告这些 bug!

另: Chris 也在使用 ZFS 快照做一些很漂亮的东西——都在他的博客上:非常值得看一看!

[ 更新此处 ]

Advertisements