HomeFreeBSD

Add "compatibility" property for zpool feature sets

Description

Add "compatibility" property for zpool feature sets

Property to allow sets of features to be specified; for compatibility
with specific versions / releases / external systems. Influences
the behavior of 'zpool upgrade' and 'zpool create'. Initial man
page changes and test cases included.

Brief synopsis:

zpool create -o compatibility=off|legacy|file[,file...] pool vdev...

compatibility = off : disable compatibility mode (enable all features)
compatibility = legacy : request that no features be enabled
compatibility = file[,file...] : read features from specified files.
Only features present in *all* files will be enabled on the
resulting pool. Filenames may be absolute, or relative to
/etc/zfs/compatibility.d or /usr/share/zfs/compatibility.d (/etc
checked first).

Only affects zpool create, zpool upgrade and zpool status.

ABI changes in libzfs:

  • New function "zpool_load_compat" to load and parse compat sets.
  • Add "zpool_compat_status_t" typedef for compatibility parse status.
  • Add ZPOOL_PROP_COMPATIBILITY to the pool properties enum
  • Add ZPOOL_STATUS_COMPATIBILITY_ERR to the pool status enum

An initial set of base compatibility sets are included in
cmd/zpool/compatibility.d, and the Makefile for cmd/zpool is
modified to install these in $pkgdatadir/compatibility.d and to
create symbolic links to a reasonable set of aliases.

Reviewed-by: ericloewe
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Richard Laager <rlaager@wiktel.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Colm Buckley <colm@tuatha.org>
Closes #11468

Details

Provenance
Colm <colm@tuatha.org>Authored on Feb 18 2021, 5:30 AM
GitHub <noreply@github.com>Committed on Feb 18 2021, 5:30 AM
Parents
rG35ec51796f0a: FreeBSD: disable edonr in zfs_mod_supported_feature()
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG658fb8020f05: Add "compatibility" property for zpool feature sets (authored by Colm <colm@tuatha.org>).Feb 18 2021, 5:30 AM