xref: /freebsd-src/sys/contrib/openzfs/man/man7/zpool-features.7 (revision e716630d4cf89e69ec3f675ebfceee09f1a85e05)
13ff01b23SMartin Matuska.\"
23ff01b23SMartin Matuska.\" Copyright (c) 2012, 2018 by Delphix. All rights reserved.
33ff01b23SMartin Matuska.\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
43ff01b23SMartin Matuska.\" Copyright (c) 2014, Joyent, Inc. All rights reserved.
53ff01b23SMartin Matuska.\" The contents of this file are subject to the terms of the Common Development
63ff01b23SMartin Matuska.\" and Distribution License (the "License").  You may not use this file except
73ff01b23SMartin Matuska.\" in compliance with the License. You can obtain a copy of the license at
8271171e0SMartin Matuska.\" usr/src/OPENSOLARIS.LICENSE or https://opensource.org/licenses/CDDL-1.0.
93ff01b23SMartin Matuska.\"
103ff01b23SMartin Matuska.\" See the License for the specific language governing permissions and
113ff01b23SMartin Matuska.\" limitations under the License. When distributing Covered Code, include this
123ff01b23SMartin Matuska.\" CDDL HEADER in each file and include the License file at
133ff01b23SMartin Matuska.\" usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this
143ff01b23SMartin Matuska.\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your
153ff01b23SMartin Matuska.\" own identifying information:
163ff01b23SMartin Matuska.\" Portions Copyright [yyyy] [name of copyright owner]
173ff01b23SMartin Matuska.\" Copyright (c) 2019, Klara Inc.
183ff01b23SMartin Matuska.\" Copyright (c) 2019, Allan Jude
193ff01b23SMartin Matuska.\" Copyright (c) 2021, Colm Buckley <colm@tuatha.org>
203ff01b23SMartin Matuska.\"
21a0b956f5SMartin Matuska.Dd June 23, 2022
223ff01b23SMartin Matuska.Dt ZPOOL-FEATURES 7
233ff01b23SMartin Matuska.Os
243ff01b23SMartin Matuska.
253ff01b23SMartin Matuska.Sh NAME
263ff01b23SMartin Matuska.Nm zpool-features
273ff01b23SMartin Matuska.Nd description of ZFS pool features
283ff01b23SMartin Matuska.
293ff01b23SMartin Matuska.Sh DESCRIPTION
30a0b956f5SMartin MatuskaZFS pool on-disk format versions are specified via
31a0b956f5SMartin Matuska.Dq features
32a0b956f5SMartin Matuskawhich replace the old on-disk format numbers
33a0b956f5SMartin Matuska.Pq the last supported on-disk format number is 28 .
343ff01b23SMartin MatuskaTo enable a feature on a pool use the
353ff01b23SMartin Matuska.Nm zpool Cm upgrade ,
363ff01b23SMartin Matuskaor set the
373ff01b23SMartin Matuska.Sy feature Ns @ Ns Ar feature-name
383ff01b23SMartin Matuskaproperty to
393ff01b23SMartin Matuska.Sy enabled .
403ff01b23SMartin MatuskaPlease also see the
413ff01b23SMartin Matuska.Sx Compatibility feature sets
423ff01b23SMartin Matuskasection for information on how sets of features may be enabled together.
433ff01b23SMartin Matuska.Pp
443ff01b23SMartin MatuskaThe pool format does not affect file system version compatibility or the ability
453ff01b23SMartin Matuskato send file systems between pools.
463ff01b23SMartin Matuska.Pp
473ff01b23SMartin MatuskaSince most features can be enabled independently of each other, the on-disk
483ff01b23SMartin Matuskaformat of the pool is specified by the set of all features marked as
493ff01b23SMartin Matuska.Sy active
503ff01b23SMartin Matuskaon the pool.
513ff01b23SMartin MatuskaIf the pool was created by another software version
523ff01b23SMartin Matuskathis set may include unsupported features.
533ff01b23SMartin Matuska.
543ff01b23SMartin Matuska.Ss Identifying features
553ff01b23SMartin MatuskaEvery feature has a GUID of the form
563ff01b23SMartin Matuska.Ar com.example : Ns Ar feature-name .
573ff01b23SMartin MatuskaThe reversed DNS name ensures that the feature's GUID is unique across all ZFS
583ff01b23SMartin Matuskaimplementations.
593ff01b23SMartin MatuskaWhen unsupported features are encountered on a pool they will
603ff01b23SMartin Matuskabe identified by their GUIDs.
613ff01b23SMartin MatuskaRefer to the documentation for the ZFS
623ff01b23SMartin Matuskaimplementation that created the pool for information about those features.
633ff01b23SMartin Matuska.Pp
643ff01b23SMartin MatuskaEach supported feature also has a short name.
65bb2d13b6SMartin MatuskaBy convention a feature's short name is the portion of its GUID which follows
66bb2d13b6SMartin Matuskathe
673ff01b23SMartin Matuska.Sq \&:
68a0b956f5SMartin Matuska.Po
69a0b956f5SMartin Matuskai.e.
703ff01b23SMartin Matuska.Ar com.example : Ns Ar feature-name
713ff01b23SMartin Matuskawould have the short name
72a0b956f5SMartin Matuska.Ar feature-name
73a0b956f5SMartin Matuska.Pc ,
743ff01b23SMartin Matuskahowever a feature's short name may differ across ZFS implementations if
753ff01b23SMartin Matuskafollowing the convention would result in name conflicts.
763ff01b23SMartin Matuska.
773ff01b23SMartin Matuska.Ss Feature states
783ff01b23SMartin MatuskaFeatures can be in one of three states:
793ff01b23SMartin Matuska.Bl -tag -width "disabled"
803ff01b23SMartin Matuska.It Sy active
813ff01b23SMartin MatuskaThis feature's on-disk format changes are in effect on the pool.
823ff01b23SMartin MatuskaSupport for this feature is required to import the pool in read-write mode.
833ff01b23SMartin MatuskaIf this feature is not read-only compatible,
843ff01b23SMartin Matuskasupport is also required to import the pool in read-only mode
853ff01b23SMartin Matuska.Pq see Sx Read-only compatibility .
863ff01b23SMartin Matuska.It Sy enabled
873ff01b23SMartin MatuskaAn administrator has marked this feature as enabled on the pool, but the
883ff01b23SMartin Matuskafeature's on-disk format changes have not been made yet.
893ff01b23SMartin MatuskaThe pool can still be imported by software that does not support this feature,
903ff01b23SMartin Matuskabut changes may be made to the on-disk format at any time
913ff01b23SMartin Matuskawhich will move the feature to the
923ff01b23SMartin Matuska.Sy active
933ff01b23SMartin Matuskastate.
943ff01b23SMartin MatuskaSome features may support returning to the
953ff01b23SMartin Matuska.Sy enabled
963ff01b23SMartin Matuskastate after becoming
973ff01b23SMartin Matuska.Sy active .
983ff01b23SMartin MatuskaSee feature-specific documentation for details.
993ff01b23SMartin Matuska.It Sy disabled
1003ff01b23SMartin MatuskaThis feature's on-disk format changes have not been made and will not be made
1013ff01b23SMartin Matuskaunless an administrator moves the feature to the
1023ff01b23SMartin Matuska.Sy enabled
1033ff01b23SMartin Matuskastate.
1043ff01b23SMartin MatuskaFeatures cannot be disabled once they have been enabled.
1053ff01b23SMartin Matuska.El
1063ff01b23SMartin Matuska.Pp
1073ff01b23SMartin MatuskaThe state of supported features is exposed through pool properties of the form
1083ff01b23SMartin Matuska.Sy feature Ns @ Ns Ar short-name .
1093ff01b23SMartin Matuska.
1103ff01b23SMartin Matuska.Ss Read-only compatibility
1113ff01b23SMartin MatuskaSome features may make on-disk format changes that do not interfere with other
1123ff01b23SMartin Matuskasoftware's ability to read from the pool.
1133ff01b23SMartin MatuskaThese features are referred to as
1143ff01b23SMartin Matuska.Dq read-only compatible .
1153ff01b23SMartin MatuskaIf all unsupported features on a pool are read-only compatible,
1163ff01b23SMartin Matuskathe pool can be imported in read-only mode by setting the
1173ff01b23SMartin Matuska.Sy readonly
118a0b956f5SMartin Matuskaproperty during import
119a0b956f5SMartin Matuska.Po see
1203ff01b23SMartin Matuska.Xr zpool-import 8
121a0b956f5SMartin Matuskafor details on importing pools
122a0b956f5SMartin Matuska.Pc .
1233ff01b23SMartin Matuska.
1243ff01b23SMartin Matuska.Ss Unsupported features
1253ff01b23SMartin MatuskaFor each unsupported feature enabled on an imported pool, a pool property
1263ff01b23SMartin Matuskanamed
1273ff01b23SMartin Matuska.Sy unsupported Ns @ Ns Ar feature-name
1283ff01b23SMartin Matuskawill indicate why the import was allowed despite the unsupported feature.
1293ff01b23SMartin MatuskaPossible values for this property are:
1303ff01b23SMartin Matuska.Bl -tag -width "readonly"
1313ff01b23SMartin Matuska.It Sy inactive
1323ff01b23SMartin MatuskaThe feature is in the
1333ff01b23SMartin Matuska.Sy enabled
1343ff01b23SMartin Matuskastate and therefore the pool's on-disk
1353ff01b23SMartin Matuskaformat is still compatible with software that does not support this feature.
1363ff01b23SMartin Matuska.It Sy readonly
1373ff01b23SMartin MatuskaThe feature is read-only compatible and the pool has been imported in
1383ff01b23SMartin Matuskaread-only mode.
1393ff01b23SMartin Matuska.El
1403ff01b23SMartin Matuska.
1413ff01b23SMartin Matuska.Ss Feature dependencies
1423ff01b23SMartin MatuskaSome features depend on other features being enabled in order to function.
1433ff01b23SMartin MatuskaEnabling a feature will automatically enable any features it depends on.
1443ff01b23SMartin Matuska.
1453ff01b23SMartin Matuska.Ss Compatibility feature sets
1463ff01b23SMartin MatuskaIt is sometimes necessary for a pool to maintain compatibility with a
1473ff01b23SMartin Matuskaspecific on-disk format, by enabling and disabling particular features.
1483ff01b23SMartin MatuskaThe
1493ff01b23SMartin Matuska.Sy compatibility
1503ff01b23SMartin Matuskafeature facilitates this by allowing feature sets to be read from text files.
1513ff01b23SMartin MatuskaWhen set to
1523ff01b23SMartin Matuska.Sy off
153a0b956f5SMartin Matuska.Pq the default ,
154a0b956f5SMartin Matuskacompatibility feature sets are disabled
155a0b956f5SMartin Matuska.Pq i.e. all features are enabled ;
156a0b956f5SMartin Matuskawhen set to
1573ff01b23SMartin Matuska.Sy legacy ,
1583ff01b23SMartin Matuskano features are enabled.
1593ff01b23SMartin MatuskaWhen set to a comma-separated list of filenames
160a0b956f5SMartin Matuska.Po
161a0b956f5SMartin Matuskaeach filename may either be an absolute path, or relative to
1623ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d
1633ff01b23SMartin Matuskaor
164a0b956f5SMartin Matuska.Pa /usr/share/zfs/compatibility.d
165a0b956f5SMartin Matuska.Pc ,
1663ff01b23SMartin Matuskathe lists of requested features are read from those files,
1673ff01b23SMartin Matuskaseparated by whitespace and/or commas.
1683ff01b23SMartin MatuskaOnly features present in all files are enabled.
1693ff01b23SMartin Matuska.Pp
1703ff01b23SMartin MatuskaSimple sanity checks are applied to the files:
171bb2d13b6SMartin Matuskathey must be between 1 B and 16 KiB in size, and must end with a newline
172bb2d13b6SMartin Matuskacharacter.
1733ff01b23SMartin Matuska.Pp
1743ff01b23SMartin MatuskaThe requested features are applied when a pool is created using
1753ff01b23SMartin Matuska.Nm zpool Cm create Fl o Sy compatibility Ns = Ns Ar …
1763ff01b23SMartin Matuskaand controls which features are enabled when using
1773ff01b23SMartin Matuska.Nm zpool Cm upgrade .
1783ff01b23SMartin Matuska.Nm zpool Cm status
1793ff01b23SMartin Matuskawill not show a warning about disabled features which are not part
1803ff01b23SMartin Matuskaof the requested feature set.
1813ff01b23SMartin Matuska.Pp
1823ff01b23SMartin MatuskaThe special value
1833ff01b23SMartin Matuska.Sy legacy
1843ff01b23SMartin Matuskaprevents any features from being enabled, either via
1853ff01b23SMartin Matuska.Nm zpool Cm upgrade
1863ff01b23SMartin Matuskaor
1873ff01b23SMartin Matuska.Nm zpool Cm set Sy feature Ns @ Ns Ar feature-name Ns = Ns Sy enabled .
1883ff01b23SMartin MatuskaThis setting also prevents pools from being upgraded to newer on-disk versions.
1893ff01b23SMartin MatuskaThis is a safety measure to prevent new features from being
1903ff01b23SMartin Matuskaaccidentally enabled, breaking compatibility.
1913ff01b23SMartin Matuska.Pp
1923ff01b23SMartin MatuskaBy convention, compatibility files in
1933ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d
1943ff01b23SMartin Matuskaare provided by the distribution, and include feature sets
1953ff01b23SMartin Matuskasupported by important versions of popular distributions, and feature
1963ff01b23SMartin Matuskasets commonly supported at the start of each year.
1973ff01b23SMartin MatuskaCompatibility files in
1983ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d ,
1993ff01b23SMartin Matuskaif present, will take precedence over files with the same name in
2003ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d .
2013ff01b23SMartin Matuska.Pp
2023ff01b23SMartin MatuskaIf an unrecognized feature is found in these files, an error message will
2033ff01b23SMartin Matuskabe shown.
2043ff01b23SMartin MatuskaIf the unrecognized feature is in a file in
2053ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d ,
2063ff01b23SMartin Matuskathis is treated as an error and processing will stop.
2073ff01b23SMartin MatuskaIf the unrecognized feature is under
2083ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d ,
2093ff01b23SMartin Matuskathis is treated as a warning and processing will continue.
2103ff01b23SMartin MatuskaThis difference is to allow distributions to include features
2113ff01b23SMartin Matuskawhich might not be recognized by the currently-installed binaries.
2123ff01b23SMartin Matuska.Pp
2133ff01b23SMartin MatuskaCompatibility files may include comments:
2143ff01b23SMartin Matuskaany text from
2153ff01b23SMartin Matuska.Sq #
2163ff01b23SMartin Matuskato the end of the line is ignored.
2173ff01b23SMartin Matuska.Pp
2183ff01b23SMartin Matuska.Sy Example :
2193ff01b23SMartin Matuska.Bd -literal -compact -offset 4n
2203ff01b23SMartin Matuska.No example# Nm cat Pa /usr/share/zfs/compatibility.d/grub2
2213ff01b23SMartin Matuska# Features which are supported by GRUB2
2223ff01b23SMartin Matuskaasync_destroy
2233ff01b23SMartin Matuskabookmarks
2243ff01b23SMartin Matuskaembedded_data
2253ff01b23SMartin Matuskaempty_bpobj
2263ff01b23SMartin Matuskaenabled_txg
2273ff01b23SMartin Matuskaextensible_dataset
2283ff01b23SMartin Matuskafilesystem_limits
2293ff01b23SMartin Matuskahole_birth
2303ff01b23SMartin Matuskalarge_blocks
2314e8d558cSMartin Matuskalivelist
2323ff01b23SMartin Matuskalz4_compress
2333ff01b23SMartin Matuskaspacemap_histogram
2344e8d558cSMartin Matuskazpool_checkpoint
2353ff01b23SMartin Matuska
2363ff01b23SMartin Matuska.No example# Nm zpool Cm create Fl o Sy compatibility Ns = Ns Ar grub2 Ar bootpool Ar vdev
2373ff01b23SMartin Matuska.Ed
2383ff01b23SMartin Matuska.Pp
2393ff01b23SMartin MatuskaSee
2403ff01b23SMartin Matuska.Xr zpool-create 8
2413ff01b23SMartin Matuskaand
2423ff01b23SMartin Matuska.Xr zpool-upgrade 8
2433ff01b23SMartin Matuskafor more information on how these commands are affected by feature sets.
2443ff01b23SMartin Matuska.
2453ff01b23SMartin Matuska.de feature
2463ff01b23SMartin Matuska.It Sy \\$2
2473ff01b23SMartin Matuska.Bl -tag -compact -width "READ-ONLY COMPATIBLE"
2483ff01b23SMartin Matuska.It GUID
2493ff01b23SMartin Matuska.Sy \\$1:\\$2
2503ff01b23SMartin Matuska.if !"\\$4"" \{\
2513ff01b23SMartin Matuska.It DEPENDENCIES
2523ff01b23SMartin Matuska\fB\\$4\fP\c
2533ff01b23SMartin Matuska.if !"\\$5"" , \fB\\$5\fP\c
2543ff01b23SMartin Matuska.if !"\\$6"" , \fB\\$6\fP\c
2553ff01b23SMartin Matuska.if !"\\$7"" , \fB\\$7\fP\c
2563ff01b23SMartin Matuska.if !"\\$8"" , \fB\\$8\fP\c
2573ff01b23SMartin Matuska.if !"\\$9"" , \fB\\$9\fP\c
2583ff01b23SMartin Matuska.\}
2593ff01b23SMartin Matuska.It READ-ONLY COMPATIBLE
2603ff01b23SMartin Matuska\\$3
2613ff01b23SMartin Matuska.El
2623ff01b23SMartin Matuska.Pp
2633ff01b23SMartin Matuska..
2643ff01b23SMartin Matuska.
2653ff01b23SMartin Matuska.ds instant-never \
2663ff01b23SMartin Matuska.No This feature becomes Sy active No as soon as it is enabled \
2673ff01b23SMartin Matuskaand will never return to being Sy enabled .
2683ff01b23SMartin Matuska.
2693ff01b23SMartin Matuska.ds remount-upgrade \
2703ff01b23SMartin Matuska.No Each filesystem will be upgraded automatically when remounted, \
2713ff01b23SMartin Matuskaor when a new file is created under that filesystem. \
2723ff01b23SMartin MatuskaThe upgrade can also be triggered on filesystems via \
2733ff01b23SMartin MatuskaNm zfs Cm set Sy version Ns = Ns Sy current Ar fs . \
2743ff01b23SMartin MatuskaNo The upgrade process runs in the background and may take a while to complete \
2753ff01b23SMartin Matuskafor filesystems containing large amounts of files .
2763ff01b23SMartin Matuska.
2773ff01b23SMartin Matuska.de checksum-spiel
2783ff01b23SMartin MatuskaWhen the
2793ff01b23SMartin Matuska.Sy \\$1
2803ff01b23SMartin Matuskafeature is set to
2813ff01b23SMartin Matuska.Sy enabled ,
2823ff01b23SMartin Matuskathe administrator can turn on the
2833ff01b23SMartin Matuska.Sy \\$1
2843ff01b23SMartin Matuskachecksum on any dataset using
2853ff01b23SMartin Matuska.Nm zfs Cm set Sy checksum Ns = Ns Sy \\$1 Ar dset
2863ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc .
2873ff01b23SMartin MatuskaThis feature becomes
2883ff01b23SMartin Matuska.Sy active
2893ff01b23SMartin Matuskaonce a
2903ff01b23SMartin Matuska.Sy checksum
2913ff01b23SMartin Matuskaproperty has been set to
2923ff01b23SMartin Matuska.Sy \\$1 ,
2933ff01b23SMartin Matuskaand will return to being
2943ff01b23SMartin Matuska.Sy enabled
2953ff01b23SMartin Matuskaonce all filesystems that have ever had their checksum set to
2963ff01b23SMartin Matuska.Sy \\$1
2973ff01b23SMartin Matuskaare destroyed.
2983ff01b23SMartin Matuska..
2993ff01b23SMartin Matuska.
3003ff01b23SMartin Matuska.Sh FEATURES
3013ff01b23SMartin MatuskaThe following features are supported on this system:
3023ff01b23SMartin Matuska.Bl -tag -width Ds
3033ff01b23SMartin Matuska.feature org.zfsonlinux allocation_classes yes
3043ff01b23SMartin MatuskaThis feature enables support for separate allocation classes.
3053ff01b23SMartin Matuska.Pp
3063ff01b23SMartin MatuskaThis feature becomes
3073ff01b23SMartin Matuska.Sy active
308a0b956f5SMartin Matuskawhen a dedicated allocation class vdev
309a0b956f5SMartin Matuska.Pq dedup or special
310a0b956f5SMartin Matuskais created with the
3113ff01b23SMartin Matuska.Nm zpool Cm create No or Nm zpool Cm add No commands .
3123ff01b23SMartin MatuskaWith device removal, it can be returned to the
3133ff01b23SMartin Matuska.Sy enabled
3143ff01b23SMartin Matuskastate if all the dedicated allocation class vdevs are removed.
3153ff01b23SMartin Matuska.
3163ff01b23SMartin Matuska.feature com.delphix async_destroy yes
3173ff01b23SMartin MatuskaDestroying a file system requires traversing all of its data in order to
3183ff01b23SMartin Matuskareturn its used space to the pool.
3193ff01b23SMartin MatuskaWithout
3203ff01b23SMartin Matuska.Sy async_destroy ,
3213ff01b23SMartin Matuskathe file system is not fully removed until all space has been reclaimed.
3223ff01b23SMartin MatuskaIf the destroy operation is interrupted by a reboot or power outage,
3233ff01b23SMartin Matuskathe next attempt to open the pool will need to complete the destroy
3243ff01b23SMartin Matuskaoperation synchronously.
3253ff01b23SMartin Matuska.Pp
3263ff01b23SMartin MatuskaWhen
3273ff01b23SMartin Matuska.Sy async_destroy
3283ff01b23SMartin Matuskais enabled, the file system's data will be reclaimed by a background process,
3293ff01b23SMartin Matuskaallowing the destroy operation to complete
3303ff01b23SMartin Matuskawithout traversing the entire file system.
3313ff01b23SMartin MatuskaThe background process is able to resume
3323ff01b23SMartin Matuskainterrupted destroys after the pool has been opened, eliminating the need
3333ff01b23SMartin Matuskato finish interrupted destroys as part of the open operation.
3343ff01b23SMartin MatuskaThe amount of space remaining to be reclaimed by the background process
3353ff01b23SMartin Matuskais available through the
3363ff01b23SMartin Matuska.Sy freeing
3373ff01b23SMartin Matuskaproperty.
3383ff01b23SMartin Matuska.Pp
3393ff01b23SMartin MatuskaThis feature is only
3403ff01b23SMartin Matuska.Sy active
3413ff01b23SMartin Matuskawhile
3423ff01b23SMartin Matuska.Sy freeing
3433ff01b23SMartin Matuskais non-zero.
3443ff01b23SMartin Matuska.
3451f1e2261SMartin Matuska.feature org.openzfs blake3 no extensible_dataset
346bb2d13b6SMartin MatuskaThis feature enables the use of the BLAKE3 hash algorithm for checksum and
347bb2d13b6SMartin Matuskadedup.
3481f1e2261SMartin MatuskaBLAKE3 is a secure hash algorithm focused on high performance.
3491f1e2261SMartin Matuska.Pp
3501f1e2261SMartin Matuska.checksum-spiel blake3
3511f1e2261SMartin Matuska.
3522a58b312SMartin Matuska.feature com.fudosecurity block_cloning yes
3532a58b312SMartin MatuskaWhen this feature is enabled ZFS will use block cloning for operations like
3542a58b312SMartin Matuska.Fn copy_file_range 2 .
3552a58b312SMartin MatuskaBlock cloning allows to create multiple references to a single block.
3562a58b312SMartin MatuskaIt is much faster than copying the data (as the actual data is neither read nor
3572a58b312SMartin Matuskawritten) and takes no additional space.
3582a58b312SMartin MatuskaBlocks can be cloned across datasets under some conditions (like disabled
3592a58b312SMartin Matuskaencryption and equal
3602a58b312SMartin Matuska.Nm recordsize ) .
3612a58b312SMartin Matuska.Pp
3622a58b312SMartin MatuskaThis feature becomes
3632a58b312SMartin Matuska.Sy active
3642a58b312SMartin Matuskawhen first block is cloned.
3652a58b312SMartin MatuskaWhen the last cloned block is freed, it goes back to the enabled state.
3663ff01b23SMartin Matuska.feature com.delphix bookmarks yes extensible_dataset
3673ff01b23SMartin MatuskaThis feature enables use of the
3683ff01b23SMartin Matuska.Nm zfs Cm bookmark
3693ff01b23SMartin Matuskacommand.
3703ff01b23SMartin Matuska.Pp
3713ff01b23SMartin MatuskaThis feature is
3723ff01b23SMartin Matuska.Sy active
3733ff01b23SMartin Matuskawhile any bookmarks exist in the pool.
3743ff01b23SMartin MatuskaAll bookmarks in the pool can be listed by running
3753ff01b23SMartin Matuska.Nm zfs Cm list Fl t Sy bookmark Fl r Ar poolname .
3763ff01b23SMartin Matuska.
3773ff01b23SMartin Matuska.feature com.datto bookmark_v2 no bookmark extensible_dataset
3783ff01b23SMartin MatuskaThis feature enables the creation and management of larger bookmarks which are
3793ff01b23SMartin Matuskaneeded for other features in ZFS.
3803ff01b23SMartin Matuska.Pp
3813ff01b23SMartin MatuskaThis feature becomes
3823ff01b23SMartin Matuska.Sy active
3833ff01b23SMartin Matuskawhen a v2 bookmark is created and will be returned to the
3843ff01b23SMartin Matuska.Sy enabled
3853ff01b23SMartin Matuskastate when all v2 bookmarks are destroyed.
3863ff01b23SMartin Matuska.
3873ff01b23SMartin Matuska.feature com.delphix bookmark_written no bookmark extensible_dataset bookmark_v2
3883ff01b23SMartin MatuskaThis feature enables additional bookmark accounting fields, enabling the
3893ff01b23SMartin Matuska.Sy written Ns # Ns Ar bookmark
390a0b956f5SMartin Matuskaproperty
391a0b956f5SMartin Matuska.Pq space written since a bookmark
392a0b956f5SMartin Matuskaand estimates of send stream sizes for incrementals from bookmarks.
3933ff01b23SMartin Matuska.Pp
3943ff01b23SMartin MatuskaThis feature becomes
3953ff01b23SMartin Matuska.Sy active
3963ff01b23SMartin Matuskawhen a bookmark is created and will be
3973ff01b23SMartin Matuskareturned to the
3983ff01b23SMartin Matuska.Sy enabled
3993ff01b23SMartin Matuskastate when all bookmarks with these fields are destroyed.
4003ff01b23SMartin Matuska.
4013ff01b23SMartin Matuska.feature org.openzfs device_rebuild yes
4023ff01b23SMartin MatuskaThis feature enables the ability for the
4033ff01b23SMartin Matuska.Nm zpool Cm attach
4043ff01b23SMartin Matuskaand
4053ff01b23SMartin Matuska.Nm zpool Cm replace
4063ff01b23SMartin Matuskacommands to perform sequential reconstruction
407a0b956f5SMartin Matuska.Pq instead of healing reconstruction
408a0b956f5SMartin Matuskawhen resilvering.
4093ff01b23SMartin Matuska.Pp
4103ff01b23SMartin MatuskaSequential reconstruction resilvers a device in LBA order without immediately
4113ff01b23SMartin Matuskaverifying the checksums.
4123ff01b23SMartin MatuskaOnce complete, a scrub is started, which then verifies the checksums.
4133ff01b23SMartin MatuskaThis approach allows full redundancy to be restored to the pool
4143ff01b23SMartin Matuskain the minimum amount of time.
4153ff01b23SMartin MatuskaThis two-phase approach will take longer than a healing resilver
4163ff01b23SMartin Matuskawhen the time to verify the checksums is included.
4173ff01b23SMartin MatuskaHowever, unless there is additional pool damage,
4183ff01b23SMartin Matuskano checksum errors should be reported by the scrub.
4193ff01b23SMartin MatuskaThis feature is incompatible with raidz configurations.
4203ff01b23SMartin Matuska.
4213ff01b23SMartin MatuskaThis feature becomes
4223ff01b23SMartin Matuska.Sy active
4233ff01b23SMartin Matuskawhile a sequential resilver is in progress, and returns to
4243ff01b23SMartin Matuska.Sy enabled
4253ff01b23SMartin Matuskawhen the resilver completes.
4263ff01b23SMartin Matuska.
4273ff01b23SMartin Matuska.feature com.delphix device_removal no
4283ff01b23SMartin MatuskaThis feature enables the
4293ff01b23SMartin Matuska.Nm zpool Cm remove
4303ff01b23SMartin Matuskacommand to remove top-level vdevs,
4313ff01b23SMartin Matuskaevacuating them to reduce the total size of the pool.
4323ff01b23SMartin Matuska.Pp
4333ff01b23SMartin MatuskaThis feature becomes
4343ff01b23SMartin Matuska.Sy active
4353ff01b23SMartin Matuskawhen the
4363ff01b23SMartin Matuska.Nm zpool Cm remove
4373ff01b23SMartin Matuskacommand is used
4383ff01b23SMartin Matuskaon a top-level vdev, and will never return to being
4393ff01b23SMartin Matuska.Sy enabled .
4403ff01b23SMartin Matuska.
4413ff01b23SMartin Matuska.feature org.openzfs draid no
4423ff01b23SMartin MatuskaThis feature enables use of the
4433ff01b23SMartin Matuska.Sy draid
4443ff01b23SMartin Matuskavdev type.
445c03c5b1cSMartin MatuskadRAID is a variant of RAID-Z which provides integrated distributed
446c03c5b1cSMartin Matuskahot spares that allow faster resilvering while retaining the benefits of RAID-Z.
4473ff01b23SMartin MatuskaData, parity, and spare space are organized in redundancy groups
4483ff01b23SMartin Matuskaand distributed evenly over all of the devices.
4493ff01b23SMartin Matuska.Pp
4503ff01b23SMartin MatuskaThis feature becomes
4513ff01b23SMartin Matuska.Sy active
4523ff01b23SMartin Matuskawhen creating a pool which uses the
4533ff01b23SMartin Matuska.Sy draid
4543ff01b23SMartin Matuskavdev type, or when adding a new
4553ff01b23SMartin Matuska.Sy draid
4563ff01b23SMartin Matuskavdev to an existing pool.
4573ff01b23SMartin Matuska.
4583ff01b23SMartin Matuska.feature org.illumos edonr no extensible_dataset
4593ff01b23SMartin MatuskaThis feature enables the use of the Edon-R hash algorithm for checksum,
460a0b956f5SMartin Matuskaincluding for nopwrite
461a0b956f5SMartin Matuska.Po if compression is also enabled, an overwrite of
462a0b956f5SMartin Matuskaa block whose checksum matches the data being written will be ignored
463a0b956f5SMartin Matuska.Pc .
4643ff01b23SMartin MatuskaIn an abundance of caution, Edon-R requires verification when used with
4653ff01b23SMartin Matuskadedup:
4663ff01b23SMartin Matuska.Nm zfs Cm set Sy dedup Ns = Ns Sy edonr , Ns Sy verify
4673ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc .
4683ff01b23SMartin Matuska.Pp
4693ff01b23SMartin MatuskaEdon-R is a very high-performance hash algorithm that was part
4703ff01b23SMartin Matuskaof the NIST SHA-3 competition.
471a0b956f5SMartin MatuskaIt provides extremely high hash performance
472a0b956f5SMartin Matuska.Pq over 350% faster than SHA-256 ,
4733ff01b23SMartin Matuskabut was not selected because of its unsuitability
4743ff01b23SMartin Matuskaas a general purpose secure hash algorithm.
4753ff01b23SMartin MatuskaThis implementation utilizes the new salted checksumming functionality
4763ff01b23SMartin Matuskain ZFS, which means that the checksum is pre-seeded with a secret
477a0b956f5SMartin Matuska256-bit random key
478a0b956f5SMartin Matuska.Pq stored on the pool
479a0b956f5SMartin Matuskabefore being fed the data block to be checksummed.
4803ff01b23SMartin MatuskaThus the produced checksums are unique to a given pool,
4813ff01b23SMartin Matuskapreventing hash collision attacks on systems with dedup.
4821f1e2261SMartin Matuska.Pp
4831f1e2261SMartin Matuska.checksum-spiel edonr
4843ff01b23SMartin Matuska.
4853ff01b23SMartin Matuska.feature com.delphix embedded_data no
4863ff01b23SMartin MatuskaThis feature improves the performance and compression ratio of
4873ff01b23SMartin Matuskahighly-compressible blocks.
4883ff01b23SMartin MatuskaBlocks whose contents can compress to 112 bytes
4893ff01b23SMartin Matuskaor smaller can take advantage of this feature.
4903ff01b23SMartin Matuska.Pp
4913ff01b23SMartin MatuskaWhen this feature is enabled, the contents of highly-compressible blocks are
492a0b956f5SMartin Matuskastored in the block
493a0b956f5SMartin Matuska.Dq pointer
494a0b956f5SMartin Matuskaitself
495a0b956f5SMartin Matuska.Po a misnomer in this case, as it contains
496a0b956f5SMartin Matuskathe compressed data, rather than a pointer to its location on disk
497a0b956f5SMartin Matuska.Pc .
498a0b956f5SMartin MatuskaThus the space of the block
499a0b956f5SMartin Matuska.Pq one sector, typically 512 B or 4 KiB
500a0b956f5SMartin Matuskais saved, and no additional I/O is needed to read and write the data block.
5013ff01b23SMartin Matuska.
5023ff01b23SMartin Matuska\*[instant-never]
5033ff01b23SMartin Matuska.
5043ff01b23SMartin Matuska.feature com.delphix empty_bpobj yes
5053ff01b23SMartin MatuskaThis feature increases the performance of creating and using a large
5063ff01b23SMartin Matuskanumber of snapshots of a single filesystem or volume, and also reduces
5073ff01b23SMartin Matuskathe disk space required.
5083ff01b23SMartin Matuska.Pp
5093ff01b23SMartin MatuskaWhen there are many snapshots, each snapshot uses many Block Pointer
510a0b956f5SMartin MatuskaObjects
511a0b956f5SMartin Matuska.Pq bpobjs
512a0b956f5SMartin Matuskato track blocks associated with that snapshot.
5133ff01b23SMartin MatuskaHowever, in common use cases, most of these bpobjs are empty.
5143ff01b23SMartin MatuskaThis feature allows us to create each bpobj on-demand,
5153ff01b23SMartin Matuskathus eliminating the empty bpobjs.
5163ff01b23SMartin Matuska.Pp
5173ff01b23SMartin MatuskaThis feature is
5183ff01b23SMartin Matuska.Sy active
5193ff01b23SMartin Matuskawhile there are any filesystems, volumes,
5203ff01b23SMartin Matuskaor snapshots which were created after enabling this feature.
5213ff01b23SMartin Matuska.
5223ff01b23SMartin Matuska.feature com.delphix enabled_txg yes
5233ff01b23SMartin MatuskaOnce this feature is enabled, ZFS records the transaction group number
5243ff01b23SMartin Matuskain which new features are enabled.
5253ff01b23SMartin MatuskaThis has no user-visible impact, but other features may depend on this feature.
5263ff01b23SMartin Matuska.Pp
5273ff01b23SMartin MatuskaThis feature becomes
5283ff01b23SMartin Matuska.Sy active
529c03c5b1cSMartin Matuskaas soon as it is enabled and will never return to being
5303ff01b23SMartin Matuska.Sy enabled .
5313ff01b23SMartin Matuska.
5323ff01b23SMartin Matuska.feature com.datto encryption no bookmark_v2 extensible_dataset
5333ff01b23SMartin MatuskaThis feature enables the creation and management of natively encrypted datasets.
5343ff01b23SMartin Matuska.Pp
5353ff01b23SMartin MatuskaThis feature becomes
5363ff01b23SMartin Matuska.Sy active
5373ff01b23SMartin Matuskawhen an encrypted dataset is created and will be returned to the
5383ff01b23SMartin Matuska.Sy enabled
5393ff01b23SMartin Matuskastate when all datasets that use this feature are destroyed.
5403ff01b23SMartin Matuska.
5413ff01b23SMartin Matuska.feature com.delphix extensible_dataset no
5423ff01b23SMartin MatuskaThis feature allows more flexible use of internal ZFS data structures,
5433ff01b23SMartin Matuskaand exists for other features to depend on.
5443ff01b23SMartin Matuska.Pp
5453ff01b23SMartin MatuskaThis feature will be
5463ff01b23SMartin Matuska.Sy active
5473ff01b23SMartin Matuskawhen the first dependent feature uses it, and will be returned to the
5483ff01b23SMartin Matuska.Sy enabled
5493ff01b23SMartin Matuskastate when all datasets that use this feature are destroyed.
5503ff01b23SMartin Matuska.
5513ff01b23SMartin Matuska.feature com.joyent filesystem_limits yes extensible_dataset
5523ff01b23SMartin MatuskaThis feature enables filesystem and snapshot limits.
5533ff01b23SMartin MatuskaThese limits can be used to control how many filesystems and/or snapshots
5543ff01b23SMartin Matuskacan be created at the point in the tree on which the limits are set.
5553ff01b23SMartin Matuska.Pp
5563ff01b23SMartin MatuskaThis feature is
5573ff01b23SMartin Matuska.Sy active
558c03c5b1cSMartin Matuskaonce either of the limit properties has been set on a dataset
559c03c5b1cSMartin Matuskaand will never return to being
560c03c5b1cSMartin Matuska.Sy enabled .
5613ff01b23SMartin Matuska.
562716fd348SMartin Matuska.feature com.delphix head_errlog no
563716fd348SMartin MatuskaThis feature enables the upgraded version of errlog, which required an on-disk
564716fd348SMartin Matuskaerror log format change.
565716fd348SMartin MatuskaNow the error log of each head dataset is stored separately in the zap object
566716fd348SMartin Matuskaand keyed by the head id.
567716fd348SMartin MatuskaWith this feature enabled, every dataset affected by an error block is listed
568716fd348SMartin Matuskain the output of
569716fd348SMartin Matuska.Nm zpool Cm status .
570e639e0d2SMartin MatuskaIn case of encrypted filesystems with unloaded keys we are unable to check
571e639e0d2SMartin Matuskatheir snapshots or clones for errors and these will not be reported.
572e639e0d2SMartin MatuskaAn "access denied" error will be reported.
573716fd348SMartin Matuska.Pp
574716fd348SMartin Matuska\*[instant-never]
575716fd348SMartin Matuska.
5763ff01b23SMartin Matuska.feature com.delphix hole_birth no enabled_txg
5773ff01b23SMartin MatuskaThis feature has/had bugs, the result of which is that, if you do a
5783ff01b23SMartin Matuska.Nm zfs Cm send Fl i
5793ff01b23SMartin Matuska.Pq or Fl R , No since it uses Fl i
5803ff01b23SMartin Matuskafrom an affected dataset, the receiving party will not see any checksum
5813ff01b23SMartin Matuskaor other errors, but the resulting destination snapshot
5823ff01b23SMartin Matuskawill not match the source.
5833ff01b23SMartin MatuskaIts use by
5843ff01b23SMartin Matuska.Nm zfs Cm send Fl i
5853ff01b23SMartin Matuskahas been disabled by default
586a0b956f5SMartin Matuska.Po
587a0b956f5SMartin Matuskasee
588a0b956f5SMartin Matuska.Sy send_holes_without_birth_time
589a0b956f5SMartin Matuskain
590a0b956f5SMartin Matuska.Xr zfs 4
591a0b956f5SMartin Matuska.Pc .
5923ff01b23SMartin Matuska.Pp
5933ff01b23SMartin MatuskaThis feature improves performance of incremental sends
5943ff01b23SMartin Matuska.Pq Nm zfs Cm send Fl i
5953ff01b23SMartin Matuskaand receives for objects with many holes.
5963ff01b23SMartin MatuskaThe most common case of hole-filled objects is zvols.
5973ff01b23SMartin Matuska.Pp
5983ff01b23SMartin MatuskaAn incremental send stream from snapshot
5993ff01b23SMartin Matuska.Sy A No to snapshot Sy B
6003ff01b23SMartin Matuskacontains information about every block that changed between
6013ff01b23SMartin Matuska.Sy A No and Sy B .
6023ff01b23SMartin MatuskaBlocks which did not change between those snapshots can be
6033ff01b23SMartin Matuskaidentified and omitted from the stream using a piece of metadata called
604a0b956f5SMartin Matuskathe
605a0b956f5SMartin Matuska.Dq block birth time ,
606a0b956f5SMartin Matuskabut birth times are not recorded for holes
607a0b956f5SMartin Matuska.Pq blocks filled only with zeroes .
6083ff01b23SMartin MatuskaSince holes created after
6093ff01b23SMartin Matuska.Sy A No cannot be distinguished from holes created before Sy A ,
6103ff01b23SMartin Matuskainformation about every hole in the entire filesystem or zvol
6113ff01b23SMartin Matuskais included in the send stream.
6123ff01b23SMartin Matuska.Pp
6133ff01b23SMartin MatuskaFor workloads where holes are rare this is not a problem.
6143ff01b23SMartin MatuskaHowever, when incrementally replicating filesystems or zvols with many holes
615a0b956f5SMartin Matuska.Pq for example a zvol formatted with another filesystem
616a0b956f5SMartin Matuskaa lot of time will be spent sending and receiving unnecessary information
617a0b956f5SMartin Matuskaabout holes that already exist on the receiving side.
6183ff01b23SMartin Matuska.Pp
6193ff01b23SMartin MatuskaOnce the
6203ff01b23SMartin Matuska.Sy hole_birth
6213ff01b23SMartin Matuskafeature has been enabled the block birth times
6223ff01b23SMartin Matuskaof all new holes will be recorded.
6233ff01b23SMartin MatuskaIncremental sends between snapshots created after this feature is enabled
6243ff01b23SMartin Matuskawill use this new metadata to avoid sending information about holes that
6253ff01b23SMartin Matuskaalready exist on the receiving side.
6263ff01b23SMartin Matuska.Pp
6273ff01b23SMartin Matuska\*[instant-never]
6283ff01b23SMartin Matuska.
6293ff01b23SMartin Matuska.feature org.open-zfs large_blocks no extensible_dataset
630716fd348SMartin MatuskaThis feature allows the record size on a dataset to be set larger than 128 KiB.
6313ff01b23SMartin Matuska.Pp
6323ff01b23SMartin MatuskaThis feature becomes
6333ff01b23SMartin Matuska.Sy active
634716fd348SMartin Matuskaonce a dataset contains a file with a block size larger than 128 KiB,
6353ff01b23SMartin Matuskaand will return to being
6363ff01b23SMartin Matuska.Sy enabled
637716fd348SMartin Matuskaonce all filesystems that have ever had their recordsize larger than 128 KiB
6383ff01b23SMartin Matuskaare destroyed.
6393ff01b23SMartin Matuska.
6403ff01b23SMartin Matuska.feature org.zfsonlinux large_dnode no extensible_dataset
6413ff01b23SMartin MatuskaThis feature allows the size of dnodes in a dataset to be set larger than 512 B.
6423ff01b23SMartin Matuska.
6433ff01b23SMartin MatuskaThis feature becomes
6443ff01b23SMartin Matuska.Sy active
6453ff01b23SMartin Matuskaonce a dataset contains an object with a dnode larger than 512 B,
6463ff01b23SMartin Matuskawhich occurs as a result of setting the
6473ff01b23SMartin Matuska.Sy dnodesize
6483ff01b23SMartin Matuskadataset property to a value other than
6493ff01b23SMartin Matuska.Sy legacy .
6503ff01b23SMartin MatuskaThe feature will return to being
6513ff01b23SMartin Matuska.Sy enabled
6523ff01b23SMartin Matuskaonce all filesystems that have ever contained a dnode larger than 512 B
6533ff01b23SMartin Matuskaare destroyed.
6543ff01b23SMartin MatuskaLarge dnodes allow more data to be stored in the bonus buffer,
6553ff01b23SMartin Matuskathus potentially improving performance by avoiding the use of spill blocks.
6563ff01b23SMartin Matuska.
6573ff01b23SMartin Matuska.feature com.delphix livelist yes
6583ff01b23SMartin MatuskaThis feature allows clones to be deleted faster than the traditional method
6593ff01b23SMartin Matuskawhen a large number of random/sparse writes have been made to the clone.
6603ff01b23SMartin MatuskaAll blocks allocated and freed after a clone is created are tracked by the
6613ff01b23SMartin Matuskathe clone's livelist which is referenced during the deletion of the clone.
6623ff01b23SMartin MatuskaThe feature is activated when a clone is created and remains
6633ff01b23SMartin Matuska.Sy active
6643ff01b23SMartin Matuskauntil all clones have been destroyed.
6653ff01b23SMartin Matuska.
6663ff01b23SMartin Matuska.feature com.delphix log_spacemap yes com.delphix:spacemap_v2
6673ff01b23SMartin MatuskaThis feature improves performance for heavily-fragmented pools,
6683ff01b23SMartin Matuskaespecially when workloads are heavy in random-writes.
6693ff01b23SMartin MatuskaIt does so by logging all the metaslab changes on a single spacemap every TXG
6703ff01b23SMartin Matuskainstead of scattering multiple writes to all the metaslab spacemaps.
6713ff01b23SMartin Matuska.Pp
6723ff01b23SMartin Matuska\*[instant-never]
6733ff01b23SMartin Matuska.
6743ff01b23SMartin Matuska.feature org.illumos lz4_compress no
6753ff01b23SMartin Matuska.Sy lz4
6763ff01b23SMartin Matuskais a high-performance real-time compression algorithm that
6773ff01b23SMartin Matuskafeatures significantly faster compression and decompression as well as a
6783ff01b23SMartin Matuskahigher compression ratio than the older
6793ff01b23SMartin Matuska.Sy lzjb
6803ff01b23SMartin Matuskacompression.
6813ff01b23SMartin MatuskaTypically,
6823ff01b23SMartin Matuska.Sy lz4
6833ff01b23SMartin Matuskacompression is approximately 50% faster on compressible data and 200% faster
6843ff01b23SMartin Matuskaon incompressible data than
6853ff01b23SMartin Matuska.Sy lzjb .
6863ff01b23SMartin MatuskaIt is also approximately 80% faster on decompression,
6873ff01b23SMartin Matuskawhile giving approximately a 10% better compression ratio.
6883ff01b23SMartin Matuska.Pp
6893ff01b23SMartin MatuskaWhen the
6903ff01b23SMartin Matuska.Sy lz4_compress
6913ff01b23SMartin Matuskafeature is set to
6923ff01b23SMartin Matuska.Sy enabled ,
6933ff01b23SMartin Matuskathe administrator can turn on
6943ff01b23SMartin Matuska.Sy lz4
6953ff01b23SMartin Matuskacompression on any dataset on the pool using the
6963ff01b23SMartin Matuska.Xr zfs-set 8
6973ff01b23SMartin Matuskacommand.
6983ff01b23SMartin MatuskaAll newly written metadata will be compressed with the
6993ff01b23SMartin Matuska.Sy lz4
7003ff01b23SMartin Matuskaalgorithm.
7013ff01b23SMartin Matuska.Pp
7023ff01b23SMartin Matuska\*[instant-never]
7033ff01b23SMartin Matuska.
7043ff01b23SMartin Matuska.feature com.joyent multi_vdev_crash_dump no
7053ff01b23SMartin MatuskaThis feature allows a dump device to be configured with a pool comprised
7063ff01b23SMartin Matuskaof multiple vdevs.
7073ff01b23SMartin MatuskaThose vdevs may be arranged in any mirrored or raidz configuration.
7083ff01b23SMartin Matuska.Pp
7093ff01b23SMartin MatuskaWhen the
7103ff01b23SMartin Matuska.Sy multi_vdev_crash_dump
7113ff01b23SMartin Matuskafeature is set to
7123ff01b23SMartin Matuska.Sy enabled ,
7133ff01b23SMartin Matuskathe administrator can use
714a0b956f5SMartin Matuska.Xr dumpadm 8
7153ff01b23SMartin Matuskato configure a dump device on a pool comprised of multiple vdevs.
7163ff01b23SMartin Matuska.Pp
7173ff01b23SMartin MatuskaUnder
7183ff01b23SMartin Matuska.Fx
7193ff01b23SMartin Matuskaand Linux this feature is unused, but registered for compatibility.
7203ff01b23SMartin MatuskaNew pools created on these systems will have the feature
7213ff01b23SMartin Matuska.Sy enabled
7223ff01b23SMartin Matuskabut will never transition to
7233ff01b23SMartin Matuska.Sy active ,
7243ff01b23SMartin Matuskaas this functionality is not required for crash dump support.
7253ff01b23SMartin MatuskaExisting pools where this feature is
7263ff01b23SMartin Matuska.Sy active
7273ff01b23SMartin Matuskacan be imported.
7283ff01b23SMartin Matuska.
7293ff01b23SMartin Matuska.feature com.delphix obsolete_counts yes device_removal
7303ff01b23SMartin MatuskaThis feature is an enhancement of
7313ff01b23SMartin Matuska.Sy device_removal ,
7323ff01b23SMartin Matuskawhich will over time reduce the memory used to track removed devices.
7333ff01b23SMartin MatuskaWhen indirect blocks are freed or remapped,
734a0b956f5SMartin Matuskawe note that their part of the indirect mapping is
735a0b956f5SMartin Matuska.Dq obsolete
736a0b956f5SMartin Matuska– no longer needed.
7373ff01b23SMartin Matuska.Pp
7383ff01b23SMartin MatuskaThis feature becomes
7393ff01b23SMartin Matuska.Sy active
7403ff01b23SMartin Matuskawhen the
7413ff01b23SMartin Matuska.Nm zpool Cm remove
7423ff01b23SMartin Matuskacommand is used on a top-level vdev, and will never return to being
7433ff01b23SMartin Matuska.Sy enabled .
7443ff01b23SMartin Matuska.
7453ff01b23SMartin Matuska.feature org.zfsonlinux project_quota yes extensible_dataset
7463ff01b23SMartin MatuskaThis feature allows administrators to account the spaces and objects usage
747a0b956f5SMartin Matuskainformation against the project identifier
748a0b956f5SMartin Matuska.Pq ID .
7493ff01b23SMartin Matuska.Pp
7503ff01b23SMartin MatuskaThe project ID is an object-based attribute.
7513ff01b23SMartin MatuskaWhen upgrading an existing filesystem,
7523ff01b23SMartin Matuskaobjects without a project ID will be assigned a zero project ID.
7533ff01b23SMartin MatuskaWhen this feature is enabled, newly created objects inherit
7543ff01b23SMartin Matuskatheir parent directories' project ID if the parent's inherit flag is set
7553ff01b23SMartin Matuska.Pq via Nm chattr Sy [+-]P No or Nm zfs Cm project Fl s Ns | Ns Fl C .
7563ff01b23SMartin MatuskaOtherwise, the new object's project ID will be zero.
7573ff01b23SMartin MatuskaAn object's project ID can be changed at any time by the owner
758a0b956f5SMartin Matuska.Pq or privileged user
759a0b956f5SMartin Matuskavia
7603ff01b23SMartin Matuska.Nm chattr Fl p Ar prjid
7613ff01b23SMartin Matuskaor
7623ff01b23SMartin Matuska.Nm zfs Cm project Fl p Ar prjid .
7633ff01b23SMartin Matuska.Pp
7643ff01b23SMartin MatuskaThis feature will become
7653ff01b23SMartin Matuska.Sy active
7663ff01b23SMartin Matuskaas soon as it is enabled and will never return to being
7673ff01b23SMartin Matuska.Sy disabled .
7683ff01b23SMartin Matuska\*[remount-upgrade]
7693ff01b23SMartin Matuska.
770*e716630dSMartin Matuska.feature org.openzfs raidz_expansion no none
771*e716630dSMartin MatuskaThis feature enables the
772*e716630dSMartin Matuska.Nm zpool Cm attach
773*e716630dSMartin Matuskasubcommand to attach a new device to a RAID-Z group, expanding the total
774*e716630dSMartin Matuskaamount usable space in the pool.
775*e716630dSMartin MatuskaSee
776*e716630dSMartin Matuska.Xr zpool-attach 8 .
777*e716630dSMartin Matuska.
7783ff01b23SMartin Matuska.feature com.delphix redaction_bookmarks no bookmarks extensible_dataset
7793ff01b23SMartin MatuskaThis feature enables the use of redacted
7803ff01b23SMartin Matuska.Nm zfs Cm send Ns s ,
7813ff01b23SMartin Matuskawhich create redaction bookmarks storing the list of blocks
7823ff01b23SMartin Matuskaredacted by the send that created them.
7833ff01b23SMartin MatuskaFor more information about redacted sends, see
7843ff01b23SMartin Matuska.Xr zfs-send 8 .
7853ff01b23SMartin Matuska.
7863ff01b23SMartin Matuska.feature com.delphix redacted_datasets no extensible_dataset
7873ff01b23SMartin MatuskaThis feature enables the receiving of redacted
788c03c5b1cSMartin Matuska.Nm zfs Cm send
789c03c5b1cSMartin Matuskastreams, which create redacted datasets when received.
7903ff01b23SMartin MatuskaThese datasets are missing some of their blocks,
7913ff01b23SMartin Matuskaand so cannot be safely mounted, and their contents cannot be safely read.
7923ff01b23SMartin MatuskaFor more information about redacted receives, see
7933ff01b23SMartin Matuska.Xr zfs-send 8 .
7943ff01b23SMartin Matuska.
795*e716630dSMartin Matuska.feature com.delphix redaction_list_spill no redaction_bookmarks
796*e716630dSMartin MatuskaThis feature enables the redaction list created by zfs redact to store
797*e716630dSMartin Matuskamany more entries.
798*e716630dSMartin MatuskaIt becomes
799*e716630dSMartin Matuska.Sy active
800*e716630dSMartin Matuskawhen a redaction list is created with more than 36 entries,
801*e716630dSMartin Matuskaand returns to being
802*e716630dSMartin Matuska.Sy enabled
803*e716630dSMartin Matuskawhen no long redaction lists remain in the pool.
804*e716630dSMartin MatuskaFor more information about redacted sends, see
805*e716630dSMartin Matuska.Xr zfs-send 8 .
806*e716630dSMartin Matuska.
8073ff01b23SMartin Matuska.feature com.datto resilver_defer yes
8083ff01b23SMartin MatuskaThis feature allows ZFS to postpone new resilvers if an existing one is already
8093ff01b23SMartin Matuskain progress.
8103ff01b23SMartin MatuskaWithout this feature, any new resilvers will cause the currently
8113ff01b23SMartin Matuskarunning one to be immediately restarted from the beginning.
8123ff01b23SMartin Matuska.Pp
8133ff01b23SMartin MatuskaThis feature becomes
8143ff01b23SMartin Matuska.Sy active
8153ff01b23SMartin Matuskaonce a resilver has been deferred, and returns to being
8163ff01b23SMartin Matuska.Sy enabled
8173ff01b23SMartin Matuskawhen the deferred resilver begins.
8183ff01b23SMartin Matuska.
8193ff01b23SMartin Matuska.feature org.illumos sha512 no extensible_dataset
8203ff01b23SMartin MatuskaThis feature enables the use of the SHA-512/256 truncated hash algorithm
821a0b956f5SMartin Matuska.Pq FIPS 180-4
822a0b956f5SMartin Matuskafor checksum and dedup.
8233ff01b23SMartin MatuskaThe native 64-bit arithmetic of SHA-512 provides an approximate 50%
8243ff01b23SMartin Matuskaperformance boost over SHA-256 on 64-bit hardware
8253ff01b23SMartin Matuskaand is thus a good minimum-change replacement candidate
8263ff01b23SMartin Matuskafor systems where hash performance is important,
8273ff01b23SMartin Matuskabut these systems cannot for whatever reason utilize the faster
8283ff01b23SMartin Matuska.Sy skein No and Sy edonr
8293ff01b23SMartin Matuskaalgorithms.
8303ff01b23SMartin Matuska.Pp
8313ff01b23SMartin Matuska.checksum-spiel sha512
8323ff01b23SMartin Matuska.
8333ff01b23SMartin Matuska.feature org.illumos skein no extensible_dataset
8343ff01b23SMartin MatuskaThis feature enables the use of the Skein hash algorithm for checksum and dedup.
8353ff01b23SMartin MatuskaSkein is a high-performance secure hash algorithm that was a
8363ff01b23SMartin Matuskafinalist in the NIST SHA-3 competition.
8373ff01b23SMartin MatuskaIt provides a very high security margin and high performance on 64-bit hardware
838a0b956f5SMartin Matuska.Pq 80% faster than SHA-256 .
8393ff01b23SMartin MatuskaThis implementation also utilizes the new salted checksumming
8403ff01b23SMartin Matuskafunctionality in ZFS, which means that the checksum is pre-seeded with a
841a0b956f5SMartin Matuskasecret 256-bit random key
842a0b956f5SMartin Matuska.Pq stored on the pool
843a0b956f5SMartin Matuskabefore being fed the data block to be checksummed.
8443ff01b23SMartin MatuskaThus the produced checksums are unique to a given pool,
8453ff01b23SMartin Matuskapreventing hash collision attacks on systems with dedup.
8463ff01b23SMartin Matuska.Pp
8473ff01b23SMartin Matuska.checksum-spiel skein
8483ff01b23SMartin Matuska.
8493ff01b23SMartin Matuska.feature com.delphix spacemap_histogram yes
8503ff01b23SMartin MatuskaThis features allows ZFS to maintain more information about how free space
8513ff01b23SMartin Matuskais organized within the pool.
8523ff01b23SMartin MatuskaIf this feature is
8533ff01b23SMartin Matuska.Sy enabled ,
8543ff01b23SMartin Matuskait will be activated when a new space map object is created, or
8553ff01b23SMartin Matuskaan existing space map is upgraded to the new format,
8563ff01b23SMartin Matuskaand never returns back to being
8573ff01b23SMartin Matuska.Sy enabled .
8583ff01b23SMartin Matuska.
8593ff01b23SMartin Matuska.feature com.delphix spacemap_v2 yes
8603ff01b23SMartin MatuskaThis feature enables the use of the new space map encoding which
861a0b956f5SMartin Matuskaconsists of two words
862a0b956f5SMartin Matuska.Pq instead of one
863a0b956f5SMartin Matuskawhenever it is advantageous.
8643ff01b23SMartin MatuskaThe new encoding allows space maps to represent large regions of
8653ff01b23SMartin Matuskaspace more efficiently on-disk while also increasing their maximum
8663ff01b23SMartin Matuskaaddressable offset.
8673ff01b23SMartin Matuska.Pp
8683ff01b23SMartin MatuskaThis feature becomes
8693ff01b23SMartin Matuska.Sy active
8703ff01b23SMartin Matuskaonce it is
8713ff01b23SMartin Matuska.Sy enabled ,
8723ff01b23SMartin Matuskaand never returns back to being
8733ff01b23SMartin Matuska.Sy enabled .
8743ff01b23SMartin Matuska.
8753ff01b23SMartin Matuska.feature org.zfsonlinux userobj_accounting yes extensible_dataset
8763ff01b23SMartin MatuskaThis feature allows administrators to account the object usage information
8773ff01b23SMartin Matuskaby user and group.
8783ff01b23SMartin Matuska.Pp
8793ff01b23SMartin Matuska\*[instant-never]
8803ff01b23SMartin Matuska\*[remount-upgrade]
8813ff01b23SMartin Matuska.
882d411c1d6SMartin Matuska.feature com.klarasystems vdev_zaps_v2 no
883d411c1d6SMartin MatuskaThis feature creates a ZAP object for the root vdev.
884d411c1d6SMartin Matuska.Pp
885d411c1d6SMartin MatuskaThis feature becomes active after the next
886d411c1d6SMartin Matuska.Nm zpool Cm import
887d411c1d6SMartin Matuskaor
888d411c1d6SMartin Matuska.Nm zpool reguid .
889d411c1d6SMartin Matuska.
890d411c1d6SMartin MatuskaProperties can be retrieved or set on the root vdev using
891d411c1d6SMartin Matuska.Nm zpool Cm get
892d411c1d6SMartin Matuskaand
893d411c1d6SMartin Matuska.Nm zpool Cm set
894d411c1d6SMartin Matuskawith
895d411c1d6SMartin Matuska.Sy root
896d411c1d6SMartin Matuskaas the vdev name which is an alias for
897d411c1d6SMartin Matuska.Sy root-0 .
898c03c5b1cSMartin Matuska.feature org.openzfs zilsaxattr yes extensible_dataset
899c03c5b1cSMartin MatuskaThis feature enables
900c03c5b1cSMartin Matuska.Sy xattr Ns = Ns Sy sa
901c03c5b1cSMartin Matuskaextended attribute logging in the ZIL.
902c03c5b1cSMartin MatuskaIf enabled, extended attribute changes
903c03c5b1cSMartin Matuska.Pq both Sy xattrdir Ns = Ns Sy dir No and Sy xattr Ns = Ns Sy sa
904c03c5b1cSMartin Matuskaare guaranteed to be durable if either the dataset had
905c03c5b1cSMartin Matuska.Sy sync Ns = Ns Sy always
906c03c5b1cSMartin Matuskaset at the time the changes were made, or
907c03c5b1cSMartin Matuska.Xr sync 2
908c03c5b1cSMartin Matuskais called on the dataset after the changes were made.
909c03c5b1cSMartin Matuska.Pp
910c03c5b1cSMartin MatuskaThis feature becomes
911c03c5b1cSMartin Matuska.Sy active
912c03c5b1cSMartin Matuskawhen a ZIL is created for at least one dataset and will be returned to the
913c03c5b1cSMartin Matuska.Sy enabled
914c03c5b1cSMartin Matuskastate when it is destroyed for all datasets that use this feature.
915c03c5b1cSMartin Matuska.
9163ff01b23SMartin Matuska.feature com.delphix zpool_checkpoint yes
9173ff01b23SMartin MatuskaThis feature enables the
9183ff01b23SMartin Matuska.Nm zpool Cm checkpoint
9193ff01b23SMartin Matuskacommand that can checkpoint the state of the pool
9203ff01b23SMartin Matuskaat the time it was issued and later rewind back to it or discard it.
9213ff01b23SMartin Matuska.Pp
9223ff01b23SMartin MatuskaThis feature becomes
9233ff01b23SMartin Matuska.Sy active
9243ff01b23SMartin Matuskawhen the
9253ff01b23SMartin Matuska.Nm zpool Cm checkpoint
9263ff01b23SMartin Matuskacommand is used to checkpoint the pool.
9273ff01b23SMartin MatuskaThe feature will only return back to being
9283ff01b23SMartin Matuska.Sy enabled
9293ff01b23SMartin Matuskawhen the pool is rewound or the checkpoint has been discarded.
9303ff01b23SMartin Matuska.
9313ff01b23SMartin Matuska.feature org.freebsd zstd_compress no extensible_dataset
9323ff01b23SMartin Matuska.Sy zstd
9333ff01b23SMartin Matuskais a high-performance compression algorithm that features a
9343ff01b23SMartin Matuskacombination of high compression ratios and high speed.
9353ff01b23SMartin MatuskaCompared to
9363ff01b23SMartin Matuska.Sy gzip ,
9373ff01b23SMartin Matuska.Sy zstd
9383ff01b23SMartin Matuskaoffers slightly better compression at much higher speeds.
9393ff01b23SMartin MatuskaCompared to
9403ff01b23SMartin Matuska.Sy lz4 ,
9413ff01b23SMartin Matuska.Sy zstd
9423ff01b23SMartin Matuskaoffers much better compression while being only modestly slower.
9433ff01b23SMartin MatuskaTypically,
9443ff01b23SMartin Matuska.Sy zstd
9453ff01b23SMartin Matuskacompression speed ranges from 250 to 500 MB/s per thread
9463ff01b23SMartin Matuskaand decompression speed is over 1 GB/s per thread.
9473ff01b23SMartin Matuska.Pp
9483ff01b23SMartin MatuskaWhen the
9493ff01b23SMartin Matuska.Sy zstd
9503ff01b23SMartin Matuskafeature is set to
9513ff01b23SMartin Matuska.Sy enabled ,
9523ff01b23SMartin Matuskathe administrator can turn on
9533ff01b23SMartin Matuska.Sy zstd
9543ff01b23SMartin Matuskacompression of any dataset using
9553ff01b23SMartin Matuska.Nm zfs Cm set Sy compress Ns = Ns Sy zstd Ar dset
9563ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc .
9573ff01b23SMartin MatuskaThis feature becomes
9583ff01b23SMartin Matuska.Sy active
9593ff01b23SMartin Matuskaonce a
9603ff01b23SMartin Matuska.Sy compress
9613ff01b23SMartin Matuskaproperty has been set to
9623ff01b23SMartin Matuska.Sy zstd ,
9633ff01b23SMartin Matuskaand will return to being
9643ff01b23SMartin Matuska.Sy enabled
9653ff01b23SMartin Matuskaonce all filesystems that have ever had their
9663ff01b23SMartin Matuska.Sy compress
9673ff01b23SMartin Matuskaproperty set to
9683ff01b23SMartin Matuska.Sy zstd
9693ff01b23SMartin Matuskaare destroyed.
9703ff01b23SMartin Matuska.El
9713ff01b23SMartin Matuska.
9723ff01b23SMartin Matuska.Sh SEE ALSO
973a0b956f5SMartin Matuska.Xr zfs 8 ,
9743ff01b23SMartin Matuska.Xr zpool 8
975