<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=ZFS</id>
	<title>ZFS - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=ZFS"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=ZFS&amp;action=history"/>
	<updated>2026-07-05T01:24:08Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=ZFS&amp;diff=240782&amp;oldid=prev</id>
		<title>imported&gt;RecoveryRing：​增加或调整内部链接 修正笔误</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=ZFS&amp;diff=240782&amp;oldid=prev"/>
		<updated>2026-05-20T23:48:18Z</updated>

		<summary type="html">&lt;p&gt;增加或调整内部链接 修正笔误&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Expand English}}&lt;br /&gt;
{{noteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
|G2=FL&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox Filesystem&lt;br /&gt;
| full_name = ZFS&lt;br /&gt;
| name = ZFS&lt;br /&gt;
| developer = [[甲骨文公司]]&lt;br /&gt;
| introduction_os = [[OpenSolaris]]&lt;br /&gt;
| introduction_date = 2005年11月&lt;br /&gt;
| partition_id =&lt;br /&gt;
| directory_struct = 可扩展[[哈希表]]&lt;br /&gt;
| file_struct =&lt;br /&gt;
| bad_blocks_struct =&lt;br /&gt;
| max_filename_size = 255字节&lt;br /&gt;
| max_files_no = 2&amp;lt;sup&amp;gt;48&amp;lt;/sup&amp;gt;&lt;br /&gt;
| max_volume_size = 2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt;字节（16&amp;amp;nbsp;[[exabyte]]s）&lt;br /&gt;
| max_capacity = 256&amp;amp;nbsp;[[UB]]（2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; bytes)&lt;br /&gt;
| max_file_size = 2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt;字节（16&amp;amp;nbsp;[[Exabyte]]s)&lt;br /&gt;
| filename_character_set =&lt;br /&gt;
| dates_recorded =&lt;br /&gt;
| date_range =&lt;br /&gt;
| date_resolution =&lt;br /&gt;
| forks_streams = 是（称作[[扩展文件属性]]）&lt;br /&gt;
| attributes = [[POSIX]]&lt;br /&gt;
| file_system_permissions = POSIX、NFSv4 ACLs&lt;br /&gt;
| compression = 是&lt;br /&gt;
| data_deduplication = 是&lt;br /&gt;
| encryption = 是&lt;br /&gt;
| OS = [[#对其支持的操作系统|见下]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ZFS&amp;#039;&amp;#039;&amp;#039;是一個擁有[[邏輯捲軸管理]]功能的[[檔案系統]]，最早源自于[[昇陽電腦]]在2001年开始为[[Solaris]][[操作系统]]开发的文件系统。ZFS具有可扩展性，并且包括大量保护措施防止[[数据损坏]]，支持高存储容量、高效数据压缩、集成文件系统、{{link-en|卷管理|Volume (computing)}}、[[快照_(電腦儲存)|快照]]和[[寫入時複製]]、连续完整性检查与自动修复、RAID-Z、原生[[Network_File_System#NFSv4|NFSv4]] [[ACL]]等功能，并且能被精确配置。ZFS有两个主要实现，分别来自[[甲骨文公司|Oracle]]和[[OpenZFS]]，它们之间极度相似，这使得ZFS在[[类Unix系统]]中广泛可用。&lt;br /&gt;
&lt;br /&gt;
ZFS这一名字本身没有含义，也不是某种缩写，曾被认为表示Zettabyte File System。ZFS最初是[[专有软件]]，被Sun内部开发作为Solaris的一部分，由Sun存储部门的CTO、研究员{{link-en|Jeff Bonwick|Jeff Bonwick}}带领团队开发。在2005年，Solaris的大部分组件，包括ZFS成为采用[[通用开发与散布许可证]]的开源软件，作为[[OpenSolaris]]项目。在2006年，ZFS成为Solaris的一项标准特性。&lt;br /&gt;
&lt;br /&gt;
在2010年，Sun被Oracle收购，ZFS成为Oracle的注册商标。Oracle停止为OpenSolaris和ZFS项目提供更新的源代码，使得ZFS转为闭源软件。因此，有人成立了[[illumos]]项目，去维护已经存在的开源的Solaris代码，并且在2013年成立OpenZFS项目以配合ZFS的开源发展。OpenZFS团队维护管理核心ZFS代码，还有一些使用ZFS的组织维护特定的代码和必要的验证流程，以集成到他们的系统。OpenZFS在类Unix系统中被广泛使用。&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
ZFS的设计与开发由Sun公司的Jeff Bonwick所领导的一支团队完成。最早宣布于2004年9月14日，&amp;lt;ref name=&amp;quot;announce&amp;quot;&amp;gt;{{cite web | url = http://www.sun.com/2004-0914/feature/ | title = ZFS: the last word in file systems | accessdate = 2006-04-30 | publisher = Sun Microsystems | date = September 14, 2004 | archive-date = 2006-04-28 | archive-url = https://web.archive.org/web/20060428092023/http://www.sun.com/2004-0914/feature/ | dead-url = no }}&amp;lt;/ref&amp;gt;於2005年10月31日并入了Solaris开发的主干源代码。&amp;lt;ref&amp;gt;{{cite web | url = http://blogs.sun.com/roller/page/bonwick?entry=zfs_the_last_word_in | title = ZFS: The Last Word in Filesystems | author = Jeff Bonwick | work = Jeff Bonwick&amp;#039;s Blog | date = October 31, 2005 | accessdate = 2006-04-30 | deadurl = yes | archiveurl = https://www.webcitation.org/6BNdGOIEe?url=https://blogs.oracle.com/roller-ui/errors/404.jsp | archivedate = 2012-10-13 }}&amp;lt;/ref&amp;gt;并在2005年11月16日作为[[OpenSolaris]] build 27的一部分发布。Sun在OpenSolaris社区开张1年后的2006年六月，将ZFS整合进了Solaris 10 6/06版本更新。&amp;lt;ref&amp;gt;{{cite web | url = http://www.sun.com/smi/Press/sunflash/2006-06/sunflash.20060620.1.xml | title = Sun Celebrates Successful One-Year Anniversary of OpenSolaris | publisher = Sun Microsystems | date = June 20, 2006 | accessdate = 2007-04-21 | archive-date = 2008-09-28 | archive-url = https://web.archive.org/web/20080928001733/http://www.sun.com/smi/Press/sunflash/2006-06/sunflash.20060620.1.xml | dead-url = no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ZFS的命名來源發想於&amp;quot;[[Zettabyte]] File System&amp;quot;的首字母缩写。&amp;lt;ref&amp;gt;{{cite web | title = You say zeta, I say zetta | author = Jeff Bonwick | date = 2006-05-04 | work = Jeff Bonwick&amp;#039;s Blog | accessdate = 2006-09-08 | url = http://blogs.sun.com/bonwick/entry/you_say_zeta_i_say | deadurl = yes | archiveurl = https://www.webcitation.org/6BNdHzNju?url=https://blogs.oracle.com/roller-ui/errors/404.jsp | archivedate = 2012-10-13 }}&amp;lt;/ref&amp;gt;但ZFS本身並不具備任何的縮寫意涵，只是作者想闡述做為一個具備高擴充容量檔案系統且還有支援許多延伸功能的一個產品。&lt;br /&gt;
&lt;br /&gt;
== 存储池 ==&lt;br /&gt;
不同于传统文件系统需要驻留于单独设备或者需要一个卷管理系统去使用一个以上的设备，ZFS建立在虚拟的，被称为“zpools”的存储池之上（存储池最早在[[AdvFS]]實現&amp;lt;ref&amp;gt;{{cite web |url=http://sourceforge.net/projects/advfs/files/AdvFS%20design%20docs/initial%20release/ |title=AdvFS內部設計文件 (AdvFS Design Docs) |publisher=[[SourceForge.net]] |accessdate=2011-01-25 |archive-date=2013-11-02 |archive-url=https://web.archive.org/web/20131102181426/http://sourceforge.net/projects/advfs/files/AdvFS%20design%20docs/initial%20release/ |dead-url=no }}&amp;lt;/ref&amp;gt;，並且加到後來的[[Btrfs]]）。每个存储池由若干虚拟设备（&amp;#039;&amp;#039;virtual devices，vdevs&amp;#039;&amp;#039;）组成。这些虚拟设备可以是原始磁盘，也可能是一个[[RAID1]]镜像设备，或是非标准RAID等级的多磁盘组。于是zpool上的文件系统可以使用这些虚拟设备的总存储容量。&lt;br /&gt;
&lt;br /&gt;
可以使用{{link-en|磁盘限额|Disk_quota}}以及设置磁盘预留空间来限制存储池中单个文件系统所占用的空间。&lt;br /&gt;
&lt;br /&gt;
== 容量 ==&lt;br /&gt;
ZFS是一个[[128位]]的文件系统，这意味着它能存储1800[[京 (數字單位)|京]]（1.84×10&amp;lt;sup&amp;gt;19&amp;lt;/sup&amp;gt;）倍于当前[[64位]]文件系统的数据。ZFS的设计如此超前以至于这个极限就当前现实实际可能永远无法遇到。项目领导Bonwick曾说：“要填满一个128位的文件系统，将耗尽地球上所有存储设备。除非你拥有煮沸整个海洋的能量，不然你不可能将其填满。”&amp;lt;ref name=&amp;quot;announce&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
以下是ZFS的一些理论极限：&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;48&amp;lt;/sup&amp;gt;—任意文件系统的快照数量（2×10&amp;lt;sup&amp;gt;14&amp;lt;/sup&amp;gt;）&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;48&amp;lt;/sup&amp;gt;—任何单独文件系统的文件数（2×10&amp;lt;sup&amp;gt;14&amp;lt;/sup&amp;gt;）&lt;br /&gt;
* 16&amp;amp;nbsp;[[艾字节|EiB]] (2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt; 字节)—文件系统最大尺寸&lt;br /&gt;
* 16&amp;amp;nbsp;EiB (2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt; 字节)—最大单个文件尺寸&lt;br /&gt;
* 16&amp;amp;nbsp;EiB (2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt; 字节)—最大属性大小&lt;br /&gt;
* ~2.88×10&amp;lt;sup&amp;gt;15&amp;lt;/sup&amp;gt;&amp;amp;nbsp;[[泽字节|ZiB]] (2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; 字节)—最大zpool大小&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;56&amp;lt;/sup&amp;gt;—单个文件的属性数量（受ZFS文件数量的约束，实际为2&amp;lt;sup&amp;gt;48&amp;lt;/sup&amp;gt;）&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;56&amp;lt;/sup&amp;gt;—单个目录的文件数（受ZFS文件数量的约束，实际为2&amp;lt;sup&amp;gt;48&amp;lt;/sup&amp;gt;）&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt;—单一zpool的设备数&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt;—系统的zpools数量&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt;—单一zpool的文件系统数量&lt;br /&gt;
&lt;br /&gt;
作为对这些数字的感性认识，假设每秒钟创建1,000个新文件，达到ZFS文件数极限需要大约9,000年。&lt;br /&gt;
&lt;br /&gt;
在辩解填满ZFS与煮沸海洋的关系时，Bonwick写到：&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
尽管我们都希望[[摩尔定律]]永远延续，但是[[量子力学]]给定了任何物理设备上计算速率（computation rate）与信息量的理论极限{{來源請求}}。举例而言，一个-{zh-hans;zh-hant|质量}-为1[[公斤]]，体积为1[[升]]的物体，每秒至多在10&amp;lt;sup&amp;gt;31&amp;lt;/sup&amp;gt;[[位]][[信息]]&lt;br /&gt;
上进行10&amp;lt;sup&amp;gt;51&amp;lt;/sup&amp;gt;次运算&amp;lt;ref&amp;gt;Seth Lloyd, &amp;quot;[http://puhep1.princeton.edu/~mcdonald/examples/QM/lloyd_nature_406_1047_00.pdf Ultimate physical limits to computation（计算的终极物理限制）] {{Wayback|url=http://puhep1.princeton.edu/~mcdonald/examples/QM/lloyd_nature_406_1047_00.pdf |date=20080807173904 }}.&amp;quot; Nature 406, 1047-1054 (2000)]&amp;lt;/ref&amp;gt;。一个完全的128位存储池将包含2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt;个块&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; 2&amp;lt;sup&amp;gt;137&amp;lt;/sup&amp;gt;字节&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; 2&amp;lt;sup&amp;gt;140&amp;lt;/sup&amp;gt;位；应此，保存这些数据位至少需要(2&amp;lt;sup&amp;gt;140&amp;lt;/sup&amp;gt;位) / (10&amp;lt;sup&amp;gt;31&amp;lt;/sup&amp;gt;位/公斤) &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; 1360亿公斤的物质。&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 写入时复制事务模型 ==&lt;br /&gt;
ZFS采用[[写入时复制]]事务对象模型。文件系统中的所有块指向都包含目标块的256位[[校验和]]或[[密码散列函数|hash]]值（目前有{{link-en|Fletcher-2|Fletcher&amp;#039;s checksum}}、 Fletcher-4与[[SHA-2]]供选择）&amp;lt;ref&amp;gt;{{cite web |title=ZFS On-Disk Specification |url=http://opensolaris.org/os/community/zfs/docs/ondiskformat0822.pdf |publisher=Sun Microsystems, Inc. |year=2006 |deadurl=yes |archiveurl=https://web.archive.org/web/20081230170058/http://www.opensolaris.org/os/community/zfs/docs/ondiskformat0822.pdf |archivedate=2008年12月30日 |accessdate=2017年8月14日 }} 见2.4节。&amp;lt;/ref&amp;gt;。在读取块时会对这些参数加以验证。包含活动数据的块不会被覆盖，而是给修改过的数据分配一个新块，任何引用此块的[[元数据]]块都被重新读取、重新分配和重写。为减少该过程的开销，多次读写更新会被归纳为一个事件组，在需要同步写入语义时会使用ZIL（{{link-en|目的日志|intent log}}）写入缓存，而这些块会与校验和一同编入{{link-en|Merkle 树|Merkle tree}}中。&lt;br /&gt;
&lt;br /&gt;
利用写入时复制使ZFS的快照和事务功能的实现变得更简单和自然，快照功能更灵活，但严重碎片化问题是其缺点之一。对于通过顺序写生成的大文件，如果以后随机的对其中的一部分进行了更改，那么这个文件在硬盘上的物理地址就变得不再连续，未来的顺序读会变得性能比较差。&lt;br /&gt;
&lt;br /&gt;
== 快照与克隆 ==&lt;br /&gt;
当ZFS写入新数据时，可以保留包含旧数据的块，因而能够维护文件系统的[[快照 (电脑储存)|快照]]版本。ZFS快照具备一致性（快照基于单个时间点反映整个数据）。而因为组合快照的所有数据都会被储存，且整个存储池通常每小时会进行几次快照，所以快照的创建速度非常快。任何未变动的数据会在文件系统及其快照之间进行共享，因此也具备空间高效性。快照本质上是只读的，确保在创建后快照不会被修改。快照可以被整个恢复，也可以恢复快照中的某些文件或目录。&lt;br /&gt;
&lt;br /&gt;
ZFS也可以创建可写快照（“克隆”），让两个独立的文件系统共享一组块。对克隆文件系统的修改都会创建新的数据块以反映这些更改。但是无论存在多少个克隆，未变动的块仍然会被共享。这是写入时复制原则的实施方式。&lt;br /&gt;
&lt;br /&gt;
== 动态条带化 ==&lt;br /&gt;
ZFS能动态条带化所有设备以最大化吞吐量。当额外的设备被加入到zpool中的时候，条带宽度会自动-{zh-hans;zh-hant|扩展}-以包含这些设备。这使得存储池中的所有磁盘都被用到，同时负载被平摊到所有的磁盘上。&lt;br /&gt;
&lt;br /&gt;
== 可变块尺寸 ==&lt;br /&gt;
ZFS使用可变大小的块，最大可至128 KB。现有的代码允许管理员调整最大块大小，这在大块效果不好的时候有用。未来也许能做到自动调整适合工作量的块大小。[需要引用]&lt;br /&gt;
&lt;br /&gt;
ZFS的可变大小的块与[[Btrfs|BtrFS]]和[[Ext4]]的extent不同。在ZFS中，在一个文件中所有数据块的逻辑长度必须是相同的，不同文件之间的块大小可以不同，因此ZFS可以用直接映射（direct map）的方式（同ufs/ffs/ext2/ext3）来来搜索间接块的数据指针数组（blkptr）。BtrFS和Ext4的extent方式在同一个文件中每个数据块的大小都可以不相同，因此需要用[[B+树]]或者类[[B树]]的方式来组织间接块的数据。&lt;br /&gt;
&lt;br /&gt;
虽然直接映射方式比B+树的查找速度快，但是这种方式的缺点也非常明显，如：元数据开销过大、顺序IO的大文件性能不好、删除比较慢等等，因此在现代文件系统中映射方式逐渐被extent变长块取代。&lt;br /&gt;
&lt;br /&gt;
如果数据压缩（LZJB）被启用，可变块大小需要被用到。如果一个数据块可被压缩至一个更小的数据块，则小的数据块将使用更少的存储和提高吞吐量（代价是增加CPU压缩和解压缩的负担）。&lt;br /&gt;
&lt;br /&gt;
== 轻量化文件系统创建 ==&lt;br /&gt;
在ZFS中，存储池中文件系统的操作相比传统文件系统的卷管理更加便捷。创建ZFS文件系统或者改变一个ZFS文件系统的大小接近于传统技术中的管理目录而非管理卷。&lt;br /&gt;
&lt;br /&gt;
== 储存管理 ==&lt;br /&gt;
&lt;br /&gt;
== 限制 ==&lt;br /&gt;
ZFS的最新beta版已支持透明加密。&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
 |url         = http://www.opensolaris.org/os/project/zfs-crypto/&lt;br /&gt;
 |title       = OpenSolaris Project: ZFS on disk encryption support&lt;br /&gt;
 |accessdate  = 2006-12-13&lt;br /&gt;
 |publisher   = OpenSolaris Project&lt;br /&gt;
 |deadurl     = yes&lt;br /&gt;
 |archiveurl  = https://www.webcitation.org/6BNdKzJ4V?url=http://hub.opensolaris.org/bin/view/Project+zfs-crypto/WebHome&lt;br /&gt;
 |archivedate = 2012-10-13&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 专利争端 ==&lt;br /&gt;
NetApp指控Sun的ZFS文件系统侵犯了它WAFL的七项专利，Sun[https://web.archive.org/web/20140901050937/http://news.ccidnet.com/art/1032/20071028/1255929_1.html 反诉]NetApp侵犯了12项专利，其中包括NFS协议等。后来专利争端以和解告终。&lt;br /&gt;
&lt;br /&gt;
==对其支持的操作系统==&lt;br /&gt;
*[[Solaris|Sun Solaris]]&lt;br /&gt;
*[[OpenSolaris]]&lt;br /&gt;
*[[Illumos]]发行版&lt;br /&gt;
*[[OpenIndiana]]&lt;br /&gt;
*[[FreeBSD]]&lt;br /&gt;
*[[Mac OS X Server#Mac OS X Server 10.5 (Leopard Server)|Mac OS X Server 10.5]]&lt;br /&gt;
*[[NetBSD]]&lt;br /&gt;
*[[Linux]]（通过[[用户空间文件系统]]或原生第三方内核[[可載入核心模組]]支持）&amp;lt;ref&amp;gt;{{cite web | url = http://zfsonlinux.org/faq.html#WhatAboutTheLicensingIssue | title = 1.1 What about the licensing issue? | accessdate = November 18, 2010 | archive-date = 2010-09-26 | archive-url = https://web.archive.org/web/20100926104451/http://zfsonlinux.org/faq.html#WhatAboutTheLicensingIssue | dead-url = no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[Btrfs]]&lt;br /&gt;
* [[OpenZFS]]&lt;br /&gt;
&lt;br /&gt;
== 參考文獻 ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
* [https://web.archive.org/web/20070408132558/http://www.opensolaris.org/os/community/zfs/ ZFS主頁]&lt;br /&gt;
* [http://www.zfsonlinux.org/ ZFS on Linux] {{Wayback|url=http://www.zfsonlinux.org/ |date=20220517072313 }} - 美國[[勞倫斯利福摩爾國家實驗室]]的ZFS on Linux開源計劃&lt;br /&gt;
&lt;br /&gt;
{{Filesystem}}&lt;br /&gt;
&lt;br /&gt;
[[Category:磁盘文件系统]]&lt;br /&gt;
[[Category:昇陽電腦軟體]]&lt;br /&gt;
[[Category:Linux檔案系統]]&lt;br /&gt;
[[Category:OpenSolaris]]&lt;/div&gt;</summary>
		<author><name>imported&gt;RecoveryRing</name></author>
	</entry>
</feed>