FreeBSD ZFS支持的源代码目前直接来自Illumos,带有本地ifdef,以支持FreeBSD的特性, 而Solaris可移植层(SPL)不足。
FreeBSD定期从Illumos中获取更改并试图反馈在FreeBSD环境下完成的任何修复和新功能。 在过去的几年里,ZFS的绝大多数新开发都在DelphixOS和zfsonlinux(ZoL)中进行。 今年早些时候,Delphix宣布他们将转向ZoLhttps://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用户的责任。