什么是ZFS? 为什么人们为她疯狂?

现在我们将讨论高级文件系统ZFS。 我们将讨论它的外观,外观以及为什么它在技术界和企业中如此受欢迎。

尽管我来自美国,但我更喜欢发音ZedFS而不是ZeeFS,因为它听起来更酷。 您可以自己选择发音选项。

注意:在本文中,您将看到ZFS被重复了很多次。 当我谈论功能和安装时,我指的是OpenZFS。 自Oracle关闭OpenSolaris项目以来,ZFS(由Oracle开发)和OpenZFS的路径已经分歧。 (阅读更多文章。)

ZFS历史


Z文件系统(ZFS)由Matthew Aren和Jeff Bonwick于2001年创建。ZFS被开发成为Sun Microsystems OpenSolaris文件系统的下一代。 在2008年,ZFS被移植到FreeBSD。 同年,开始将ZFS移植到Linux。 但是,由于ZFS开始以CDDL许可证发行,而该许可证与GNU GPL不兼容,因此无法将其添加到Linux内核中。 为了解决此限制,大多数发行版都提供了ZFS安装方法。

在甲骨文收购Sun Microsystems之后不久,OpenSolaris代码就关闭了。 ZFS的所有后续开发也已结束。 许多ZFS开发人员对此类更改感到失望。 由于这一决定,三分之二的重要ZFS开发人员(包括Arens和Bonwick)离开了Oracle。 他们加入了其他公司,并于2013年9月创建了OpenZFS项目。该项目领导了ZFS的开源开发。

让我们回到上面提到的许可证问题。 从OpenZFS从Oracle分离出来的那一刻起,就有人可能想知道为什么他们没有更改GPL兼容许可证以将文件系统包括在Linux内核中。 根据OpenZFS网站的说法,许可证的更改需要与对OpenZFS发行版进行更改的开发人员(包括在OpenSolaris之前启动该项目和ZFS代码的开发人员)取得联系并获得他们的许可。 这几乎是不可能的(也许其中一些已经死亡或者不是那么容易找到),他们决定保留一切。

什么是ZFS? 有什么特别之处?


图片

如前所述,ZFS是高级文件系统。 因此,它具有一些有趣的功能。 如:

  • 集中存储
  • 写时复制
  • 快照
  • 完整性检查和自动修复
  • RAID-Z
  • 档案大小上限为16艾字节( 译者注:10 ^ 18字节
  • 最大存储大小为256个兆字节Zettabytes( 注释转换器:Quadrillion-million ^ 4; Zettabyte-10 ^ 21 bytes)

我们将处理其中一些问题。

联合存储


与其他文件系统不同,ZFS结合了文件系统和磁盘管理器的功能。 这意味着ZFS可以创建跨所有磁盘的文件系统。 不仅如此,还可以将存储添加到磁盘系统。 ZFS将对驱动器进行分区和格式化。

图片

写时复制


写时复制是另一个有趣的功能。 但是,如果文件信息被覆盖,大多数文件系统将永远丢失。 在ZFS中,新信息写入一个单独的块中。 记录完成后,文件系统元数据将更新为新信息。 这样可以确保如果在记录过程中文件系统损坏(或发生类似情况),则旧信息将得到修复。 这意味着系统崩溃后无需运行fsck。

快照


写入时复制导致ZFS中的另一件有趣的事情:快照。 ZFS使用快照来跟踪文件系统中的更改。 快照存储文件系统的原始版本和当前版本,其中存储了自创建快照以来的所有更改。 没有使用额外的空间。 一旦将新信息写入当前文件系统,就会为其分配新的块。 如果文件被删除,则从图片中提及的内容将消失。 快照旨在跟踪更改,但不是补充,也不创建文件。

可以以只读格式挂载快照以还原文件的旧版本。 您也可以将系统回滚到上一张图片。 图片后所做的所有更改都将丢失。

完整性检查和自动修复


每当将新信息写入ZFS时,都会为此信息创建一个校验和(checksum)。 读取信息后,确认支票金额。 如果支票金额不匹配,则ZFS会注意到该错误并尝试对其进行修复。

RAID-Z


ZFS可以在没有辅助软件的情况下提高RAID。 毫不奇怪,ZFS提供了其RAID实现:RAID-Z。 RAID-Z本质上是RAID-5的变体。 但是,在错误方面,RAID-Z的性能优于RAID-5:“意外重启后,所有数据和奇偶校验信息将变得不兼容。” 要使用基本级别(RAID-Z1),您至少需要两个磁盘用于存储,一个磁盘用于奇偶校验。 RAID-Z2至少需要两个磁盘用于存储,两个磁盘用于奇偶校验。 RAID-Z3需要两个驱动器用于存储,三个用于奇偶校验。 将磁盘添加到RAID-Z组后,它们必须是两个的倍数。

强大的存储能力


创建ZFS时,它被设计为同类中最好的。 在大多数文件系统为64位的时候,ZFS的创建者决定将其设置为128位,以供将来确认。 这意味着ZFS可提供1600万个32位或64位系统的容量。 此外,杰夫·邦威克(Jeff Bonwick)(创建者之一)表示,为一个完全填充的128位内存池供电实际上比使海洋沸腾还需要更多的能量。

如何安装ZFS


如果要立即使用ZFS,则必须安装FreeBSD或使用illumos内核的OS。 Illumos是OpenSolaris内核的分支。

实际上,ZFS对ZFS的支持是一些经验丰富的Linux用户选择BSD的主要方面。

如果要在Linux上使用ZFS,则可以将其用作仅用于存储的文件系统。 据我所知,没有任何发行版可以安装ZFS,因此它可以立即工作。 如果您有兴趣并想尝试,可以在Linux项目上找到一个ZFS,其中提供了一些教程。

最后


在本文中,我谈到了ZFS的优点。 现在有一个小问题。 由于RAID-Z需要大量的驱动器,因此使用它可能会很昂贵。

您曾经使用过ZFS吗? 她对你怎么样? 在评论中告诉我们。

译者的后记


感谢您的阅读。 祝你好运

Source: https://habr.com/ru/post/zh-CN424651/


All Articles