专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

ZFS 是什么

来源:小易整编  作者:小易  发布时间:2023-08-19 01:09
摘要:ZFS是一个企业级的开源文件系统,RAID控制器和卷管理器,用于指导和控制企业级计算系统中数据的放置,存储和检索。它消除了传统文件系统和硬件RAID设备中发现的大多数缺点。ZFS是一个企业级的开源文件系统,RAID控制器和卷管理器,用于...

ZFS是一个企业级的开源文件系统,RAID控制器和卷管理器,用于指导和控制企业级计算系统中数据的放置,存储和检索。它消除了传统文件系统和硬件RAID设备中发现的大多数缺点。

ZFS 是什么

ZFS 是一个企业级的开源文件系统,RAID 控制器和卷管理器,用于指导和控制企业级计算系统中数据的放置,存储和检索。具有前所未有的灵活性和对数据完整性的不妥协承诺。它消除了传统文件系统和硬件 RAID 设备中发现的大多数(如果不是全部)缺点。一旦你去 ZFS,你永远不会想回去。ZFS 是由 Sun Microsystems Inc.创建。

ZFS 文件系统和卷管理器的特点是数据完整性,高可扩展性和内置存储功能,例如:

复制 – 制作某物的副本(副本)的过程。重复数据删除 – 消除 冗余 数据副本并减少存储 开销的过程。压缩 – 表示数据所需 的位数减少。快照 – 特定时间点的数据的一组参考标记。克隆 – 某事物的相同副本。数据保护 – 保护重要信息免受损坏或丢失的过程。ZFS 的历史

Sun 公司的工程师于 2001 年开始为该公司基于 Unix 的 Solaris 操作系统(OS)开发 ZFS 。2005 年,Sun 在共同开发和分发许可证(CDDL)下发布了 ZFS 源代码,作为开源 OpenSolaris OS 的一部分。开发一个社区,包括来自 Sun 和其他代表厂商,曾在改进开源代码和移植 ZFS 额外的操作系统,包括 FreeBSD 的,Linux 的和 Mac OS X。

包含 ZFS 的 OpenSolaris 开源项目在 Oracle 公司于 2010 年收购 Sun 并注册 ZFS 一词后终止。Oracle 的工程师继续在 Solaris 上增强和添加 ZFS 功能。Oracle 使用其专有的 ZFS 代码作为 Oracle Solaris,Oracle ZFS 存储设备和其他 Oracle 技术的基础。

开发社区基于 OpenSolaris 最终版本中的 ZFS 源代码,启动了一个名为 OpenZFS 的新开源项目。开放社区致力于 OpenZFS 代码的新功能,改进和错误修复。支持 OpenZFS 的操作系统包括 Apple OS X,FreeBSD,illumos(基于 OpenSolaris)和 Linux 变体,如 Debian,Gentoo 和 Ubuntu。OpenZFS 适用于所有 Linux 发行版,但只有一些商业供应商将其作为其发行版的一部分提供。在 OpenZFS 上构建商业产品的公司包括 Cloudscaling,Datto,Delphix,Joyent,Nexenta,SoftNAS 和 Spectra Logic。

ZFS 和 OpenZFS 倾向于吸引需要管理大量数据并确保数据完整性的企业。用户包括科学机构,国家实验室,政府机构,金融公司,电信以及媒体和娱乐公司。

ZFS 最初代表 Zettabyte 文件系统,但 zettabyte 这个词在文件系统的上下文中不再具有任何意义。作为 128 位文件系统,ZFS 有可能扩展到 256 千兆字节的 zettabytes。

ZFS 如何工作

ZFS 旨在在单个服务器上运行,可能有数百个(如果不是数千个)连接的存储驱动器。ZFS 池化可用存储并将所有磁盘作为单个实体进行管理。如果文件系统需要额外容量,则用户可以向池中添加更多存储驱动器。ZFS 具有高度可扩展性,支持较大的文件大小。

每次将数据写入磁盘时,ZFS 都会存储至少两个元数据副本。元数据包括诸如存储数据的磁盘扇区,数据块的大小和一条数据的二进制数字的校验和之类的信息。当用户请求访问文件时,校验和算法会执行计算以验证检索到的数据是否与写入磁盘的原始位匹配。如果校验和检测到不一致,则标记错误数据。在具有镜像存储池或 ZFS 版本 RAID 的系统中,ZFS 可以从其他驱动器检索正确的副本并修复损坏的数据副本。

ZFS 通常被称为写时复制文件系统,尽管 Oracle 将其描述为写入时的重定向。当 ZFS 将数据写入磁盘时,它不会覆盖数据。ZFS 将新块写入磁盘上的不同位置,并更新元数据以指向新写入的块,同时还保留旧版本的数据。

在覆盖原始块之前,真正的写时复制文件系统将在单独的位置中制作数据块的精确副本。在覆盖数据之前,系统需要读取块的先前值。写时复制文件系统需要对每次数据写入进行三次 I / O 操作 – 读取,修改和写入。相比之下,重定向写入系统只需要一个 I / O 操作,从而提高效率和性能。

ZFS 是网络连接存储系统的流行选择,在文件系统之上以及虚拟服务器环境中运行 NFS。另一种常见的部署方案是在 ZFS 之上分层集群文件系统,例如通用并行文件系统(GPFS)或 Lustre,以便扩展到其他服务器节点。OpenStack 用户可以将 ZFS 部署为 Cinder 块存储和 Swift 对象存储的底层文件系统。

ZFS 的主要功能

