功能标志

ZFS 的磁盘格式最初是通过单一数字进行版本控制的,每当格式发生变化时,该数字就会增加。当 ZFS 的开发由单一组织推动时,这种编号方法是合适的。

对于 OpenZFS 的分布式开发,版本编号不再适用。任何对编号的更改都需要在所有实现之间达成一致,以确保每次对磁盘格式的更改都能被接受。

OpenZFS 功能标志——传统版本编号的替代方案——允许**为每次磁盘格式的更改分配一个唯一的池属性名称**。这种方法支持:

  • 独立的格式更改

  • 相互依赖的格式更改

兼容性

如果一个池使用的所有*功能*都被多个 OpenZFS 实现支持,那么该磁盘格式在这些实现之间是可移植的。

启用时具有排他性的功能应定期移植到所有发行版中。

参考资料

ZFS 功能标志 (Christopher Siden,2012-01,存档于互联网档案馆 Wayback Machine),特别是:“……池版本 1-28 的旧版版本号仍然存在……”。

zpool-features(7) 手册页 - OpenZFS

zpool-features (5) – illumos

各操作系统的功能标志实现

ZFS Feature Matrix
Feature FlagRead-Only
Compatible
OpenZFS (Linux, FreeBSD 13+)FreeBSD pre OpenZFSIllumosJoyentNetBSDNexentaOmniOS CEOpenZFS on OS X
0.6.5.110.7.130.8.62.0.72.1.162.2.7master12.1.012.2.0mastermaster10.19.44.0.5-FPmasterr151050r151052master2.2.02.2.22.2.3main
org.zfsonlinux:allocation_classesyesnonoyesyesyesyesyesnoyesyesyesnonononoyesyesyesyesyesyesyes
com.delphix:async_destroyyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
org.openzfs:blake3nonononononoyesyesnononononononononononoyesyesyesyes
com.fudosecurity:block_cloningyesnononononoyesyesnononononononononononoyesyesyesyes
com.datto:bookmark_v2nononoyesyesyesyesyesnonoyesyesnonononoyesyesyesyesyesyesyes
com.delphix:bookmark_writtennonononoyesyesyesyesnononononononononononoyesyesyesyes
com.delphix:bookmarksyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.nexenta:class_of_storageyesnononononononononononononoyesyesnonononononono
org.openzfs:device_rebuildyesnononoyesyesyesyesnononononononononononoyesyesyesyes
com.delphix:device_removalnononoyesyesyesyesyesyesyesyesyesnononoyesyesyesyesyesyesyesyes
org.openzfs:draidnononononoyesyesyesnononononononononononoyesyesyesyes
org.illumos:edonrnoyes1yes1yes1yes1yes1yes1yesnonoyesyesnononoyesyesyesyesyesyesyesyes
com.delphix:embedded_datanoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyes
com.delphix:empty_bpobjyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.delphix:enabled_txgyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.datto:encryptionnononoyesyesyesyesyesnonoyesyesnonononoyesyesyesyesyesyesyes
com.delphix:extensible_datasetnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.klarasystems:fast_dedupyesnonononononoyesnonononononononononononononoyes
com.joyent:filesystem_limitsyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.delphix:head_errlognonononononoyesyesnononononononononononoyesyesyesyes
com.delphix:hole_birthnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
org.open-zfs:large_blocksnoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyes
org.zfsonlinux:large_dnodenonoyesyesyesyesyesyesnoyesyesyesnonononoyesyesyesyesyesyesyes
com.klarasystems:large_microzapyesnonononononoyesnonononononononononononononoyes
com.delphix:livelistyesnononoyesyesyesyesnononononononononononoyesyesyesyes
com.delphix:log_spacemapyesnononoyesyesyesyesnonoyesyesnonononoyesyesyesyesyesyesyes
org.zfsonlinux:longnamenononononononoyesnonononononononononononononoyes
org.illumos:lz4_compressnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.nexenta:meta_devicesyesnononononononononononononoyesyesnonononononono
com.joyent:multi_vdev_crash_dumpnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.delphix:obsolete_countsyesnonoyesyesyesyesyesyesyesyesyesnononoyesyesyesyesyesyesyesyes
org.zfsonlinux:project_quotayesnonoyesyesyesyesyesnonoyesyesnonononoyesyesyesyesyesyesyes
org.openzfs:raidz_expansionnononononononoyesnonononononononononononoyesyesyes
com.delphix:redacted_datasetsnonononoyesyesyesyesnononononononononononoyesyesyesyes
com.delphix:redaction_bookmarksnonononoyesyesyesyesnononononononononononoyesyesyesyes
com.delphix:redaction_list_spillnononononononoyesnononononononononononoyesyesyesyes
com.datto:resilver_deferyesnonoyesyesyesyesyesnonoyesyesnonononoyesyesyesyesyesyesyes
org.illumos:sha512nonoyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyes
org.illumos:skeinnonoyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyes
com.delphix:spacemap_histogramyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
com.delphix:spacemap_v2yesnonoyesyesyesyesyesyesyesyesyesnonononoyesyesyesyesyesyesyes
org.zfsonlinux:userobj_accountingyesnoyesyesyesyesyesyesnonoyesyesnonononoyesyesyesyesyesyesyes
com.nexenta:vdev_propertiesyesnononononononononononononoyesyesnonononononono
com.klarasystems:vdev_zaps_v2nonononononoyesyesnononononononononononoyesyesyesyes
com.nexenta:wbcnononononononononononononononoyesnonononononono
org.openzfs:zilsaxattryesnononononoyesyesnonoyesyesnonononoyesyesyesyesyesyesyes
com.delphix:zpool_checkpointyesnonoyesyesyesyesyesyesyesyesyesnonononoyesyesyesyesyesyesyes
org.freebsd:zstd_compressnonononoyesyesyesyesnononononononononononoyesyesyesyes

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.