zfs/scripts
Colm 658fb8020f
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
2021-02-17 21:30:45 -08:00
..
zfs-images@3331601f6d Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
.gitignore Remove autotools products 2012-08-27 11:47:44 -07:00
Makefile.am Add "compatibility" property for zpool feature sets 2021-02-17 21:30:45 -08:00
commitcheck.sh Fix commitcheck on FreeBSD 2020-10-20 08:35:53 -07:00
common.sh.in zpool_influxdb: move to libexec dir 2020-11-28 11:15:57 -08:00
cstyle.pl cstyle.pl: echo commands for github workflow 2020-08-13 14:58:53 -07:00
dkms.mkconf DKMS: Disable weak modules 2020-12-15 09:22:30 -08:00
dkms.postbuild Silence 'make checkbashisms' 2020-08-20 13:45:47 -07:00
enum-extract.pl Fix free memory calculation on v3.14+ 2018-02-23 08:50:06 -08:00
kmodtool bash scripts: use /usr/bin/env for bash shebangs 2020-02-10 13:13:46 -08:00
make_gitrev.sh Add zfs_gitrev.h to the distributed sources 2020-07-22 10:00:40 -07:00
man-dates.sh Correct man page dates 2019-05-08 10:59:32 -07:00
paxcheck.sh Enable shellcheck to run for select scripts 2017-03-09 10:20:15 -08:00
zfs-helpers.sh Remove draid.d symlink from zfs_helpers.sh 2020-12-11 11:00:58 -08:00
zfs-tests.sh Add compatibility for busybox mktemp 2020-12-03 10:01:16 -08:00
zfs.sh Add zfs.sh module unload error message 2020-10-13 16:51:54 -07:00
zfs2zol-patch.sed Add libtpool (thread pools) 2017-08-09 15:31:08 -07:00
zimport.sh Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
zloop.sh Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
zol2zfs-patch.sed Add a script to change file names when upstreaming to OpenZFS/illumos 2016-09-29 21:01:50 -07:00