我即将完成这个版本的 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!)

    Advertisements