功能标志
ZFS 的磁盘格式最初是通过单一数字进行版本控制的,每当格式发生变化时,该数字就会增加。当 ZFS 的开发由单一组织推动时,这种编号方法是合适的。
对于 OpenZFS 的分布式开发,版本编号不再适用。任何对编号的更改都需要在所有实现之间达成一致,以确保每次对磁盘格式的更改都能被接受。
OpenZFS 功能标志——传统版本编号的替代方案——允许**为每次磁盘格式的更改分配一个唯一的池属性名称**。这种方法支持:
独立的格式更改
相互依赖的格式更改
兼容性
如果一个池使用的所有*功能*都被多个 OpenZFS 实现支持,那么该磁盘格式在这些实现之间是可移植的。
启用时具有排他性的功能应定期移植到所有发行版中。
参考资料
ZFS 功能标志 (Christopher Siden,2012-01,存档于互联网档案馆 Wayback Machine),特别是:“……池版本 1-28 的旧版版本号仍然存在……”。
zpool-features(7) 手册页 - OpenZFS
zpool-features (5) – illumos
各操作系统的功能标志实现
Feature Flag | Read-Only Compatible | OpenZFS (Linux, FreeBSD 13+) | FreeBSD pre OpenZFS | Illumos | Joyent | NetBSD | Nexenta | OmniOS CE | OpenZFS on OS X | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0.6.5.11 | 0.7.13 | 0.8.6 | 2.0.7 | 2.1.16 | 2.2.7 | master | 12.1.0 | 12.2.0 | master | master | 10.1 | 9.4 | 4.0.5-FP | master | r151050 | r151052 | master | 2.2.0 | 2.2.2 | 2.2.3 | main | ||
org.zfsonlinux:allocation_classes | yes | no | no | yes | yes | yes | yes | yes | no | yes | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
com.delphix:async_destroy | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
org.openzfs:blake3 | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.fudosecurity:block_cloning | yes | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.datto:bookmark_v2 | no | no | no | yes | yes | yes | yes | yes | no | no | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
com.delphix:bookmark_written | no | no | no | no | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.delphix:bookmarks | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.nexenta:class_of_storage | yes | no | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no |
org.openzfs:device_rebuild | yes | no | no | no | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.delphix:device_removal | no | no | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | yes | yes | yes | yes | yes | yes | yes | yes |
org.openzfs:draid | no | no | no | no | no | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
org.illumos:edonr | no | yes1 | yes1 | yes1 | yes1 | yes1 | yes1 | yes | no | no | yes | yes | no | no | no | yes | yes | yes | yes | yes | yes | yes | yes |
com.delphix:embedded_data | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | yes | yes | yes | yes | yes | yes | yes | yes |
com.delphix:empty_bpobj | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.delphix:enabled_txg | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.datto:encryption | no | no | no | yes | yes | yes | yes | yes | no | no | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
com.delphix:extensible_dataset | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.klarasystems:fast_dedup | yes | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | no | no | no | no | no | no | yes |
com.joyent:filesystem_limits | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.delphix:head_errlog | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.delphix:hole_birth | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
org.open-zfs:large_blocks | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | yes | yes | yes | yes | yes | yes | yes | yes |
org.zfsonlinux:large_dnode | no | no | yes | yes | yes | yes | yes | yes | no | yes | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
com.klarasystems:large_microzap | yes | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | no | no | no | no | no | no | yes |
com.delphix:livelist | yes | no | no | no | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.delphix:log_spacemap | yes | no | no | no | yes | yes | yes | yes | no | no | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
org.zfsonlinux:longname | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | no | no | no | no | no | no | yes |
org.illumos:lz4_compress | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.nexenta:meta_devices | yes | no | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no |
com.joyent:multi_vdev_crash_dump | no | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.delphix:obsolete_counts | yes | no | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | yes | yes | yes | yes | yes | yes | yes | yes |
org.zfsonlinux:project_quota | yes | no | no | yes | yes | yes | yes | yes | no | no | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
org.openzfs:raidz_expansion | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes |
com.delphix:redacted_datasets | no | no | no | no | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.delphix:redaction_bookmarks | no | no | no | no | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.delphix:redaction_list_spill | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.datto:resilver_defer | yes | no | no | yes | yes | yes | yes | yes | no | no | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
org.illumos:sha512 | no | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | yes | yes | yes | yes | yes | yes | yes | yes |
org.illumos:skein | no | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | yes | yes | yes | yes | yes | yes | yes | yes |
com.delphix:spacemap_histogram | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
com.delphix:spacemap_v2 | yes | no | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
org.zfsonlinux:userobj_accounting | yes | no | yes | yes | yes | yes | yes | yes | no | no | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
com.nexenta:vdev_properties | yes | no | no | no | no | no | no | no | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no |
com.klarasystems:vdev_zaps_v2 | no | no | no | no | no | no | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
com.nexenta:wbc | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | yes | no | no | no | no | no | no | no |
org.openzfs:zilsaxattr | yes | no | no | no | no | no | yes | yes | no | no | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
com.delphix:zpool_checkpoint | yes | no | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | yes | yes | yes | yes | yes | yes | yes |
org.freebsd:zstd_compress | no | no | no | no | yes | yes | yes | yes | no | no | no | no | no | no | no | no | no | no | no | yes | yes | yes | yes |
Table generates by parsing manpages for feature flags, and is entirely dependent on good, accurate documentation.
Last updated on 2025-01-12T11:54:24.577430Z using compatibility_matrix.py.