Linux下的ZFS可以用吗?

Linux下的ZFS可以用吗?

我能让 ZFS 在 Linux 中正常工作吗?

有任何警告/限制吗?

答案1

ZFS 不在官方 Linux 内核中,而且永远不会出现在官方 Linux 内核中,除非 Oracle 根据与 GPL 兼容的方式重新授权代码。

这种不兼容性是争议。支持在 Linux 系统上允许使用 ZFS 的主要论点围绕着所谓的“公平交易”规则。仅当 ZFS 作为内核的单独模块提供、两者仅通过已发布的 API 进行通信并且两个代码库可以彼此独立运行时,该规则才适用于这种情况。然后的说法是,这两个代码库的许可证都没有污点另一个是因为两者都不是另一个的派生作品;他们是独立的,但又合作。然而,即使按照这种解释,这也意味着 ZFS 模块仍然必须与 Linux 内核分开提供,这就是我们今天看到的提供方式通过Ubuntu

与 CDDL 与 GPL 的争论完全不同,NetApp 声明他们拥有 ZFS 中使用的某些技术的专利。在 Oracle 收购之后,NetApp 与 Sun 达成了和解,但该和解协议并不保护任何其他 Linux 分销商。 (红帽、Ubuntu、SuSE...)

在我看来,这些是你的选择:

  • 使用BTFS相反,它具有与 ZFS 类似的功能,但不存在 GPL 许可证冲突,并且自 2.6.29(2009 年 1 月发布)以来一直在主线内核中进行测试。

    btrfs 的主要问题是它有一个其 RAID 5/6 功能问题由来已久。这些问题正在得到解决,但每当其中一个问题出现时,它就会重置“稳定时钟”。

    另一个担忧是红帽表明的Red Hat Enterprise Linux 的下一个版本将不包含 btrfs。

  • 红帽在 btrfs 上采取这种立场的原因之一是他们有一个计划提供类似的功能使用不同的技术堆栈,他们称之为 Stratis。因此,您的另一个选择是等待 Stratis 的出现,1.0 计划于 2018 年上半年发布,大概与 Red Hat Enterprise Linux 8 同步。

  • 为您的文件服务器使用不同的操作系统(例如 FreeBSD)并使用 NFS 将其连接到您的 Linux 机器

  • 使用FUSE 上的 ZFS,一个用户空间实现,它可以巧妙地解决内核许可问题,但会牺牲大量性能

  • 整合Linux 上的 ZFS安装操作系统后。

    许可冲突使得在组织外部分发组合系统在法律上存在疑问。我不是律师,但我的感觉是,除了专利问题之外,在 Linux 上分发 ZFS 与在系统中分发非 GPL 二进制驱动程序(例如某些视频卡的驱动程序)一样令人担忧。如果其中之一困扰您,那么另一个也会困扰您。

  • 切换到 Ubuntu,自 16.04 起,Ubuntu 就随操作系统一起提供 ZFS 内核模块。正典相信将 ZFS 内核模块与操作系统本身一起分发在法律上是安全的。您必须决定是否相信 Canonical 的意见;还要考虑到,如果出现法律问题,他们可能不愿意赔偿您。

    请注意,目前无法使用 Ubuntu 从 ZFS 启动,除非大量的手动黑客行为

顺便说一句,btrfs 也得到了 Oracle 的支持,但在被 Sun 收购之前几年就开始了。我不相信这两者会合并,或者由于许可冲突和专利问题,其中一个会被另一个取代。 ZFS 太受欢迎了,无法消失,但对 ZFS 替代品的需求将继续存在。

答案2

这里的几个答案都提到了贝伦多夫 ZFS 端口

请记住,Behlendorf ZFS 端口目前的目标是光泽具有非常大的文件系统的用户。这正是劳伦斯利弗莫尔国家实验室、美国能源部和其他研究机构所需要的,因为它们运行非常大的文件系统(100TB - 在不久的将来将达到多 PB 系统)。 Lustre 在 Linux 上运行,当用于超过一定大小的文件系统时会遇到问题。有些人希望使用ZFS解决这个问题,这就是 zfsonlinux.org 发挥作用的地方。

为了让 ZFS 对我们其他人有用,ZPL(ZFS POSIX Layer)必须移植到Linux,以便管理员可以与文件系统交互。 zfsonlinux.org 有一个ZPL 的开发版本,肯航信息科技提供ZPL 的另一个实现,它是 zfsonlinux.org 代码的一个分支。

贝伦多夫希望获得帮助以改进 ZPL并将 KQ Infotech 的任何更改合并到 zfsonlinux.org 存储库中。如果你能做到这一点,社区将受益匪浅,你也将成为摇滚明星。

答案3

哦,是的,现在你可以了!有Linux 上的 ZFS项目。 ZFS 已成功移植到多个平台,现在有一个功能齐全的 Linux ZFS 内核移植。

  • 使用 Ubuntu + Native ZFS for Linux PPA。
  • 使用与 RPM 兼容的发行版,例如 CentOS 或 OLE。
  • 您可以从 Linux 发行版的源代码中自行编译软件包。

我的真实经验是使用 Ubuntu + Native ZFS - 它工作起来非常稳定每日存储库

答案4

您可以使用 ZFS 的 FUSE 版本。限制是它作为用户空间进程运行。

相关内容