Difference between revisions of "Feature Flags"

From OpenZFS
Jump to: navigation, search
m (Oops; not Oracle.)
(Update the supported versions of FreeBSD)
Line 32: Line 32:
 
|-
 
|-
 
|
 
|
| 8.4
+
| 10.3
| 9.3
+
| 11.0
| 10.2
+
| stable/11
| r283009
+
| r313645
 
| 0.6.5
 
| 0.6.5
 
| 1.4.5
 
| 1.4.5
Line 68: Line 68:
 
|-
 
|-
 
!multi_vdev_crash_dump
 
!multi_vdev_crash_dump
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 77: Line 77:
 
|-
 
|-
 
!spacemap_histogram
 
!spacemap_histogram
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 86: Line 86:
 
|-
 
|-
 
!enabled_txg
 
!enabled_txg
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 95: Line 95:
 
|-
 
|-
 
!hole_birth
 
!hole_birth
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 104: Line 104:
 
|-
 
|-
 
!extensible_dataset
 
!extensible_dataset
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 113: Line 113:
 
|-
 
|-
 
!embedded_data
 
!embedded_data
|no
+
|style="background-color:lightgreen"|yes
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 122: Line 122:
 
|-
 
|-
 
!bookmarks
 
!bookmarks
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 131: Line 131:
 
|-
 
|-
 
!filesystem_limits
 
!filesystem_limits
|no
+
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
Line 140: Line 140:
 
|-
 
|-
 
!large_blocks
 
!large_blocks
|no
+
|style="background-color:lightgreen"|yes
 +
|style="background-color:lightgreen"|yes
 +
|style="background-color:lightgreen"|yes
 +
|style="background-color:lightgreen"|yes
 +
|style="background-color:lightgreen"|yes
 +
|style="background-color:lightgreen"|yes
 +
|style="background-color:lightgreen"|yes
 +
|-
 +
!sha512
 
|no
 
|no
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 +
|style="background-color:lightgreen"|yes
 +
|??
 +
|??
 +
|??
 +
|-
 +
!skein
 +
|no
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 
|style="background-color:lightgreen"|yes
 +
|??
 +
|??
 +
|??
 
|}
 
|}
  

Revision as of 19:58, 18 February 2017

ZFS on-disk formats were originally versioned with a single number, which increased whenever the format changed. The numbered approach was suitable when development of ZFS was driven by a single organisation.

For distributed development of OpenZFS, version numbering was unsuitable. Any change to the number would have required agreement, across all implementations, of each change to the on-disk format.

OpenZFS feature flags – an alternative to traditional version numbering – allow a uniquely named pool property for each change to the on-disk format. This approach supports:

  • format changes that are independent
  • format changes that depend on each other.

Compatibility

Where all features that are used by a pool are supported by multiple implementations of OpenZFS, the on-disk format is portable across those implementations.

Features that are exclusive when enabled should be periodically ported to all distributions.

Reference materials

ZFS Feature Flags (Christopher Siden, 2012-01, in the Internet Archive Wayback Machine) in particular: "… Legacy version numbers still exist for pool versions 1-28 …".

zpool-features(5) – illumos

zpool-features(7) – FreeBSD

Feature flags implementation

Feature flag FreeBSD ZFS on Linux OpenZFS OSX OmniOS
10.3 11.0 stable/11 r313645 0.6.5 1.4.5 r151014
async_destroy yes yes yes yes yes yes yes
empty_bpobj yes yes yes yes yes yes yes
lz4_compress yes yes yes yes yes yes yes
multi_vdev_crash_dump yes yes yes yes no no yes
spacemap_histogram yes yes yes yes yes yes yes
enabled_txg yes yes yes yes yes yes yes
hole_birth yes yes yes yes yes yes yes
extensible_dataset yes yes yes yes yes yes yes
embedded_data yes yes yes yes yes yes yes
bookmarks yes yes yes yes yes yes yes
filesystem_limits yes yes yes yes yes yes yes
large_blocks yes yes yes yes yes yes yes
sha512 no yes yes yes ?? ?? ??
skein no yes yes yes ?? ?? ??

Table legend

  • no = not implemented
  • yes = implemented

Source: OpenZFS Feature Flags Compatibility Matrix - VX weblog