良许Linux教程网 干货合集 讲解一下ZFS文件系统

讲解一下ZFS文件系统

ZFS(Zettabyte File System)是Sun公司为Solaris操作系统开发的新一代文件系统,最初的开发者除Matt Ahrens外,还有后来担任过Sun公司副总的Jeff Bonwick(LinkedIn,Wikipedia)。它有诸多新颖和强悍的功能,包括支持极大数据(128位,理论上几乎能满足地球上的所有存储需求)、很高的数据完整性、存储池、多种缓存、写时拷贝事务模型、快照与克隆、块大小可变、加密、高可用等,说是世界上最先进的文件系统,并不为过。

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文件系统


写入时复制

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吗? 你的经历是什么样的? 请在下面的评论中告诉我们。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部