前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是 ZFS?它有什么特点?

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

原创
作者头像
用户7365393
修改2021-09-24 14:17:04
1.6K0
修改2021-09-24 14:17:04
举报
文章被收录于专栏:人生得意须尽欢
file
file

正如我前面提到的,ZFS 是一种高级文件系统。因此,它具有一些有趣的功能[9]。如:

存储池

  • 写时拷贝
  • 快照
  • 数据完整性验证和自动修复
  • RAID-Z
  • 最大 16 EiB(2^64byte,即 16x1024x1024TB)的文件大小
  • 最大 256 ZiB(2^78byte)存储

存储池

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

file
file

ZFS 中的存储池

写时拷贝

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

快照

写时拷贝导致另一个 ZFS 功能:快照。ZFS 使用快照来跟踪文件系统中的更改。“快照包含文件系统的原始版本,实时文件系统包含自快照以来所做的任何更改,不使用额外的空间。当新数据写入实时文件系统时,会分配新块来存储这些数据。” 如果文件被删除,快照引用也会被删除。因此,快照主要用于跟踪文件的更改,而不是文件的添加和创建。

快照能够以只读方式挂载以恢复文件的过去版本,还可以将实时系统回滚到以前的快照。一旦快照没了,所有更改都将丢失。

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

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

RAID-Z

ZFS 无需任何额外的软件或硬件即可处理磁盘阵列 RAID (Redundant Arrays of Independent Disks)。ZFS 有自己的 RAID 实现:RAID-Z。RAID-Z 实际上是 RAID-5 的变体,为了克服 RAID-5 的 WriteHole 问题,即“意外重启后数据和奇偶校验信息变得不一致”。要使用基本的 RAID-Z (RAID-Z1)[13],至少需要 2 块磁盘用于存储,1 块磁盘用于奇偶校验[14]。RAID-Z2 至少需要 2 个存储驱动器和 2 个用于奇偶校验的驱动器。RAID-Z3 则至少需要 2 个存储驱动器和 3 个用于奇偶校验的驱动器。将驱动器添加到 RAID-Z 池时,它们必须以 2 的倍数添加。

巨大的存储潜力

ZFS 在创建之初,就被设计为最后一代文件系统[15]。在大多数文件系统都是 64 位的时候,ZFS 创建者决定直接跳到 128 位以备未来验证。这意味着 ZFS “提供了 32 位或 64 位系统容量的 160 亿倍”。事实上,Jeff Bonwick 表示,“要填满一个 128 位的文件系统,将耗尽地球上所有存储设备。除非你拥有煮沸整个海洋的能量,不然你不可能将其填满”[16]。“fully populating a 128-bit storage pool would, literally, require more energy than boiling the oceans.”

如何安装 ZFS?

如果想开箱即用地使用 ZFS,则需要安装 FreeBSD[17] 或使用 illumos 内核的操作系统。illumos[18] 是 OpenSolaris 内核的一个分支。

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

如果想在 Linux 上试用 ZFS,可以将其用作存储文件系统。最近,Ubuntu 19.10 引入了在根目录上开箱即用安装 ZFS 的功能。阅读有关在 Ubuntu 上使用 ZFS[20] 的更多信息。如果有兴趣在 Linux 上尝试 ZFS,Linux 项目上的 ZFS 有许多教程。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 存储池
  • 写时拷贝
  • 快照
  • 数据完整性验证和自动修复
  • RAID-Z
  • 巨大的存储潜力
  • 如何安装 ZFS?
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档