什么是ZFS? 为什么 ZFS 受欢迎

古城童话 2018-09-21

今天,我们来看看ZFS,一个高级文件系统。我们将讨论它来自哪里,它是什么,以及为什么它在技术人员和企业中如此受欢迎。

虽然我来自美国,但我更喜欢用ZedFS而不是ZeeFS发音,因为它听起来更酷。你可以随意发音。

注意:您将在文章中看到ZFS重复多次。当我谈到功能和安装时,我在谈论OpenZFS。自Oracle关闭OpenSolaris以来,ZFS(由Oracle开发)和OpenZFS遵循不同的路径。 (稍后会详细介绍。)

ZFS的历史

Z文件系统(ZFS)由Matthew Ahrens和Jeff Bonwick于2001年创建.ZFS旨在成为Sun Microsystems的OpenSolaris的下一代文件系统。 2008年,ZFS被移植到FreeBSD。同年,一个项目开始将ZFS移植到Linux。但是,由于ZFS根据与GNU通用公共许可证不兼容的通用开发和分发许可证进行许可,因此它不能包含在Linux内核中。为了解决这个问题,大多数Linux发行版提供了安装ZFS的方法。

甲骨文收购Sun Microsystems后不久,OpenSolaris成为了密切的来源。 ZFS的所有进一步开发也成为封闭源。 ZFS的许多开发人员对这一转变事件感到不满。由于这一决定,三分之二的核心ZFS开发者,包括Ahrens和Bonwick,离开了Oracle。他们与其他公司一起在2013年9月创建了OpenZFS项目。该项目率先开展了ZFS的开源开发。

让我们回到上面提到的许可证问题。由于OpenZFS项目与Oracle是分开的,因此有些人可能想知道为什么他们不会将许可证更改为与GPL兼容的东西,因此它可以包含在Linux内核中。根据OpenZFS网站的说法,更改许可证将涉及将任何贡献代码的人联系到当前的OpenZFS实施(包括初始的,常见的ZFS代码,直到OpenSolaris)并获得他们更改许可证的许可。由于这项工作几乎不可能(因为一些贡献者可能已经死亡或很难找到),他们决定保留他们拥有的许可证。

什么是ZFS?它的特点是什么?

正如我之前所说,ZFS是一个高级文件系统。 因此,它有一些有趣的功能。 如:

  • 存储池
  • 写入时复制
  • 快照
  • 数据完整性验证和自动修复
  • RAID-Z
  • 最大单个文件大小为 16 EB(1 EB = 1024 PB)
  • 最大 256 千万亿(256*1015 )的 ZB(1 ZB = 1024 EB)的存储

让我们分解一下这些功能。

存储池

与大多数文件系统不同,ZFS结合了文件系统和卷管理器的功能。这意味着与其他文件系统不同,ZFS可以创建跨越一系列驱动器或池的文件系统。不仅如此,您还可以通过添加其他驱动器将存储添加到池中。 ZFS将处理分区和格式化。

什么是ZFS? 为什么 ZFS 受欢迎

ZFS中ZFSPooled存储中的池存储

写入时复制

Copy-on-write是另一个有趣(而且很酷)的功能。在大多数文件系统上,当数据被覆盖时,它将永远丢失。在ZFS上,新信息被写入不同的块。写入完成后,文件系统元数据将更新为指向新信息。这可确保在写入过程中如果系统崩溃(或其他事情发生),旧数据将被保留。这也意味着系统崩溃后系统不需要运行fsck。

快照

Copy-on-write引入另一个ZFS功能:快照。 ZFS使用快照来跟踪文件系统中的更改。 “快照包含文件系统的原始版本,实时文件系统包含自拍摄快照以来所做的任何更改。没有使用额外的空间。当新数据写入实时文件系统时,会分配新块来存储此数据。“删除文件后,也会删除快照引用。因此,快照主要用于跟踪文件的更改,但不包括文件的添加和创建。

快照可以以只读方式挂载,以恢复文件的过去版本。也可以将实时系统回滚到先前的快照。自快照以来所做的所有更改都将丢失。

数据完整性验证和自动修复

每当将新数据写入ZFS时,它都会为该数据创建校验和。读取该数据时,将验证校验和。如果校验和不匹配,则ZFS知道已检测到错误。然后,ZFS将自动尝试更正错误。

RAID-Z

ZFS可以处理RAID而无需任何额外的软件或硬件。不出所料,ZFS有自己的RAID实现:RAID-Z。 RAID-Z实际上是RAID-5的一种变体。但是,它旨在克服RAID-5写入孔错误,“其中数据和奇偶校验信息在意外重启后变得不一致”。要使用基本级别的RAID-Z(RAID-Z1),您需要至少两个磁盘用于存储,一个用于奇偶校验。 RAID-Z2至少需要两个存储驱动器和两个用于奇偶校验的驱动器。 RAID-Z3至少需要两个存储驱动器和三个用于奇偶校验的驱动器。当驱动器添加到RAID-Z池时,它们必须以2的倍数添加。

巨大的存储潜力

创建ZFS时,它被设计为文件系统中的最后一个单词。在大多数64位文件系统的时候,ZFS创建者决定直接跳到128位以便将来证明它。这意味着ZFS“提供的容量是32或64位系统的16亿亿倍”。事实上,Jeff Bonwick(其中一位创始人)表示,为一个“完全填充128位存储池提供动力,实际上需要比沸腾海洋更多的能量。”

如何安装ZFS?

如果你想开箱即用ZFS,就需要安装FreeBSD或使用illumos内核的操作系统。 illumos是OpenSolaris内核的一个分支。

事实上,对ZFS的支持是一些有经验的Linux用户选择BSD的主要原因之一。

如果要在Linux上尝试ZFS,则只能将其用作存储文件系统。据我所知,没有Linux发行版为您提供了在开箱即用的基础上安装ZFS的选项。如果您有兴趣在Linux上尝试ZFS,那么Linux上的ZFS项目有很多关于如何做到这一点的教程。

警告

本文介绍了ZFS的优点。 现在让我告诉你一个ZFS的快速问题。 使用RAID-Z可能会很昂贵,因为您需要购买多少驱动器来添加存储空间。

你曾经使用过ZFS吗? 你的经历是什么样的? 请在下面的评论中告诉我们。

via:itsfoss

相关推荐