# 22.1.是什么使 ZFS 与众不同

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

ZFS 最初由 Sun™ 开发，持续的开源 ZFS 开发已转移到 [OpenZFS 项目](http://open-zfs.org/)。

ZFS 有三个主要的设计目标：

* 数据完整性：所有数据都包括数据的 [校验和](https://docs.freebsd.org/en/books/handbook/zfs/#zfs-term-checksum)。ZFS 会计算校验和并将其与数据一起写入。当稍后读取该数据时，ZFS 会重新计算校验和。如果校验和不匹配，表示检测到一个或多个数据错误，ZFS 会在有副本、镜像或奇偶校验块时尝试自动修正错误。
* 存储池：将物理存储设备添加到池中，并从共享池中分配存储空间。空间对所有文件系统和卷可用，并通过向池中添加新存储设备来增加。
* 性能：缓存机制提供了更高的性能。[ARC](https://docs.freebsd.org/en/books/handbook/zfs/#zfs-term-arc) 是一个基于内存的高级读取缓存。ZFS 提供了第二级基于磁盘的读取缓存 [L2ARC](https://docs.freebsd.org/en/books/handbook/zfs/#zfs-term-l2arc)，以及一个基于磁盘的同步写入缓存，名为 [ZIL](https://docs.freebsd.org/en/books/handbook/zfs/#zfs-term-zil)。

完整的功能和术语列表请参见 [ZFS 功能与术语](https://docs.freebsd.org/en/books/handbook/zfs/#zfs-term)。

***

ZFS 不仅仅是一个文件系统，它在根本上有别于传统的文件系统。结合了传统上分离的卷管理器和文件系统的角色，使得 ZFS 具有独特的优势。文件系统现在能够意识到底层磁盘的结构。传统的文件系统通常只能存在于一个磁盘上。如果有两个磁盘，那么就需要创建两个独立的文件系统。传统的硬件 RAID 配置通过将操作系统呈现为一个由物理磁盘提供的空间组成的单一逻辑磁盘，避免了这个问题，操作系统在其上放置文件系统。即使是像 GEOM 提供的软件 RAID 解决方案，位于 RAID 之上的 UFS 文件系统也认为自己正在处理一个单一的设备。ZFS 将卷管理器和文件系统结合起来，解决了这个问题，并允许创建共享可用存储池的文件系统。ZFS 识别物理磁盘布局的一个大优势是，随着向池中添加额外磁盘，现有文件系统会自动增长。然后，这个新空间会对文件系统可用。ZFS 还可以对每个文件系统应用不同的属性。这使得创建多个文件系统和数据集比创建一个单一的庞大文件系统更有用。
