[翻译]FreeBSD中ZFS的 未来
FreeBSD ZFS支持的源代码目前直接来自Illumos,带有本地ifdef,以支持FreeBSD的特性, 而Solaris可移植层(SPL)不足。
FreeBSD定期从Illumos中获取更改并试图反馈在FreeBSD环境下完成的任何修复和新功能。 在过去的几年里,ZFS的绝大多数新开发都在DelphixOS和zfsonlinux(ZoL)中进行。 今年早些时候,Delphix宣布他们将转向ZoL https://www.delphix.com/blog/kickoff-future-eko-2018 这一转变意味着Illumos的新开发很少甚至没有。
通过ZoL的git更新历史, 我还发现ZoL中已经修复了许多种族和锁定错误, 并且从未对Illumos和FreeBSD进行过修改。
这种状况导致了我所谈到的利益相关者之间的一致意见, 认为在 基于ZoL 重新开发FreeBSD的ZFS是有意义的。
Brian Behlendorfhas鼓励我将FreeBSD支持直接添加到 ZoL https://github.com/zfsonfreebsd/ZoF, 这样我们就可以拥有一个单独的代码库。
可以在https://github.com/miwi-fbsd/zof-port 找到zfs的移植(port)
Before可以提交一些额外的功能需要加入到FreeBSD opencrypto框架中。 这些可以在以下网址找到 https://reviews.freebsd.org/D18520
这个移植(Port)将为FreeBSD用户提供多修改器保护, 项目配额, 加密数据集, 分配类, vectorized raidz, 矢量化校验和以及各种命令行改进。
在ZoF可以合并之前回到ZoL需要采取几个步骤:
- 将FreeBSD支持集成到ZoL CI中
- 大多数ZFS测试套件都通过
- 在iXWe上完成iXWe的额外QA测试
测试需要移植ZoL的EC2 CI脚本以与FreeBSD一起工作并确保大多数ZFS测试套件(ZTS)通过。 集成到他们的CI将意味着,除了其他事项之外, 大多数集成问题将在PR合并到上游之前被捕获, 而不是几个月之后它被MFVed到FreeBSD中。我希望在1月份的某个时间将PR提交给ZoL。
这个移植(Port)将使最终用户在一系列版本中轻松获得最新版本的ZFS。 尽管如此,从基于Illumos的ZFS过渡不太可能是完全无缝的。 我与之谈过的利益相关者都认为这是最好的途径,但需要在适应当地消费者方面做出一定程度的努力。
目前的计划是引进ZoF并取消挂钩4月15日或者iX系统QA认为ZoF稳定后的两个月内, 基于Illumos的旧版源码 将在以后移除,13日前。
这将为用户提供3个月的时间段,在此期间, 用户可以使用基于Illumos的移植(Port) 和传统的ZFS。
Pools应该在ZoF和Lagacy 之间进行互操作 如果用户未启用仅在ZoF中可用的任何功能。
我们将努力适应任何下游消费者 如果那样的话 他们需要推迟日期。
我们要求任何下游消费者 谁对变化特别敏感 开始测试移植(Port) 当正式宣布时, 报告他们遇到的任何问题
我将尽最大努力确保将此信息传达给所有可能关心的人。 但是,我无法确保每个人都阅读这些列表。
这是-CURRENT用户的责任。