OpenZFS
2020-08-27 19:11:27 阿炯

OpenZFS是一个开放源代码软件项目,于2013年由ZFS文件系统分支出来,目标在于使其符合开放源代码的标准,并增进其使用上的便利。ZFS由前Sun微系统公司开发,现在这个商标由甲骨文公司拥有。ZFS本身也是开放源代码软件,它采用C语言开发并在通用开发与散布许可证(CDDL)下授权,该协议与GPL有冲突。

其开发者来自于illumos,Linux,FreeBSD与OS X社区,OpenZFS(原名 ZFS)是 Linux、FreeBSD 与 macOS 平台上的文件系统。



OpenZFS brings together developers and users from various open-source forks of the original ZFS on different platforms and we're always looking to grow our community.


FreeBSD Mainline 合并 OpenZFS

2020年8月,FreeBSD 将文件系统从 ZFS 迁移至 OpenZFS 的开发工作已进行了一年多,近日 FreeBSD HEAD 导入了 OpenZFS 的代码库(HEAD 是一个 CVS 标签,代表了最新的提交)。同年4月份 OpenZFS 合并了支持 FreeBSD 的 PR。在此后的几个月里,OpenZFS 一直在为其提供相关的改进,同时自身也在不断改进,比如加入 Zstd 压缩算法。目前正在跨越的里程碑是将 OpenZFS 文件系统代码导入到 FreeBSD HEAD。

FreeBSD 为此次的导入进行了详细说明,它认为主要的好处是与社区保持完全共享的代码库,从而使得 FreeBSD 能够更快、更轻松地接收新功能。切换到 OpenZFS 后,FreeBSD 能够挖掘 Illumos ZFS 代码中没有的新特性,比如新的 Zstd 压缩算法、矢量化 RAIDZ、矢量化校验、项目配额、加密数据集、类分配(allocation class)等特性。


OpenZFS 3.0 有望支持 macOS 和 DirectIO,继续优化 Window 版本。

在2021年11月举办的年度 OpenZFS 开发者峰会上,ZFS 联合创始人 Matt Ahrens 谈及了关于 OpenZFS 的过往和未来工作,以及对 OpenZFS 3.0 的期望。他表示部分新特性包括:支持 macOS,引入 DirectIO、RAIDZ expansion、Linux 命名空间、对象存储的 ZFS、FIEMAP、VDEV 属性和异步 DMU 等。


此次峰会还提到关于待定的支持 DirectIO 的更新,这项支持可能会在 OpenZFS 3.0 登陆。如果可以实现此功能,OpenZFS 的 DirectIO 支持看起来非常适合快速 NVMe 存储。另一个有趣的主题与 Windows 的 OpenZFS 有关。OpenZFS "ZFSin" 在过去一年中取得了很多进展,包括在更好的加密性能、perfmon 计数器和其他性能优化方面取得的进步。


针对 Windows 上 ZFS 文件系统支持的更多稳定性和性能优化仍在进行中,仍然需要开展工作才能将 ZFSin 更改返回到 OpenZFS 代码库,以便将来可以将其上传到上游。


更多关于 2021 年 OpenZFS 开发者峰会的演讲和其他信息可查看其Wiki页面。


OpenZFS 年度开发工作重点:改进压缩、提升性能以及引入 uZFS 等


2022年10月下旬,在旧金山举行了一年一度的 OpenZFS 开发者峰会。会议主题包括介绍 OpenZFS 现状、亚马逊 AWS 如何大规模使用 OpenZFS,以及开源开发者目前正在解决的一些优化和改进等内容。从演讲主题来看,此次峰会有不少关于优化 OpenZFS 性能的分享。例如讨论 Zvol 性能、改进 OpenZFS 压缩、在用户空间中运行 ZFS、更快的 ZFS scrub 和其他正在推进的工作、以及共享 L2arc 等。

在关于 Zvol 性能的演讲中,演讲人分析了 blk-mq 对非 O_DIRECT 写入的性能优势,以及 LLNL 正在进行的其他一些优化。目前 Zvol 中的 blk-mq 支持已被合并,作为该补丁系列的一部分,具有非 O_DIRECT 的 Zvol 的顺序 dd 性能在写入速度方面从 292 MB/s 提升到 453 MB/s,而读取速度从 453 MB/s 提升到了 885 MB/s。详细内容查看幻灯片文件。

用户空间 ZFS 尝试将 "uZFS" 作为现有基于 FUSE 的 ZFS 驱动的替代方案。uZFS 目标是让它更加独立,能被轻松集成到其他存储系统中,并通过利用用户空间的工具,更容易开发 / 升级 / 调试。虽然 uZFS 的实现比 zfs_fuse 更好,但在各种任务中仍然经常落后于内核 ZFS 驱动。同见幻灯片文件。


如果要了解有关 2022 年度 OpenZFS 开发者峰会的更多信息,可查看开发者峰会 Wiki 页面,其中包含所有演讲幻灯片的链接。


OpenZFS版本更新录(202x)


官方主页:https://openzfs.org/