我即将完成这个版本的 ZFS Automatic Snapshot SMF 服务,刚刚将一些更改放到了 opensolaris.org 的 Mercurial Repository 上。
这是一个非常重要的版本,修复了一些从发布时起就一直困扰我的缺陷。但是不可避免地,大量的更改也会带来大量的 bug。所以,我希望在发布正式版本前获得一些反馈。
如果您敢于(就是说您还没有在生产中使用它!)使用您最喜欢的源代码管理系统(是 hg,对吗?)并访问大部分未经测试的 ZFS Automatic Snapshot 0.11 Early Access 版本,请访问:
hg clone ssh://anon@hg.opensolaris.org/hg/jds/zfs-snapshot
我与 Niall 及 Erwann(他们曾经在 DSK-5 工作过)一起在 Desktop 组工作,以获得桌面上的 ZFS Automatic Snapshots,到目前为止,看起来我的代码将提供后端服务(显然 ZFS 也一样),以便在台式机或膝上电脑运行时一些更改才能发挥作用。
因为这个原因,我没有对打包的 GUI 进行任何更改,因为它很快就要消失了。但是,我仍然尽力确保有办法关闭这些关注于小型系统的二进制代码,并且该服务与较早的清单保持向后兼容。
那么在 0.11 中有什么新内容呢?看到 Nils 以那种方式(稍后会有更多相关内容)写下他的更改后,我想我也应该开始写一个更改日志(Changelog)——这里是 0.11 到目前为止一些带注释的 Changelog 条目:
0.11
添加 RBAC 支持
- 该服务现在在 zfssnap 角色下运行
- 服务 start/stop 日志位于 /var/svc/log 下
- 其他日志保存到 /export/home/zfssnap(以及 syslog)[是的,这不怎么样——有更好的解决方案吗? ]
添加了一个“zfs/interval”属性值“none”,它不使用 cron 向方法脚本添加了一个 svcprops 的缓存(好主意,Nils!) 添加了一个所有实例使用的 com.sun:auto-snapshot 用户属性,com.sun:auto-snapshot:$LABEL 优先 删除了快照名称的第二个字段——它不需要(好主意,H?kan!) 更改了 // 与递归快照工作的方式——忽视子快照,改为根据哪个数据集拥有 zfs 用户属性自动确定何时获取递归快照 将 avoidscrub 默认设置为 false(在 nv_94 中修复了 6343667) 修复了 Dan 提出的 bug(谢谢!)——卷也是数据集 通过在启动时设置 com.sun:auto-snapshot=true 自动快照所有内容。(这在所有顶层数据集上完成——在顶层数据集上设置为 false 的现有属性将覆盖它) 启动时检查丢失的快照 清除 shell 类型 清除 preremove 脚本(我知道,在移动到 IPS 之前,我需要使这些脚本冗余) 编写此变更日志
在用户可见性方面,最明显的变化是在 RBAC 下运行,以及默认情况下获取所有文件系统的快照——我意识到后者可能会有争议,但是如果您不喜欢它,您可以将其关闭。我也对“//”计划的改变感到很高兴——在这种特殊情况下,我们现在忽略“zfs/snapshot-children”,而使用标记为“com.sun:auto-snapshot=true”的文件系统列表来确定哪个文件系统获取递归快照,哪个必须获取单独快照。在大型系统上这会造成巨大的差异。
这个版本中唯一缺少的是 Nils Goroll 建议的一个更改,该更改旨在提高系统执行计划安排的方式——有关更多信息,请参阅此处。我觉得舍弃 cron 会导致该服务的工作方式比较陌生。如果 cron 是问题所在,当然一种解决方案是不用它,但是修复 cron 的缺陷是不是也不错呢?是的,这个问题留到以后有时间时再解决。
那我不再啰嗦了,在自述文件中有完整的文档——请尽情享用,如果您遇到什么奇怪的问题,请告诉我——在 2008 年 11 月之前仍有时间修复它(是的,所有这些都可以,尽管现在我的日常工作非常紧张!现在 xVM Server 花费了我 99% 的时间,所以我非常期望这个 ZFS 自动快照预览版能够发现大部分 bug!)
ZFS Automatic Snapshot Service 0.9
ZFS Automatic Backup Service 0.2