29 |
feature@async_destroy |
销毁文件系统需要遍历其所有数据,以便将其使用的空间返回到池。
如果没有async_destroy,则在回收所有空间之前不会完全删除文件系统。如果销毁操作因重启或断电而中断,则下次尝试打开池时需要同步完成销毁操作。
当启用async_destroy时,文件系统的数据将由后台进程回收,允许销毁操作在不遍历整个文件系统的情况下完成。
后台进程能够在池打开后恢复中断的销毁,从而无需作为打开操作的一部分完成中断的销毁。通过freeing属性,可以获得后台进程要回收的剩余空间量。
此功能仅为active,而freeing为非零。
|
enabled |
30 |
feature@empty_bpobj |
此功能提高了创建和使用单个文件系统或卷的大量快照的性能,并减少了所需的磁盘空间。
当存在多个快照时,每个快照使用多个块指针对象(BlockPointerObject——bpobj)来跟踪与该快照关联的块。
然而在常见实例中,这些bpobj中的大多数是空的。此功能允许按需创建每个bpobj,从而消除空的bpobj。
当启用此功能后创建了任何文件系统、卷或快照时,此功能将出于active状态。 |
active |
31 |
feature@lz4_compress |
lz4是一种高性能实时压缩算法,其特点是比旧的lzjb压缩具有更快的压缩和解压缩速度以及更高的压缩比。
通常,与lzjb相比,lz4压缩在可压缩数据上大约快50%,在不可压缩数据中快200%。解压缩时也快了大约80%,同事提供了大约10%的压缩比。
当此功能为enable时,管理员可以使用zfs set命令对池中的任何数据集启用lz4压缩。所有新写入的元数据将使用lz4算法进行压缩。
此功能在启用后立即进入active状态,并且永远不会回到enable状态。 |
active |
32 |
feature@multi_vdev_crash_dump |
此功能允许使用由多个vdev组成的池配置转储设备。这些vdev可以以任何镜像raidz配置布局。
当此功能设置为enabled使,管理员可以使用dumpadm在多个vdev组成的池上配置转储设备。
在FreeBSD和Linux下,此功能未使用,但已注册兼容。在这些系统上创建的新池将启用该功能,但不会转为active,因为崩溃转储支持不需要此功能。
可以导入此功能出于active状态的现有池。 |
enabled |
33 |
feature@spacemap_histogram |
此功能允许zfs维护更多池内自由空间组织方式的信息。
如果此功能为enabled,则在创建新的空间地图对象或将现有空间地图升级为新格式时,该功能将出于active状态,并且不能返回到enabled状态。 |
active |
34 |
feature@enabled_txg |
启用此功能后,zfs将记录启用新功能的交易组编号。这对用户没有可见影响,但其他功能可能依赖于此功能。
此功能在启用后立即变为active状态,且永远不会恢复到enabled状态。 |
active |
35 |
feature@hole_birth |
此功能有bug,其结果是:如果从受影响的数据集执行zfs send -i(或-R),接收方将不会看到任何校验和或其他错误,但生成的目标快照将与源不匹配。
默认情况下,zfs send -i禁用了它的使用。
此功能提高了具有许多漏洞的对象的增量发送(zfs send -i)和接收的性能。 |
active |
36 |
feature@extensible_dataset |
此功能允许更灵活地使用内部zfs数据结构,并存在其他功能所依赖地功能。
依赖此功能的功能有:
bookmarks、bookmark_v2、bookmark_written、edonr、encryption、filesystem_limits、large_blocks、large_dnode、project_quota、redaction_bookmarks、redacted_datasets、sha512、skein、userobj_accounting、zstd_compress
当第一个相关功能使用此功能时,此功能出于active状态,当使用此功能的所有数据集都被销毁时,此功能将返回到enabled状态。 |
enable |
37 |
feature@embedded_data |
此功能提高了高压缩块的性能和压缩比。其内容可以压缩到112字节或更小的块以利用此功能。
启用此功能后,高度可压缩块的内容存储在块“指针”本身中(在这种情况下,这是一个误称,因为它包含压缩数据,而不是指向其在磁盘上位置的指针)。
因此,节省了块的空间(一个扇区,通常为512B或4kB),并且不需要额外的I/O来读取和写入数据块。
此功能在启用后立即变为active状态,并且永远不会恢复到enabled状态。 |
active |
38 |
feature@bookmarks |
此功能启用zfs bookmark命令。
当池中存在任意书签(bookmark)时,此功能出于active状态。
可以通过运行zfs list -t bookmark -r命令列出池中所有书签。 |
enable |
39 |
feature@filesystem_limits |
此功能启用文件系统和快照限制。这些限制可用于控制在树中设置限制的点上可以创建多少文件系统和/或快照
在数据集上设置任何一个限制属性后,此功能即出于active状态。一旦激活,该功能永远不会停用。 |
enable |
40 |
feature@large_blocks |
此功能允许将数据集上的记录大小设置为128kB。
一旦数据集包含块大小大于128kB的文件,此功能就会变为active状态;一旦所有记录大小大于128kB的文件系统都被销毁,此功能恢复至enabled状态。 |
enable |
41 |
feature@large_dnode |
|
|
42 |
feature@sha512 |
此功能允许使用SHA-512/256截断哈希算法(FIPS 180-4)进行校验和和重复数据消除。
SHA-512的本机64位算法在64位硬件上比SHA-256提供了大约50%的性能提升,因此对于散列性能很重要的系统来说,它是一个很好的最小变化替换候选,但这些系统由于任何原因都不能使用更快的skein和edonr算法。
当sha512功能设置为enabled时,管理员可以使用zfs set checksum=sha512 dset在任何数据集上启用sha512校验和。将校验和属性设置为sha512后,此功能将变为active状态,并将在销毁所有校验和设置为SHA612的文件系统后恢复enabled状态。 |
enable |
43 |
feature@skein |
此功能支持使用Skein哈希算法进行校验和和重复数据消除。
Skein是一种高性能安全哈希算法,曾在NIST SHA-3竞赛中入围。 它在64位硬件上提供了非常高的安全余量和高性能(比SHA-256快80%)。
另外一个Edon-R更快,比SHA-256快350%以上,但是使用
该实现还利用了ZFS中的新的salted校验和功能,这意味着校验和在被馈送到要进行校验和的数据块之前,用一个秘密的256位随机密钥(存储在池中)预播种。
因此,生成的校验和对于给定的池是唯一的,防止了对具有重复数据消除的系统的哈希冲突攻击。
当skein功能设置为enabled时,管理员可以使用zfs set checksum=skein dset在任何数据集上启用skein校验和。
将checksum属性设置为skein后,此功能将变为active状态,并将在所有将checksum设置为skein的文件系统销毁后恢复到enabled状态。
|
enable |
44 |
feature@userobj_accounting |
此功能允许管理员按用户和组说明对象使用情况信息。
此功能启用后立即变为active状态,且永远不会恢复enabled状态。
每个文件系统将在重新挂载时自动升级,或在该文件系统下创建新文件时自动升级。
还可以通过zfs set version=current fs命令在文件系统上出发升级。
升级过程在后台运行,对于包含大量文件的文件系统,可能需要一段事件才能完成。 |
active |
45 |
feature@encryption |
此功能支持创建和管理本机加密的数据集。
创建加密数据集时,此功能处于active状态,并在销毁使用此功能的所有数据集时返回到enabled状态。 |
enabled |
46 |
feature@project_quota |
此功能允许管理员根据项目标识符(ID)计算孔家和对象使用信息。
项目ID是基于对象的属性。
升级现有文件系统时,没有项目ID的对象将被标记为零项目ID。
启用此功能后,如果设置了父目录的继承标志(通过chattr [+-]P或zfs project -s|-C),创建新的对象将继承其父目录的项目ID。
否则,新对象的项目ID将为零。
对象的项目ID可以由所有者(或特权用户)通过chattr -p prjid或zfs project -p prjd随时更改。
此功能将在启用后立即激活,并且永远不会返回禁用状态。
每个文件系统将在重新安装时自动升级,或者在该文件系统下创建新文件时自动升级。
还可以通过zfs set version=current fs在文件系统上触发升级。
升级过程在后台运行,对于包含大量文件的文件系统,可能需要一段时间才能完成。
|
active |
47 |
feature@device_removal |
此功能使zpool remove命令能够删除顶级vdev,并将其排空以减少池的总大小。
当在一个顶级vdev上使用了zpool remove命令后,此功能变为active状态,并永远不会回到enabled状态。 |
enabled |
48 |
feature@obsolete_counts |
此功能增强了device_removal,随着时间的推移,它将减少用于跟踪已删除设备的内存。
当释放或重新映射间接块时,它们的间接映射部分已“过时”(obsolete),不再需要。
当在顶级vdev上使用zpool remove命令时,此功能将变为active状态,且永远不会回到enabled状态。 |
enabled |
49 |
feature@zpool_checkpoint |
此功能启用zpool checkpoint命令,该命令可以在发出池时检查池的状态,然后将其倒回或丢弃。
当zpool checkpoint命令用于检查池时,此功能将激活。
只有当池被重绕(rewound)或检查点被丢弃时,该功能才会返回到enabled状态。
zpool checkpoint poolname命令对池设置检查点,以便将来使用zpool import --rewind-to-checkpoint命令将池恢复到检查点。
zpool status和zpool list命令会显示池的checkpoint信息,包括创建时间和消耗的存储空间。
使用zpool checkpoint -d poolname命令可以取消检查点。 |
enabled |
50 |
feature@spacemap_v2 |
此功能允许在有利的情况下使用由两个单词(而不是一个)组成的新空间映射编码(space map encoding)。
新编码允许空间映射更有效地表示磁盘上的大空间区域,同时也增加了它们的最大可寻址偏移量。
此功能在启用后将变为active状态,且永远不会返回到enabled状态。 |
active |
51 |
feature@allocation_classes |
此功能支持单独的分配类。
当使用zpool create或zpool add命令创建专用分配类vdev(去重或特殊)时,此功能将变为active状态
在设备移除的情况下,如果移除了所有专用分配类vdev,则可将其返回到enabled状态。 |
enabled |
52 |
feature@resilver_defer |
此功能允许ZFS在现有的重新调整器(resilver)已在进行时,推迟新的重新调整。
如果没有此功能,任何新的调整器将导致当前运行的调整器立即从头开始重新启动。
调整器延迟后,此功能将变为active状态,并在被延迟的调整器开始时返回enabled状态。 |
enabled |
53 |
feature@bookmark_v2 |
此功能支持创建和管理ZFS中其他功能所需的较大书签。
当创建v2书签时,此功能将转为active,当所有v2书签被销毁时,该功能将返回到enabled状态。 |
enabled |
54 |
feature@redaction_bookmarks |
此功能支持使用编校zfs send,它创建编校书签,存储由创建它们的发送编校的块列表。 |
enabled |
55 |
feature@redacted_datasets |
此功能允许接收经编辑的zfs send流。其在接收时创建经编辑的数据集。
这些数据集缺少一些块,因此无法安全装载,其内容也无法安全读取。 |
enabled |
56 |
feature@bookmark_written |
此功能启用附加的书签记帐字段,启用writed#bookmark属性(自书签后写入的空间),并估计书签增量的发送流大小。
当创建书签时,此功能将处于active状态,当所有带有这些字段的书签被销毁时,该功能将返回到enabled状态。 |
enabled |
57 |
feature@log_spacemap |
此功能提高了严重碎片化池的性能,特别是在工作负载在随机写入时。
它通过在每个TXG的单个空间映射上记录所有metaslab更改,而不是将多个写入分散到所有的metaslab空间映射。
此功能在启用后立即变为active状态,且永远不会回到enabled状态。 |
active |
58 |
feature@livelist |
当对克隆进行了大量随机/稀疏写入时,此功能允许比传统方法更快地删除克隆。
克隆创建后分配和释放的所有块都由克隆的活动列表跟踪,该列表在克隆删除过程中引用。
该功能在创建克隆时处于active状态,并保持此状态,直到所有克隆都已销毁。 |
active |
59 |
feature@device_rebuild |
此功能使zpool attach和zpool replace命令能够在调整大小时执行顺序重建(sequential reconstruction),而不是修复重建(healing reconstruction)。
顺序重建在不立即验证校验和的情况下按LBA顺序对设备进行重定位。完成后,开始清理,然后验证校验和。
这种方法允许在最短的时间内将完全冗余恢复到池中。
当包括验证校验和的时间时,这种两阶段方法将比修复修复器花费更长的时间。
但是,除非存在额外的池损坏,否则擦洗不应报告校验和错误。
此功能与raidz配置不兼容。
当顺序调整器正在进行时,此功能将处于active状态,并在调整器完成时返回enabled状态。 |
enabled |
60 |
feature@zstd_compress |
zstd是一种高性能压缩算法,其特点是结合了高压缩比和高速度。
与gzip相比,zstd在更高的速度下提供了更好的压缩。
与lz4相比,zstd提供了更好的压缩,但速度稍慢。
通常,zstd压缩速度范围为每个线程250到500 MB/s,解压缩速度超过每个线程1 GB/s。
当zstd功能设置为enabled时,管理员可以使用zfs set compress=zstd dset启用任何数据集的zstd压缩。
一旦将压缩属性设置为zstd,此功能将变为active状态,并且一旦所有将压缩属性设为zstd的文件系统被销毁,该功能将恢复enabled状态。 |
enabled |
61 |
feature@draid |
此功能支持使用draid vdev类型。
dRAID是raidz的一个变体,它提供了集成的分布式热备盘,允许在保持raidz优势的同时更快地调整大小。
数据、奇偶校验和备用空间按冗余组组织,并均匀分布在所有设备上。
创建使用draid vdev类型的池时,或将新的draid vdev添加到现有池时,此功能转为active状态。 |
enabled |