'\" te
-.\" Copyright (c) 2013, 2016 by Delphix. All rights reserved.
+.\" Copyright (c) 2013, 2017 by Delphix. All rights reserved.
.\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
.\" Copyright (c) 2014, Joyent, Inc. All rights reserved.
.\" The contents of this file are subject to the terms of the Common Development
.\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your
.\" own identifying information:
.\" Portions Copyright [yyyy] [name of copyright owner]
-.TH ZPOOL-FEATURES 5 "Aug 27, 2013"
+.TH ZPOOL-FEATURES 5 "Jun 8, 2018"
.SH NAME
zpool\-features \- ZFS pool feature descriptions
.SH DESCRIPTION
ZFS pool on\-disk format versions are specified via "features" which replace
the old on\-disk format numbers (the last supported on\-disk format number is
28). To enable a feature on a pool use the \fBupgrade\fR subcommand of the
-\fBzpool\fR(8) command, or set the \fBfeature@\fR\fIfeature_name\fR property
+zpool(8) command, or set the \fBfeature@\fR\fIfeature_name\fR property
to \fBenabled\fR.
.sp
.LP
.SS "Identifying features"
.sp
.LP
-Every feature has a guid of the form \fIcom.example:feature_name\fR. The reverse
-DNS name ensures that the feature's guid is unique across all ZFS
+Every feature has a GUID of the form \fIcom.example:feature_name\fR. The
+reverse DNS name ensures that the feature's GUID is unique across all ZFS
implementations. When unsupported features are encountered on a pool they will
-be identified by their guids. Refer to the documentation for the ZFS
+be identified by their GUIDs. Refer to the documentation for the ZFS
implementation that created the pool for information about those features.
.sp
.LP
Each supported feature also has a short name. By convention a feature's short
-name is the portion of its guid which follows the ':' (e.g.
+name is the portion of its GUID which follows the ':' (e.g.
\fIcom.example:feature_name\fR would have the short name \fIfeature_name\fR),
however a feature's short name may differ across ZFS implementations if
following the convention would result in name conflicts.
software's ability to read from the pool. These features are referred to as
"read\-only compatible". If all unsupported features on a pool are read\-only
compatible, the pool can be imported in read\-only mode by setting the
-\fBreadonly\fR property during import (see \fBzpool\fR(8) for details on
+\fBreadonly\fR property during import (see zpool(8) for details on
importing pools).
.SS "Unsupported features"
.sp
.LP
For each unsupported feature enabled on an imported pool a pool property
-named \fIunsupported@feature_guid\fR will indicate why the import was allowed
+named \fIunsupported@feature_name\fR will indicate why the import was allowed
despite the unsupported feature. Possible values for this property are:
.sp
When the \fBlz4_compress\fR feature is set to \fBenabled\fR, the
administrator can turn on \fBlz4\fR compression on any dataset on the
-pool using the \fBzfs\fR(8) command. Please note that doing so will
+pool using the zfs(8) command. Please note that doing so will
immediately activate the \fBlz4_compress\fR feature on the underlying
-pool using the \fBzfs\fR(1M) command. Also, all newly written metadata
+pool using the zfs(8) command. Also, all newly written metadata
will be compressed with \fBlz4\fR algorithm. Since this feature is not
read-only compatible, this operation will render the pool unimportable
-on systems without support for the \fBlz4_compress\fR feature. Booting
-off of \fBlz4\fR-compressed root pools is supported.
+on systems without support for the \fBlz4_compress\fR feature.
+
+Booting off of \fBlz4\fR-compressed root pools is supported.
This feature becomes \fBactive\fR as soon as it is enabled and will
never return to being \fBenabled\fB.
DEPENDENCIES enabled_txg
.TE
-This feature improves performance of incremental sends ("zfs send -i")
+This feature improves performance of incremental sends (\fBzfs send -i\fR)
and receives for objects with many holes. The most common case of
hole-filled objects is zvols.
DEPENDENCIES none
.TE
-This feature enables the "zpool remove" subcommand to remove top-level
+This feature enables the \fBzpool remove\fR subcommand to remove top-level
vdevs, evacuating them to reduce the total size of the pool.
-This feature becomes \fBactive\fR when the "zpool remove" command is used
+This feature becomes \fBactive\fR when the \fBzpool remove\fR subcommand is used
on a top-level vdev, and will never return to being \fBenabled\fR.
.RE
This feature is an enhancement of device_removal, which will over time
reduce the memory used to track removed devices. When indirect blocks
are freed or remapped, we note that their part of the indirect mapping
-is "obsolete", i.e. no longer needed. See also the \fBzfs remap\fR
-subcommand in \fBzfs\fR(1M).
+is "obsolete", i.e. no longer needed.
-This feature becomes \fBactive\fR when the "zpool remove" command is
+This feature becomes \fBactive\fR when the \fBzpool remove\fR subcommand is
used on a top-level vdev, and will never return to being \fBenabled\fR.
+.RE
+.sp
+.ne 2
+.na
+\fB\fBzpool_checkpoint\fR\fR
+.ad
+.RS 4n
+.TS
+l l .
+GUID com.delphix:zpool_checkpoint
+READ\-ONLY COMPATIBLE yes
+DEPENDENCIES none
+.TE
+
+This feature enables the \fBzpool checkpoint\fR subcommand that can
+checkpoint the state of the pool at the time it was issued and later
+rewind back to it or discard it.
+
+This feature becomes \fBactive\fR when the \fBzpool checkpoint\fR subcommand
+is used to checkpoint the pool.
+The feature will only return back to being \fBenabled\fR when the pool
+is rewound or the checkpoint has been discarded.
+
+.RE
+.sp
+.ne 2
+.na
+\fB\fBspacemap_v2\fR\fR
+.ad
+.RS 4n
+.TS
+l l .
+GUID com.delphix:spacemap_v2
+READ\-ONLY COMPATIBLE yes
+DEPENDENCIES none
+.TE
+
+This feature enables the use of the new space map encoding which
+consists of two words (instead of one) whenever it is advantageous.
+The new encoding allows space maps to represent large regions of
+space more efficiently on-disk while also increasing their maximum
+addressable offset.
+
+This feature becomes \fBactive\fR once it is \fBenabled\fR, and never
+returns back to being \fBenabled\fR.
+
.RE
.sp
.ne 2
\fBedonr\fR algorithms.
When the \fBsha512\fR feature is set to \fBenabled\fR, the administrator
-can turn on the \fBsha512\fR checksum on any dataset using the
-\fBzfs set checksum=sha512\fR(1M) command. This feature becomes
+can turn on the \fBsha512\fR checksum on any dataset using
+\fBzfs set checksum=sha512\fR. See zfs(8). This feature becomes
\fBactive\fR once a \fBchecksum\fR property has been set to \fBsha512\fR,
and will return to being \fBenabled\fR once all filesystems that have
ever had their checksum set to \fBsha512\fR are destroyed.
-Booting off of pools utilizing SHA-512/256 is supported (provided that
-the updated GRUB stage2 module is installed).
+Booting off of pools utilizing SHA-512/256 is supported.
.RE
given pool, preventing hash collision attacks on systems with dedup.
When the \fBskein\fR feature is set to \fBenabled\fR, the administrator
-can turn on the \fBskein\fR checksum on any dataset using the
-\fBzfs set checksum=skein\fR(1M) command. This feature becomes
+can turn on the \fBskein\fR checksum on any dataset using
+\fBzfs set checksum=skein\fR. See zfs(8). This feature becomes
\fBactive\fR once a \fBchecksum\fR property has been set to \fBskein\fR,
and will return to being \fBenabled\fR once all filesystems that have
ever had their checksum set to \fBskein\fR are destroyed.
-Booting off of pools using \fBskein\fR is \fBNOT\fR supported
--- any attempt to enable \fBskein\fR on a root pool will fail with an
-error.
+Booting off of pools using \fBskein\fR is supported.
.RE
This feature enables the use of the Edon-R hash algorithm for checksum,
including for nopwrite (if compression is also enabled, an overwrite of
a block whose checksum matches the data being written will be ignored).
-In an abundance of caution, Edon-R can not be used with dedup
-(without verification).
+In an abundance of caution, Edon-R requires verification when used with
+dedup: \fBzfs set dedup=edonr,verify\fR. See \fBzfs\fR(8).
Edon-R is a very high-performance hash algorithm that was part
of the NIST SHA-3 competition. It provides extremely high hash
When the \fBedonr\fR feature is set to \fBenabled\fR, the administrator
can turn on the \fBedonr\fR checksum on any dataset using the
-\fBzfs set checksum=edonr\fR(1M) command. This feature becomes
+\fBzfs set checksum=edonr\fR. See zfs(8). This feature becomes
\fBactive\fR once a \fBchecksum\fR property has been set to \fBedonr\fR,
and will return to being \fBenabled\fR once all filesystems that have
ever had their checksum set to \fBedonr\fR are destroyed.
-Booting off of pools using \fBedonr\fR is \fBNOT\fR supported
--- any attempt to enable \fBedonr\fR on a root pool will fail with an
-error.
+Booting off of pools using \fBedonr\fR is supported.
.RE
.RE
+.sp
+.ne 2
+.na
+\fB\fBbookmark_v2\fR\fR
+.ad
+.RS 4n
+.TS
+l l .
+GUID com.datto:bookmark_v2
+READ\-ONLY COMPATIBLE no
+DEPENDENCIES extensible_dataset
+.TE
+
+This feature enables the creation and management of larger bookmarks which are
+needed for other features in ZFS.
+
+This feature becomes \fBactive\fR when a v2 bookmark is created and will be
+returned to the \fBenabled\fR state when all v2 bookmarks are destroyed.
+
+.RE
+
.sp
.ne 2
.na
The upgrade process runs in the background and may take a while to complete
for the filesystems containing a large number of files.
+.RE
+.sp
+.ne 2
+.na
+\fB\fBresilver_defer\fR\fR
+.ad
+.RS 4n
+.TS
+l l .
+GUID com.datto:resilver_defer
+READ\-ONLY COMPATIBLE yes
+DEPENDENCIES none
+.TE
+
+This feature allows zfs to postpone new resilvers if an existing one is already
+in progress. Without this feature, any new resilvers will cause the currently
+running one to be immediately restarted from the beginning.
+
+This feature becomes \fBactive\fR once a resilver has been deferred, and
+returns to being \fBenabled\fR when the deferred resilver begins.
+
+.RE
+
+.sp
+.ne 2
+.na
+\fB\fBallocation_classes\fR\fR
+.ad
+.RS 4n
+.TS
+l l .
+GUID org.zfsonlinux:allocation_classes
+READ\-ONLY COMPATIBLE yes
+DEPENDENCIES none
+.TE
+
+This feature enables support for separate allocation classes.
+
+This feature becomes \fBactive\fR when a dedicated allocation class vdev
+(dedup or special) is created with the \fBzpool create\fR or \fBzpool add\fR
+subcommands. With device removal, it can be returned to the \fBenabled\fR
+state if all the dedicated allocation class vdevs are removed.
+
.RE
.SH "SEE ALSO"
-\fBzpool\fR(8)
+zpool(8)