1、快照和克隆: ZFS 和 OpenZFS 可以高效,快速地制作文件系统的时间点副本,因为系统会保留所有数据副本。快照是文件系统的不可变副本,而克隆可以修改。快照和克隆在 Solaris 上与 ZFS 集成在引导环境中,使用户能够在修补或更新系统时出现任何问题时回滚到快照。ZFS 的另一个潜在好处是作为针对勒索软件的恢复技术。

2、RAID-Z: RAID-Z 允许将相同的数据存储在多个位置,以增强容错能力并提高性能。系统使用存储在系统其他驱动器上的信息重建丢失的驱动器上的数据。与 RAID 5 类似,RAID-Z 在每个驱动器上划分奇偶校验信息,以便即使一个驱动器发生故障也能使存储系统正常运行。但是,对于 RAID-Z,条带化数据是一个完整的块,其大小可变。虽然 RAID-Z 通常与 RAID 5 进行比较,但它会以不同的方式执行某些操作,以解决传统 RAID 的某些长期存在的问题。RAID-Z 地址的一个问题称为写孔效应,由于电源故障或灾难性系统中断,系统无法确定哪些数据或奇偶校验块已写入磁盘。使用传统 RAID 的系统供应商通常通过使用不间断电源或专用硬件来解决问题。

3、RAID-Z2:支持丢失两个存储驱动器,类似于 RAID 6,而 RAID-Z3 可以容忍三个存储设备的丢失。与传统 RAID 一样,用户可以选择按组排列驱动器。例如,设置为 RAID-Z3 的两组六个驱动器的系统可以容忍每组中三个驱动器的丢失。

4、压缩:内联数据压缩是 ZFS 和 OpenZFS 中的内置功能,可减少存储数据所需的位数。ZFS 和 OpenZFS 都支持许多压缩算法。用户可以选择启用或禁用内联压缩。

5、重复数据删除: 内联重复数据删除是 ZFS 和 OpenZFS 中的内置功能,可通过消除冗余数据实现存储效率。ZFS 和 OpenZFS 通过查看块的校验和来查找重复数据,块的大小可能不同。用户可以启用或禁用内联重复数据删除。

6、ZFS 发送/接收: ZFS 和 OpenZFS 使文件系统的快照能够发送到不同的服务器节点,允许用户将数据复制到单独的系统,以便进行备份或数据迁移到云存储。

7、安全性: ZFS 和 OpenZFS 支持委派权限和更细粒度的访问控制列表来管理谁可以执行管理任务。用户可以选择将 ZFS 设置为只读,因此不能更改任何数据。Oracle 支持 Solaris 上的 ZFS 加密。

ZFS 的优点和局限

ZFS 集成了文件系统和卷管理器,因此用户无需获取和学习单独的工具和命令集。ZFS 免费提供丰富的功能集和数据服务,因为它内置于 Oracle 操作系统中。开源 OpenZFS 是免费提供的。可以通过将驱动器添加到存储池来扩展文件系统。传统文件系统需要调整磁盘分区的大小以增加容量,用户通常需要卷管理产品来帮助他们。

与分布式或并行文件系统(如 GPFS 和 Lustre)相比,ZFS 仅限于在单个服务器上运行,后者可以扩展到多个服务器。

ZFS 提供的丰富功能集可以使软件使用和管理变得复杂。诸如集成的 ZFS 校验和算法之类的功能可能需要额外的处理能力并影响性能。

在 Linux 社区中,对于 ZFS 代码和二进制内核模块的重新分发有许多关于许可的意见。例如,Red Hat 认为分发受 CDDL 保护的代码并使用通用公共许可证(GPL)保护的代码是有问题的。相比之下,分发 Ubuntu 的 Canonical 确定它符合 CDDL 和 GPL 许可证的条款。

ZFS 与 OpenZFS

Oracle 的 ZFS 和开源 OpenZFS 源自相同的 ZFS 源代码。在不同的轨道上,Oracle 和开源社区分别添加了扩展并对 ZFS 和 OpenZFS 进行了显着的性能改进。Oracle ZFS 更新是专有的,仅在 Oracle 技术中可用。可以免费获得开源 OpenZFS 代码的更新。

Oracle 自 2010 年以来对 ZFS 所做的增强功能包括:

加密;跨 OS 压缩数据的持久性支持重新引导在 L2 自适应替换高速缓存(ARC);可引导的可扩展固件接口标签,支持物理磁盘和大小超过 2 TB 的虚拟磁盘卷;默认用户和组配额;池/文件系统监控。

开源社区对 OpenZFS 所做的更新列表包括:

额外的压缩算法;可恢复发送/接收,允许长时间运行的 ZFS 发送/接收操作从系统中断点重新启动;压缩发送/接收,允许系统从一个 ZFS 池向另一个 ZFS 池发送压缩数据,而不必在从发送节点移动到目的地时解压缩/重新压缩数据;压缩 ARC,允许 ZFS 将压缩数据保存在内存中,从而在缓存中启用更大的工作数据集;最大块大小从 128 KB 增加到 16 MB,以提高处理大型文件时的性能,并在从驱动器故障中恢复时加快数据重建速度。

本文地址:IT问答频道 https://www.hkm168.com/itwenda/1030038.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • ipad a1822是什么型号

    ipad a1822是什么型号

    ipada1822是苹果ipad第5代的型号;ipad第5代是苹果公司于2017年03月21日在美国加利福尼亚州发布的平板电脑;该机型采用铝镁合金材质一体成型结构;前端外框为白色或黑色;有银色、金色和深空灰色3种外观颜色。本教程操作环境:...

  • html中浮动是什么

    html中浮动是什么

    在html中,浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距,只需要给元素设置“float:left|right|none|inherit”样式即可。本教程操作环境:windows7系统、CSS3...

  • 周排行
  • 月排行
  • 年排行

精彩推荐