什么是ZFS? 为什么 ZFS 受欢迎
今天,我们来看看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中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