ZFS on-disk formats are versioned using a single integer. The last OpenSolaris
version was 28 for pools. This worked when Sun controlled ZFS versioning, but in Illumos multiple organizations may be working on new ZFS versions in parallel. What happens when Delphix uses ZFS version 30 for a new async destroy feature and Nexenta uses ZFS version 30 for RAID-Z4?
We don't want to have to coordinate allocation of version numbers between
every organization working on ZFS. Also, some organizations may want to maintain their own on-disk format changes separately from those maintained in Illumos.
A proposed solution is called "ZFS Feature Flags".
See the ZFS Feature Flags presentation from the January 2012 Illiumos Meetup.
(video of talk: part 1, part 2)
Fearure Flags were originally proposed by the ZFS working group and are described on zfs-discuss by
Last summer Basil Crow, an intern at Delphix, implemented the core components.
Delphix has integrated the "SPA/zpool versioning" part of that work into the
next version of their product and they plan to push this work back into Illumos soon.
Read More ...