ZFS文件系统:Linux,让我们约会在9月

linuxu 2010-08-30

如果你是 FreeBSD 或 Solaris 用户的话,一定对 ZFS 有所了解,这是由 SUN ( 现在被 Oracle 合并了)开发的一款新型文件系统,应用在 Solaris 上,后来被移植到了 FreeBSD 和 NetBSD 等系统上。很多人称 ZFS 为终极文件系统,因为 ZFS 代表” last word in file system “,Z 是字母表的最后一个字,意思是此后再也不需要开发其他的文件系统了。 事实上,ZFS 的确带来了很多崭新的观念,对文件系统来讲是一个划时代的作品。

ZFS文件系统:Linux,让我们约会在9月

面对这样一个强大的文件系统,当然 Linux 社区也并没有闲着,他们因而推出了 Btrfs 文件系统,有趣的是这也是由 Oracle 发起开发的,关于 BTRFS 的详细介绍可以看这篇文章”新一代 Linux 文件系统 btrfs 简介“。BTRFS 初始目标是取代 Linux 目前的 ext3/4 文件系统,不过通过比较,你会发现 BTRFS 和 ZFS 在很多特性上非常的类似,比如具备相当强的可扩展性、支持 Snapshots 、内置卷管理功能等等。

另外,说到 BTRFS ,这里要插播一下,根据 Ubuntu 开发团队称,由于没有充足的时间,无法完成余下的 BTRFS 开发工作,因此也就是说在 10.10 中将不会完全支持 BTRFS 。

OK ,我们继续说 ZFS 。虽然 Linux 社区已经有了 BTRFS 用来作为对 ZFS 的回应了,但前段时间有消息传出称有开发团队(来自印度的 KQ Infotech 公司) 开始着手移植 ZFS 到 Linux 系统上,这个项目的主页在这里:Native ZFS for Linux 。事实上早在这之前就有一个基于 FUSE 框架的 ZFS for Linux 项目,但它是用户级的 ZFS 文件系统,性能上要逊色很多,所以 Native ZFS for Linux 项目的目的之一也就是要取代这个 ZFS-FUSE ,为 Linux 提供原生的 ZFS 支持。(相关报道:6月第3周系统升级录:ZFS与Linux文件系统的变革)

但问题是,由于 Linux Kernel 用的是 GPL 许可协议,而 ZFS 则是基于 Sun 的 CDDL 许可协议,由于这两个许可协议存在着不兼容性,随之而来的就是版权问题。所以为了解决版权问题,这个 Native ZFS for Linux 项目将会以内核模块的形式进行分发,同时版权许可与 ZFS 一样也基于 CDDL 协议。

而根据 Phoronix 的报道,开发 Native ZFS for Linux 项目的 KQ Infotech 公司将于下个月 ( 大约为 9 月 15 日左右) ,会正式发布一个完全可用的 Linux Kernel ZFS 模块。这个 ZFS 模块基于 ZFS Pool 18 ,已经实现了 ZFS POSIX 层。但目前这个代码只支持 64 位 Linux 系统,同时他们还会发布适用于 Fedora 12 和 Red Hat Enterprise Linux 6 Beta 2 的 RPM 包。当然你也可以在 Ubuntu 10.04 LTS 上使用该模块,但必须要从源代码手工编译安装。

有关ZFS文件系统的使用方法,可以参考以下文章:

  1. 轻松玩转Solaris ZFS文件系统的备份恢复
  2. 全面了解Solaris 10 ZFS文件系统的管理

以下是来自Phoronix的详细报导:

本部分来源:http://linuxtoy.org/archives/linux-native-zfs-support-is-coming.html

美国Lawrence Livermore National Laboratory依据该实验室安全部门和美国能源部的一份协议开发了ZFS的Linux的原生支持,但此项目的代码并不可以直接使用——因其不提供POSIX接口。印度的Knowledge Quest Infotech公司则达到了该目标,他们从去年开始自己的移植工作

早些时候KQ Infotech的Business Manager, Darshin Vyas,在Phonronix论坛中发出声明(此链接指向的讨论包含了比本文更加详尽的信息),该项目已接近Beta状态。

由于Solaris自身发布协议和专利纠纷的限制,此项目的代码仍是基于CDDL发布的,因而不会进入主线内核,故他们只会提供可以编译为内核模块的源代码,由最终用户自行“嵌入”GPL的内核,并且不使用任何GPL-only symbols,规避了GPL的Copyleft条款要求将非GPL程序嵌入GPL程序的行为人(此场合下即最终用户,无再发布的需要)分发程序必须以GPL发布的协议冲突问题(这是常见的GPL规避手段之一)。同时该公司似乎确信Oracle不会对他们采取法律行动。

代码预计在九月15日发布,将只能支持64位内核,同时将提供用于Fedora 12和Red Hat Enterprise Linux 6 Beta 2的RPM包。Ubuntu10.04亦可安装,但需自行编译,期待届时的Phoronnix的Ext4 & Btrfs V.S. ZFS on Linux测评。(译者私心希望有Reiser4出场,但按其进度——2.6.37才能进主线——来讲,属不可能。)

存在的问题:

KQ Infotech记的ZFS on Linux虽好,但不能确定其未来的法律风险,也不能指望得到Oracle/Sun的许可。由于上述的许可证纠纷,无论是官方内核还是主要的发行版都不可能采用它,任何人想用ZFS作为Linux的根文件系统的人都必须自己编译内核并自行处理安装问题

同时其基于ZFS Pool 18,虽然较新,但非最新的21,故仍缺乏de-duplication support和其他一些在OpenSolaris解散前加入的更新颖的功能。只有X86-64支持,也进一步限制了其应用。同样令其前景模糊不清的是——KQ Infotech一直在关门开发,至今外界无法得到一行代码——该公司是会一直以自由许可提供该模块,还是会将其拿来用商业许可套现。

由于功能上与向ZFS看齐的Btrfs日趋完善,并正在成为Linux的下一代“标准”文件系统,所以如果这项工作早个两三年完成的话,重要性可能会比现在大。在Phoronix上个月进行的一系列测试:Running ZFS with CAM-based ATAZFS On FreeBSD vs. EXT4 & Btrfs On LinuxBtrfs, EXT4, & ZFS On A Solid-State Drive中,Ext4/Btrfs on Linux无论是机械硬盘还是固态硬盘性能都把ZFS on FreeBSD 8.1甩开了好几条街。虽然可以将之归咎为FreeBSD自身的瓶颈,但也很难指望ZFS在Linux上能比EXT4/Btrfs有什么性能优势(如果不说完全不可能的话)。

考虑到以上几点,这个模块可能用于尝鲜会很有趣,但不可能改变Linux文件系统的前景,它自身估计也只会在小范围内应用。

LLNL方面的情况:

劳伦斯—利物浦国家实验室(Lawrence Livermore National Laboratories)的Linux ZFS移植项目的领导人Brian Behlendorf向Phoronix方面提供了以下信息:

1.KQ Infotech的工作是基于LLNL的基础上的,具体来说是该实验室发布在Github上的SPL ZFS 0.4.9源代码。

2.Brian Behlendorf打算把KQ Infotech的改进合并回自己方面的代码库

3.LLNL的ZFS移植最终会升级到onnv_147——Oracle废弃OpenSolaris之前的最后一版,不过这之前要花些时间,因为他们需要“维持现有的稳定性和Linux内核的可移植性。

相关推荐