什么是ZFS?为什么人们会它疯狂呢?

linux 徐 自远 2242℃

什么是ZFS?为什么人们会它疯狂呢?

今天,我们来聊聊ZFS,一个高级文件系统。它为什么在技术人员和企业中如此受欢迎?

温馨提示一下:ZFS在文中会提到很多次,但是当我谈到功能和安装的时候,我指的是OpenZFS而不是ZFS哦,因为自Oracle关闭OpenSolaris以来,ZFS (由Oracle开发)和OpenZFS遵循不同的路径。

ZFS的历史

ZFS文件系统是由Matthew Ahrens和Jeff Bonwick在2001年创建的,是第一个128位文件系统。

ZFS被设计为Sun Microsystems公司的OpenSolaris的下一代文件系统。2008年,ZFS被移植到FreeBSD。同年,一个项目开始将ZFS移植到Linux。

但是,由于ZFS是根据通用开发和发行许可证(与GNU通用公共许可证不兼容)授权的,所以它不能包含在Linux内核中。

为了解决这个问题,大多数Linux发行版都提供了安装ZFS的方法。

在甲骨文Oracle收购Sun Microsystems后不久,OpenSolaris就成为了开源软件。ZFS的所有进一步开发也成为了封闭资源。

ZFS的许多开发人员对这事件的转变感到不满,有三分之二的ZFS核心开发者,包括Ahrens和Bonwick,因为此事离开了甲骨文Oracle。

由于OpenZFS项目与Oracle是分开的,一些人可能想知道为什么他们不将许可证更改为与GPL兼容的东西,以便将其包含在Linux内核中。

根据OpenZFS网站,更改许可证将涉及联系任何贡献代码的人到当前的OpenZFS实施(包含最初的常见ZFS代码,直到OpenSolaris)并获得更改许可证的许可。由于这项工作几乎不可能(因为一些贡献者可能已经去世或很难找到),他们决定保留他们的许可证。

ZFS的特点

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

  1. 存储池
  2. 写时拷贝事务模型
  3. 快照与克隆
  4. 数据完整性验证和自动修复
  5. RAID-Z
  6. 最大16 Exabyte文件大小
  7. 最大256万亿Zettabytes存储

存储池

与大多数文件系统不同,ZFS结合了文件系统和卷管理器的功能

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

写时拷贝事务模型

Copy-on-write是另一个有趣而且很酷的功能。

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

快照与克隆

ZFS使用写时拷贝技术的一个优势在于,写新数据时,包含旧数据的块被保留着,提供了一个可以被保留的文件系统的快照版本。由于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是一个128位的文件系统,这意味着它能存储1800亿亿(18.4 × 10)倍于当前64位文件系统的数据。ZFS的设计如此超前以至于这个极限就当前现实实际可能永远无法遇到。项目领导Bonwick曾说:“要填满一个128位的文件系统,将耗尽地球上所有存储设备。除非你拥有煮沸整个海洋的能量,不然你不可能将其填满。

如何安装ZFS?

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

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

如果你想在Linux上尝试ZFS,你只能在存储文件系统中使用它。

对其支持的操作系统有:

· Sun Solaris

· OpenSolaris

· Illumos发行版

· OpenIndiana

· FreeBSD

· Mac OS X Server 10.5

· NetBSD

· Linux(通过用户空间文件系统或原生第三方内核可加载核心模组支持)

ZFS虽好,但使用RAID-Z 可能会很贵,因为你需要购买许多驱动器来增加存储空间。

你有用过ZFS吗?你的经历是什么样的?

可以在下面的评论中告诉我喔!

 

什么是ZFS?为什么人们会它疯狂呢?http://t.jinritoutiao.js.cn/dyfr2B/

转载请注明:徐自远的乱七八糟小站 » 什么是ZFS?为什么人们会它疯狂呢?

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号