ZFS 是一个先进的文件系统,旨在解决以往存储子系统软件中存在的主要问题。

ZFS 最初由 Sun™ 公司开发,正在进行的开源 ZFS 开发已经转移至 OpenZFS 项目open in new window

ZFS 有三个主要设计目标:

  • 数据完整性。所有的数据都包括数据校验码open in new window。ZFS 计算校验和并将其与数据一起写入。当以后读取该数据时,ZFS 重新计算校验和。如果校验和不匹配,意味着检测到一个或多个数据错误,ZFS 将尝试在同位、镜像或同位块可用时自动纠正错误。

  • 存储池:将物理存储设备添加到池中,并从该共享池中分配存储空间。空间对所有文件系统和卷都是可用的,并通过向池中添加新的存储设备而增加。

  • 性能:缓存机制能提供更高的性能。ARCopen in new window 是一个先进的基于内存的读取缓存。ZFS 提供一个带有 L2ARCopen in new window 的基于磁盘的二级可读缓存,以及一个名为 ZILopen in new window 的基于磁盘的同步写缓存。

完整的功能和术语列表见 ZFS 功能和术语open in new window

20.1. 是什么使 ZFS 与众不同

ZFS 不仅仅是一个文件系统,它与传统的文件系统有着本质上的区别。将卷管理器和文件系统这两个传统的独立角色结合起来,为 ZFS 提供独特的优势。现在文件系统知道磁盘的底层结构。传统的文件系统每次只能单独存在于一个磁盘上。如果有两个磁盘,那么就必须创建两个独立的文件系统。可通过传统的硬件 RAID 配置来避免这个问题,它为操作系统提供一个由物理磁盘提供的空间组成的单一逻辑磁盘,操作系统在上面放置一个文件系统。但即使是像 GEOM 提供的软件 RAID 解决方案,在 RAID 上面的 UFS 文件系统也认为它在处理一个单一的设备。ZFS 的卷管理器和文件系统的结合解决这个问题,并允许创建的文件系统都共享一个可用的存储池。ZFS 对物理磁盘分布的了解的一大优势是,当向池中添加额外的磁盘时,现有的文件系统会自动增大。使这些新的空间成为文件系统的可用空间。ZFS 还可以对每个文件系统应用不同的属性。这使得独立的文件系统和数据集的创建成为可能,而非单一的单体文件系统,从而 ZFS 更加实用。

Loading...