xref: /freebsd-src/sys/contrib/openzfs/man/man7/zpool-features.7 (revision 3ff01b231dfa83d518854c63e7c9cd1debd1139e)
1*3ff01b23SMartin Matuska.\"
2*3ff01b23SMartin Matuska.\" Copyright (c) 2012, 2018 by Delphix. All rights reserved.
3*3ff01b23SMartin Matuska.\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
4*3ff01b23SMartin Matuska.\" Copyright (c) 2014, Joyent, Inc. All rights reserved.
5*3ff01b23SMartin Matuska.\" The contents of this file are subject to the terms of the Common Development
6*3ff01b23SMartin Matuska.\" and Distribution License (the "License").  You may not use this file except
7*3ff01b23SMartin Matuska.\" in compliance with the License. You can obtain a copy of the license at
8*3ff01b23SMartin Matuska.\" usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
9*3ff01b23SMartin Matuska.\"
10*3ff01b23SMartin Matuska.\" See the License for the specific language governing permissions and
11*3ff01b23SMartin Matuska.\" limitations under the License. When distributing Covered Code, include this
12*3ff01b23SMartin Matuska.\" CDDL HEADER in each file and include the License file at
13*3ff01b23SMartin Matuska.\" usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this
14*3ff01b23SMartin Matuska.\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your
15*3ff01b23SMartin Matuska.\" own identifying information:
16*3ff01b23SMartin Matuska.\" Portions Copyright [yyyy] [name of copyright owner]
17*3ff01b23SMartin Matuska.\" Copyright (c) 2019, Klara Inc.
18*3ff01b23SMartin Matuska.\" Copyright (c) 2019, Allan Jude
19*3ff01b23SMartin Matuska.\" Copyright (c) 2021, Colm Buckley <colm@tuatha.org>
20*3ff01b23SMartin Matuska.\"
21*3ff01b23SMartin Matuska.Dd May 31, 2021
22*3ff01b23SMartin Matuska.Dt ZPOOL-FEATURES 7
23*3ff01b23SMartin Matuska.Os
24*3ff01b23SMartin Matuska.
25*3ff01b23SMartin Matuska.Sh NAME
26*3ff01b23SMartin Matuska.Nm zpool-features
27*3ff01b23SMartin Matuska.Nd description of ZFS pool features
28*3ff01b23SMartin Matuska.
29*3ff01b23SMartin Matuska.Sh DESCRIPTION
30*3ff01b23SMartin MatuskaZFS pool on-disk format versions are specified via "features" which replace
31*3ff01b23SMartin Matuskathe old on-disk format numbers (the last supported on-disk format number is 28).
32*3ff01b23SMartin MatuskaTo enable a feature on a pool use the
33*3ff01b23SMartin Matuska.Nm zpool Cm upgrade ,
34*3ff01b23SMartin Matuskaor set the
35*3ff01b23SMartin Matuska.Sy feature Ns @ Ns Ar feature-name
36*3ff01b23SMartin Matuskaproperty to
37*3ff01b23SMartin Matuska.Sy enabled .
38*3ff01b23SMartin MatuskaPlease also see the
39*3ff01b23SMartin Matuska.Sx Compatibility feature sets
40*3ff01b23SMartin Matuskasection for information on how sets of features may be enabled together.
41*3ff01b23SMartin Matuska.Pp
42*3ff01b23SMartin MatuskaThe pool format does not affect file system version compatibility or the ability
43*3ff01b23SMartin Matuskato send file systems between pools.
44*3ff01b23SMartin Matuska.Pp
45*3ff01b23SMartin MatuskaSince most features can be enabled independently of each other, the on-disk
46*3ff01b23SMartin Matuskaformat of the pool is specified by the set of all features marked as
47*3ff01b23SMartin Matuska.Sy active
48*3ff01b23SMartin Matuskaon the pool.
49*3ff01b23SMartin MatuskaIf the pool was created by another software version
50*3ff01b23SMartin Matuskathis set may include unsupported features.
51*3ff01b23SMartin Matuska.
52*3ff01b23SMartin Matuska.Ss Identifying features
53*3ff01b23SMartin MatuskaEvery feature has a GUID of the form
54*3ff01b23SMartin Matuska.Ar com.example : Ns Ar feature-name .
55*3ff01b23SMartin MatuskaThe reversed DNS name ensures that the feature's GUID is unique across all ZFS
56*3ff01b23SMartin Matuskaimplementations.
57*3ff01b23SMartin MatuskaWhen unsupported features are encountered on a pool they will
58*3ff01b23SMartin Matuskabe identified by their GUIDs.
59*3ff01b23SMartin MatuskaRefer to the documentation for the ZFS
60*3ff01b23SMartin Matuskaimplementation that created the pool for information about those features.
61*3ff01b23SMartin Matuska.Pp
62*3ff01b23SMartin MatuskaEach supported feature also has a short name.
63*3ff01b23SMartin MatuskaBy convention a feature's short name is the portion of its GUID which follows the
64*3ff01b23SMartin Matuska.Sq \&:
65*3ff01b23SMartin Matuska(i.e.
66*3ff01b23SMartin Matuska.Ar com.example : Ns Ar feature-name
67*3ff01b23SMartin Matuskawould have the short name
68*3ff01b23SMartin Matuska.Ar feature-name ) ,
69*3ff01b23SMartin Matuskahowever a feature's short name may differ across ZFS implementations if
70*3ff01b23SMartin Matuskafollowing the convention would result in name conflicts.
71*3ff01b23SMartin Matuska.
72*3ff01b23SMartin Matuska.Ss Feature states
73*3ff01b23SMartin MatuskaFeatures can be in one of three states:
74*3ff01b23SMartin Matuska.Bl -tag -width "disabled"
75*3ff01b23SMartin Matuska.It Sy active
76*3ff01b23SMartin MatuskaThis feature's on-disk format changes are in effect on the pool.
77*3ff01b23SMartin MatuskaSupport for this feature is required to import the pool in read-write mode.
78*3ff01b23SMartin MatuskaIf this feature is not read-only compatible,
79*3ff01b23SMartin Matuskasupport is also required to import the pool in read-only mode
80*3ff01b23SMartin Matuska.Pq see Sx Read-only compatibility .
81*3ff01b23SMartin Matuska.It Sy enabled
82*3ff01b23SMartin MatuskaAn administrator has marked this feature as enabled on the pool, but the
83*3ff01b23SMartin Matuskafeature's on-disk format changes have not been made yet.
84*3ff01b23SMartin MatuskaThe pool can still be imported by software that does not support this feature,
85*3ff01b23SMartin Matuskabut changes may be made to the on-disk format at any time
86*3ff01b23SMartin Matuskawhich will move the feature to the
87*3ff01b23SMartin Matuska.Sy active
88*3ff01b23SMartin Matuskastate.
89*3ff01b23SMartin MatuskaSome features may support returning to the
90*3ff01b23SMartin Matuska.Sy enabled
91*3ff01b23SMartin Matuskastate after becoming
92*3ff01b23SMartin Matuska.Sy active .
93*3ff01b23SMartin MatuskaSee feature-specific documentation for details.
94*3ff01b23SMartin Matuska.It Sy disabled
95*3ff01b23SMartin MatuskaThis feature's on-disk format changes have not been made and will not be made
96*3ff01b23SMartin Matuskaunless an administrator moves the feature to the
97*3ff01b23SMartin Matuska.Sy enabled
98*3ff01b23SMartin Matuskastate.
99*3ff01b23SMartin MatuskaFeatures cannot be disabled once they have been enabled.
100*3ff01b23SMartin Matuska.El
101*3ff01b23SMartin Matuska.Pp
102*3ff01b23SMartin MatuskaThe state of supported features is exposed through pool properties of the form
103*3ff01b23SMartin Matuska.Sy feature Ns @ Ns Ar short-name .
104*3ff01b23SMartin Matuska.
105*3ff01b23SMartin Matuska.Ss Read-only compatibility
106*3ff01b23SMartin MatuskaSome features may make on-disk format changes that do not interfere with other
107*3ff01b23SMartin Matuskasoftware's ability to read from the pool.
108*3ff01b23SMartin MatuskaThese features are referred to as
109*3ff01b23SMartin Matuska.Dq read-only compatible .
110*3ff01b23SMartin MatuskaIf all unsupported features on a pool are read-only compatible,
111*3ff01b23SMartin Matuskathe pool can be imported in read-only mode by setting the
112*3ff01b23SMartin Matuska.Sy readonly
113*3ff01b23SMartin Matuskaproperty during import (see
114*3ff01b23SMartin Matuska.Xr zpool-import 8
115*3ff01b23SMartin Matuskafor details on importing pools).
116*3ff01b23SMartin Matuska.
117*3ff01b23SMartin Matuska.Ss Unsupported features
118*3ff01b23SMartin MatuskaFor each unsupported feature enabled on an imported pool, a pool property
119*3ff01b23SMartin Matuskanamed
120*3ff01b23SMartin Matuska.Sy unsupported Ns @ Ns Ar feature-name
121*3ff01b23SMartin Matuskawill indicate why the import was allowed despite the unsupported feature.
122*3ff01b23SMartin MatuskaPossible values for this property are:
123*3ff01b23SMartin Matuska.Bl -tag -width "readonly"
124*3ff01b23SMartin Matuska.It Sy inactive
125*3ff01b23SMartin MatuskaThe feature is in the
126*3ff01b23SMartin Matuska.Sy enabled
127*3ff01b23SMartin Matuskastate and therefore the pool's on-disk
128*3ff01b23SMartin Matuskaformat is still compatible with software that does not support this feature.
129*3ff01b23SMartin Matuska.It Sy readonly
130*3ff01b23SMartin MatuskaThe feature is read-only compatible and the pool has been imported in
131*3ff01b23SMartin Matuskaread-only mode.
132*3ff01b23SMartin Matuska.El
133*3ff01b23SMartin Matuska.
134*3ff01b23SMartin Matuska.Ss Feature dependencies
135*3ff01b23SMartin MatuskaSome features depend on other features being enabled in order to function.
136*3ff01b23SMartin MatuskaEnabling a feature will automatically enable any features it depends on.
137*3ff01b23SMartin Matuska.
138*3ff01b23SMartin Matuska.Ss Compatibility feature sets
139*3ff01b23SMartin MatuskaIt is sometimes necessary for a pool to maintain compatibility with a
140*3ff01b23SMartin Matuskaspecific on-disk format, by enabling and disabling particular features.
141*3ff01b23SMartin MatuskaThe
142*3ff01b23SMartin Matuska.Sy compatibility
143*3ff01b23SMartin Matuskafeature facilitates this by allowing feature sets to be read from text files.
144*3ff01b23SMartin MatuskaWhen set to
145*3ff01b23SMartin Matuska.Sy off
146*3ff01b23SMartin Matuska(the default), compatibility feature sets are disabled
147*3ff01b23SMartin Matuska(i.e. all features are enabled); when set to
148*3ff01b23SMartin Matuska.Sy legacy ,
149*3ff01b23SMartin Matuskano features are enabled.
150*3ff01b23SMartin MatuskaWhen set to a comma-separated list of filenames
151*3ff01b23SMartin Matuska(each filename may either be an absolute path, or relative to
152*3ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d
153*3ff01b23SMartin Matuskaor
154*3ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d ) ,
155*3ff01b23SMartin Matuskathe lists of requested features are read from those files,
156*3ff01b23SMartin Matuskaseparated by whitespace and/or commas.
157*3ff01b23SMartin MatuskaOnly features present in all files are enabled.
158*3ff01b23SMartin Matuska.Pp
159*3ff01b23SMartin MatuskaSimple sanity checks are applied to the files:
160*3ff01b23SMartin Matuskathey must be between 1B and 16kB in size, and must end with a newline character.
161*3ff01b23SMartin Matuska.Pp
162*3ff01b23SMartin MatuskaThe requested features are applied when a pool is created using
163*3ff01b23SMartin Matuska.Nm zpool Cm create Fl o Sy compatibility Ns = Ns Ar …
164*3ff01b23SMartin Matuskaand controls which features are enabled when using
165*3ff01b23SMartin Matuska.Nm zpool Cm upgrade .
166*3ff01b23SMartin Matuska.Nm zpool Cm status
167*3ff01b23SMartin Matuskawill not show a warning about disabled features which are not part
168*3ff01b23SMartin Matuskaof the requested feature set.
169*3ff01b23SMartin Matuska.Pp
170*3ff01b23SMartin MatuskaThe special value
171*3ff01b23SMartin Matuska.Sy legacy
172*3ff01b23SMartin Matuskaprevents any features from being enabled, either via
173*3ff01b23SMartin Matuska.Nm zpool Cm upgrade
174*3ff01b23SMartin Matuskaor
175*3ff01b23SMartin Matuska.Nm zpool Cm set Sy feature Ns @ Ns Ar feature-name Ns = Ns Sy enabled .
176*3ff01b23SMartin MatuskaThis setting also prevents pools from being upgraded to newer on-disk versions.
177*3ff01b23SMartin MatuskaThis is a safety measure to prevent new features from being
178*3ff01b23SMartin Matuskaaccidentally enabled, breaking compatibility.
179*3ff01b23SMartin Matuska.Pp
180*3ff01b23SMartin MatuskaBy convention, compatibility files in
181*3ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d
182*3ff01b23SMartin Matuskaare provided by the distribution, and include feature sets
183*3ff01b23SMartin Matuskasupported by important versions of popular distributions, and feature
184*3ff01b23SMartin Matuskasets commonly supported at the start of each year.
185*3ff01b23SMartin MatuskaCompatibility files in
186*3ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d ,
187*3ff01b23SMartin Matuskaif present, will take precedence over files with the same name in
188*3ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d .
189*3ff01b23SMartin Matuska.Pp
190*3ff01b23SMartin MatuskaIf an unrecognized feature is found in these files, an error message will
191*3ff01b23SMartin Matuskabe shown.
192*3ff01b23SMartin MatuskaIf the unrecognized feature is in a file in
193*3ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d ,
194*3ff01b23SMartin Matuskathis is treated as an error and processing will stop.
195*3ff01b23SMartin MatuskaIf the unrecognized feature is under
196*3ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d ,
197*3ff01b23SMartin Matuskathis is treated as a warning and processing will continue.
198*3ff01b23SMartin MatuskaThis difference is to allow distributions to include features
199*3ff01b23SMartin Matuskawhich might not be recognized by the currently-installed binaries.
200*3ff01b23SMartin Matuska.Pp
201*3ff01b23SMartin MatuskaCompatibility files may include comments:
202*3ff01b23SMartin Matuskaany text from
203*3ff01b23SMartin Matuska.Sq #
204*3ff01b23SMartin Matuskato the end of the line is ignored.
205*3ff01b23SMartin Matuska.Pp
206*3ff01b23SMartin Matuska.Sy Example :
207*3ff01b23SMartin Matuska.Bd -literal -compact -offset 4n
208*3ff01b23SMartin Matuska.No example# Nm cat Pa /usr/share/zfs/compatibility.d/grub2
209*3ff01b23SMartin Matuska# Features which are supported by GRUB2
210*3ff01b23SMartin Matuskaasync_destroy
211*3ff01b23SMartin Matuskabookmarks
212*3ff01b23SMartin Matuskaembedded_data
213*3ff01b23SMartin Matuskaempty_bpobj
214*3ff01b23SMartin Matuskaenabled_txg
215*3ff01b23SMartin Matuskaextensible_dataset
216*3ff01b23SMartin Matuskafilesystem_limits
217*3ff01b23SMartin Matuskahole_birth
218*3ff01b23SMartin Matuskalarge_blocks
219*3ff01b23SMartin Matuskalz4_compress
220*3ff01b23SMartin Matuskaspacemap_histogram
221*3ff01b23SMartin Matuska
222*3ff01b23SMartin Matuska.No example# Nm zpool Cm create Fl o Sy compatibility Ns = Ns Ar grub2 Ar bootpool Ar vdev
223*3ff01b23SMartin Matuska.Ed
224*3ff01b23SMartin Matuska.Pp
225*3ff01b23SMartin MatuskaSee
226*3ff01b23SMartin Matuska.Xr zpool-create 8
227*3ff01b23SMartin Matuskaand
228*3ff01b23SMartin Matuska.Xr zpool-upgrade 8
229*3ff01b23SMartin Matuskafor more information on how these commands are affected by feature sets.
230*3ff01b23SMartin Matuska.
231*3ff01b23SMartin Matuska.de feature
232*3ff01b23SMartin Matuska.It Sy \\$2
233*3ff01b23SMartin Matuska.Bl -tag -compact -width "READ-ONLY COMPATIBLE"
234*3ff01b23SMartin Matuska.It GUID
235*3ff01b23SMartin Matuska.Sy \\$1:\\$2
236*3ff01b23SMartin Matuska.if !"\\$4"" \{\
237*3ff01b23SMartin Matuska.It DEPENDENCIES
238*3ff01b23SMartin Matuska\fB\\$4\fP\c
239*3ff01b23SMartin Matuska.if !"\\$5"" , \fB\\$5\fP\c
240*3ff01b23SMartin Matuska.if !"\\$6"" , \fB\\$6\fP\c
241*3ff01b23SMartin Matuska.if !"\\$7"" , \fB\\$7\fP\c
242*3ff01b23SMartin Matuska.if !"\\$8"" , \fB\\$8\fP\c
243*3ff01b23SMartin Matuska.if !"\\$9"" , \fB\\$9\fP\c
244*3ff01b23SMartin Matuska.\}
245*3ff01b23SMartin Matuska.It READ-ONLY COMPATIBLE
246*3ff01b23SMartin Matuska\\$3
247*3ff01b23SMartin Matuska.El
248*3ff01b23SMartin Matuska.Pp
249*3ff01b23SMartin Matuska..
250*3ff01b23SMartin Matuska.
251*3ff01b23SMartin Matuska.ds instant-never \
252*3ff01b23SMartin Matuska.No This feature becomes Sy active No as soon as it is enabled \
253*3ff01b23SMartin Matuskaand will never return to being Sy enabled .
254*3ff01b23SMartin Matuska.
255*3ff01b23SMartin Matuska.ds remount-upgrade \
256*3ff01b23SMartin Matuska.No Each filesystem will be upgraded automatically when remounted, \
257*3ff01b23SMartin Matuskaor when a new file is created under that filesystem. \
258*3ff01b23SMartin MatuskaThe upgrade can also be triggered on filesystems via \
259*3ff01b23SMartin MatuskaNm zfs Cm set Sy version Ns = Ns Sy current Ar fs . \
260*3ff01b23SMartin MatuskaNo The upgrade process runs in the background and may take a while to complete \
261*3ff01b23SMartin Matuskafor filesystems containing large amounts of files.
262*3ff01b23SMartin Matuska.
263*3ff01b23SMartin Matuska.de checksum-spiel
264*3ff01b23SMartin MatuskaWhen the
265*3ff01b23SMartin Matuska.Sy \\$1
266*3ff01b23SMartin Matuskafeature is set to
267*3ff01b23SMartin Matuska.Sy enabled ,
268*3ff01b23SMartin Matuskathe administrator can turn on the
269*3ff01b23SMartin Matuska.Sy \\$1
270*3ff01b23SMartin Matuskachecksum on any dataset using
271*3ff01b23SMartin Matuska.Nm zfs Cm set Sy checksum Ns = Ns Sy \\$1 Ar dset
272*3ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc .
273*3ff01b23SMartin MatuskaThis feature becomes
274*3ff01b23SMartin Matuska.Sy active
275*3ff01b23SMartin Matuskaonce a
276*3ff01b23SMartin Matuska.Sy checksum
277*3ff01b23SMartin Matuskaproperty has been set to
278*3ff01b23SMartin Matuska.Sy \\$1 ,
279*3ff01b23SMartin Matuskaand will return to being
280*3ff01b23SMartin Matuska.Sy enabled
281*3ff01b23SMartin Matuskaonce all filesystems that have ever had their checksum set to
282*3ff01b23SMartin Matuska.Sy \\$1
283*3ff01b23SMartin Matuskaare destroyed.
284*3ff01b23SMartin Matuska..
285*3ff01b23SMartin Matuska.
286*3ff01b23SMartin Matuska.Sh FEATURES
287*3ff01b23SMartin MatuskaThe following features are supported on this system:
288*3ff01b23SMartin Matuska.Bl -tag -width Ds
289*3ff01b23SMartin Matuska.feature org.zfsonlinux allocation_classes yes
290*3ff01b23SMartin MatuskaThis feature enables support for separate allocation classes.
291*3ff01b23SMartin Matuska.Pp
292*3ff01b23SMartin MatuskaThis feature becomes
293*3ff01b23SMartin Matuska.Sy active
294*3ff01b23SMartin Matuskawhen a dedicated allocation class vdev (dedup or special) is created with the
295*3ff01b23SMartin Matuska.Nm zpool Cm create No or Nm zpool Cm add No commands .
296*3ff01b23SMartin MatuskaWith device removal, it can be returned to the
297*3ff01b23SMartin Matuska.Sy enabled
298*3ff01b23SMartin Matuskastate if all the dedicated allocation class vdevs are removed.
299*3ff01b23SMartin Matuska.
300*3ff01b23SMartin Matuska.feature com.delphix async_destroy yes
301*3ff01b23SMartin MatuskaDestroying a file system requires traversing all of its data in order to
302*3ff01b23SMartin Matuskareturn its used space to the pool.
303*3ff01b23SMartin MatuskaWithout
304*3ff01b23SMartin Matuska.Sy async_destroy ,
305*3ff01b23SMartin Matuskathe file system is not fully removed until all space has been reclaimed.
306*3ff01b23SMartin MatuskaIf the destroy operation is interrupted by a reboot or power outage,
307*3ff01b23SMartin Matuskathe next attempt to open the pool will need to complete the destroy
308*3ff01b23SMartin Matuskaoperation synchronously.
309*3ff01b23SMartin Matuska.Pp
310*3ff01b23SMartin MatuskaWhen
311*3ff01b23SMartin Matuska.Sy async_destroy
312*3ff01b23SMartin Matuskais enabled, the file system's data will be reclaimed by a background process,
313*3ff01b23SMartin Matuskaallowing the destroy operation to complete
314*3ff01b23SMartin Matuskawithout traversing the entire file system.
315*3ff01b23SMartin MatuskaThe background process is able to resume
316*3ff01b23SMartin Matuskainterrupted destroys after the pool has been opened, eliminating the need
317*3ff01b23SMartin Matuskato finish interrupted destroys as part of the open operation.
318*3ff01b23SMartin MatuskaThe amount of space remaining to be reclaimed by the background process
319*3ff01b23SMartin Matuskais available through the
320*3ff01b23SMartin Matuska.Sy freeing
321*3ff01b23SMartin Matuskaproperty.
322*3ff01b23SMartin Matuska.Pp
323*3ff01b23SMartin MatuskaThis feature is only
324*3ff01b23SMartin Matuska.Sy active
325*3ff01b23SMartin Matuskawhile
326*3ff01b23SMartin Matuska.Sy freeing
327*3ff01b23SMartin Matuskais non-zero.
328*3ff01b23SMartin Matuska.
329*3ff01b23SMartin Matuska.feature com.delphix bookmarks yes extensible_dataset
330*3ff01b23SMartin MatuskaThis feature enables use of the
331*3ff01b23SMartin Matuska.Nm zfs Cm bookmark
332*3ff01b23SMartin Matuskacommand.
333*3ff01b23SMartin Matuska.Pp
334*3ff01b23SMartin MatuskaThis feature is
335*3ff01b23SMartin Matuska.Sy active
336*3ff01b23SMartin Matuskawhile any bookmarks exist in the pool.
337*3ff01b23SMartin MatuskaAll bookmarks in the pool can be listed by running
338*3ff01b23SMartin Matuska.Nm zfs Cm list Fl t Sy bookmark Fl r Ar poolname .
339*3ff01b23SMartin Matuska.
340*3ff01b23SMartin Matuska.feature com.datto bookmark_v2 no bookmark extensible_dataset
341*3ff01b23SMartin MatuskaThis feature enables the creation and management of larger bookmarks which are
342*3ff01b23SMartin Matuskaneeded for other features in ZFS.
343*3ff01b23SMartin Matuska.Pp
344*3ff01b23SMartin MatuskaThis feature becomes
345*3ff01b23SMartin Matuska.Sy active
346*3ff01b23SMartin Matuskawhen a v2 bookmark is created and will be returned to the
347*3ff01b23SMartin Matuska.Sy enabled
348*3ff01b23SMartin Matuskastate when all v2 bookmarks are destroyed.
349*3ff01b23SMartin Matuska.
350*3ff01b23SMartin Matuska.feature com.delphix bookmark_written no bookmark extensible_dataset bookmark_v2
351*3ff01b23SMartin MatuskaThis feature enables additional bookmark accounting fields, enabling the
352*3ff01b23SMartin Matuska.Sy written Ns # Ns Ar bookmark
353*3ff01b23SMartin Matuskaproperty (space written since a bookmark) and estimates of
354*3ff01b23SMartin Matuskasend stream sizes for incrementals from bookmarks.
355*3ff01b23SMartin Matuska.Pp
356*3ff01b23SMartin MatuskaThis feature becomes
357*3ff01b23SMartin Matuska.Sy active
358*3ff01b23SMartin Matuskawhen a bookmark is created and will be
359*3ff01b23SMartin Matuskareturned to the
360*3ff01b23SMartin Matuska.Sy enabled
361*3ff01b23SMartin Matuskastate when all bookmarks with these fields are destroyed.
362*3ff01b23SMartin Matuska.
363*3ff01b23SMartin Matuska.feature org.openzfs device_rebuild yes
364*3ff01b23SMartin MatuskaThis feature enables the ability for the
365*3ff01b23SMartin Matuska.Nm zpool Cm attach
366*3ff01b23SMartin Matuskaand
367*3ff01b23SMartin Matuska.Nm zpool Cm replace
368*3ff01b23SMartin Matuskacommands to perform sequential reconstruction
369*3ff01b23SMartin Matuska(instead of healing reconstruction) when resilvering.
370*3ff01b23SMartin Matuska.Pp
371*3ff01b23SMartin MatuskaSequential reconstruction resilvers a device in LBA order without immediately
372*3ff01b23SMartin Matuskaverifying the checksums.
373*3ff01b23SMartin MatuskaOnce complete, a scrub is started, which then verifies the checksums.
374*3ff01b23SMartin MatuskaThis approach allows full redundancy to be restored to the pool
375*3ff01b23SMartin Matuskain the minimum amount of time.
376*3ff01b23SMartin MatuskaThis two-phase approach will take longer than a healing resilver
377*3ff01b23SMartin Matuskawhen the time to verify the checksums is included.
378*3ff01b23SMartin MatuskaHowever, unless there is additional pool damage,
379*3ff01b23SMartin Matuskano checksum errors should be reported by the scrub.
380*3ff01b23SMartin MatuskaThis feature is incompatible with raidz configurations.
381*3ff01b23SMartin Matuska.
382*3ff01b23SMartin MatuskaThis feature becomes
383*3ff01b23SMartin Matuska.Sy active
384*3ff01b23SMartin Matuskawhile a sequential resilver is in progress, and returns to
385*3ff01b23SMartin Matuska.Sy enabled
386*3ff01b23SMartin Matuskawhen the resilver completes.
387*3ff01b23SMartin Matuska.
388*3ff01b23SMartin Matuska.feature com.delphix device_removal no
389*3ff01b23SMartin MatuskaThis feature enables the
390*3ff01b23SMartin Matuska.Nm zpool Cm remove
391*3ff01b23SMartin Matuskacommand to remove top-level vdevs,
392*3ff01b23SMartin Matuskaevacuating them to reduce the total size of the pool.
393*3ff01b23SMartin Matuska.Pp
394*3ff01b23SMartin MatuskaThis feature becomes
395*3ff01b23SMartin Matuska.Sy active
396*3ff01b23SMartin Matuskawhen the
397*3ff01b23SMartin Matuska.Nm zpool Cm remove
398*3ff01b23SMartin Matuskacommand is used
399*3ff01b23SMartin Matuskaon a top-level vdev, and will never return to being
400*3ff01b23SMartin Matuska.Sy enabled .
401*3ff01b23SMartin Matuska.
402*3ff01b23SMartin Matuska.feature org.openzfs draid no
403*3ff01b23SMartin MatuskaThis feature enables use of the
404*3ff01b23SMartin Matuska.Sy draid
405*3ff01b23SMartin Matuskavdev type.
406*3ff01b23SMartin MatuskadRAID is a variant of raidz which provides integrated distributed
407*3ff01b23SMartin Matuskahot spares that allow faster resilvering while retaining the benefits of raidz.
408*3ff01b23SMartin MatuskaData, parity, and spare space are organized in redundancy groups
409*3ff01b23SMartin Matuskaand distributed evenly over all of the devices.
410*3ff01b23SMartin Matuska.Pp
411*3ff01b23SMartin MatuskaThis feature becomes
412*3ff01b23SMartin Matuska.Sy active
413*3ff01b23SMartin Matuskawhen creating a pool which uses the
414*3ff01b23SMartin Matuska.Sy draid
415*3ff01b23SMartin Matuskavdev type, or when adding a new
416*3ff01b23SMartin Matuska.Sy draid
417*3ff01b23SMartin Matuskavdev to an existing pool.
418*3ff01b23SMartin Matuska.
419*3ff01b23SMartin Matuska.feature org.illumos edonr no extensible_dataset
420*3ff01b23SMartin MatuskaThis feature enables the use of the Edon-R hash algorithm for checksum,
421*3ff01b23SMartin Matuskaincluding for nopwrite (if compression is also enabled, an overwrite of
422*3ff01b23SMartin Matuskaa block whose checksum matches the data being written will be ignored).
423*3ff01b23SMartin MatuskaIn an abundance of caution, Edon-R requires verification when used with
424*3ff01b23SMartin Matuskadedup:
425*3ff01b23SMartin Matuska.Nm zfs Cm set Sy dedup Ns = Ns Sy edonr , Ns Sy verify
426*3ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc .
427*3ff01b23SMartin Matuska.Pp
428*3ff01b23SMartin MatuskaEdon-R is a very high-performance hash algorithm that was part
429*3ff01b23SMartin Matuskaof the NIST SHA-3 competition.
430*3ff01b23SMartin MatuskaIt provides extremely high hash performance (over 350% faster than SHA-256),
431*3ff01b23SMartin Matuskabut was not selected because of its unsuitability
432*3ff01b23SMartin Matuskaas a general purpose secure hash algorithm.
433*3ff01b23SMartin MatuskaThis implementation utilizes the new salted checksumming functionality
434*3ff01b23SMartin Matuskain ZFS, which means that the checksum is pre-seeded with a secret
435*3ff01b23SMartin Matuska256-bit random key (stored on the pool) before being fed the data block
436*3ff01b23SMartin Matuskato be checksummed.
437*3ff01b23SMartin MatuskaThus the produced checksums are unique to a given pool,
438*3ff01b23SMartin Matuskapreventing hash collision attacks on systems with dedup.
439*3ff01b23SMartin Matuska.Pp
440*3ff01b23SMartin Matuska.checksum-spiel edonr
441*3ff01b23SMartin Matuska.Pp
442*3ff01b23SMartin Matuska.Fx does not support the Sy edonr No feature.
443*3ff01b23SMartin Matuska.
444*3ff01b23SMartin Matuska.feature com.delphix embedded_data no
445*3ff01b23SMartin MatuskaThis feature improves the performance and compression ratio of
446*3ff01b23SMartin Matuskahighly-compressible blocks.
447*3ff01b23SMartin MatuskaBlocks whose contents can compress to 112 bytes
448*3ff01b23SMartin Matuskaor smaller can take advantage of this feature.
449*3ff01b23SMartin Matuska.Pp
450*3ff01b23SMartin MatuskaWhen this feature is enabled, the contents of highly-compressible blocks are
451*3ff01b23SMartin Matuskastored in the block "pointer" itself (a misnomer in this case, as it contains
452*3ff01b23SMartin Matuskathe compressed data, rather than a pointer to its location on disk).
453*3ff01b23SMartin MatuskaThus the space of the block (one sector, typically 512B or 4kB) is saved,
454*3ff01b23SMartin Matuskaand no additional I/O is needed to read and write the data block.
455*3ff01b23SMartin Matuska.
456*3ff01b23SMartin Matuska\*[instant-never]
457*3ff01b23SMartin Matuska.
458*3ff01b23SMartin Matuska.feature com.delphix empty_bpobj yes
459*3ff01b23SMartin MatuskaThis feature increases the performance of creating and using a large
460*3ff01b23SMartin Matuskanumber of snapshots of a single filesystem or volume, and also reduces
461*3ff01b23SMartin Matuskathe disk space required.
462*3ff01b23SMartin Matuska.Pp
463*3ff01b23SMartin MatuskaWhen there are many snapshots, each snapshot uses many Block Pointer
464*3ff01b23SMartin MatuskaObjects (bpobjs) to track blocks associated with that snapshot.
465*3ff01b23SMartin MatuskaHowever, in common use cases, most of these bpobjs are empty.
466*3ff01b23SMartin MatuskaThis feature allows us to create each bpobj on-demand,
467*3ff01b23SMartin Matuskathus eliminating the empty bpobjs.
468*3ff01b23SMartin Matuska.Pp
469*3ff01b23SMartin MatuskaThis feature is
470*3ff01b23SMartin Matuska.Sy active
471*3ff01b23SMartin Matuskawhile there are any filesystems, volumes,
472*3ff01b23SMartin Matuskaor snapshots which were created after enabling this feature.
473*3ff01b23SMartin Matuska.
474*3ff01b23SMartin Matuska.feature com.delphix enabled_txg yes
475*3ff01b23SMartin MatuskaOnce this feature is enabled, ZFS records the transaction group number
476*3ff01b23SMartin Matuskain which new features are enabled.
477*3ff01b23SMartin MatuskaThis has no user-visible impact, but other features may depend on this feature.
478*3ff01b23SMartin Matuska.Pp
479*3ff01b23SMartin MatuskaThis feature becomes
480*3ff01b23SMartin Matuska.Sy active
481*3ff01b23SMartin Matuska as soon as it is enabled and will
482*3ff01b23SMartin Matuskanever return to being
483*3ff01b23SMartin Matuska.Sy enabled .
484*3ff01b23SMartin Matuska.
485*3ff01b23SMartin Matuska.feature com.datto encryption no bookmark_v2 extensible_dataset
486*3ff01b23SMartin MatuskaThis feature enables the creation and management of natively encrypted datasets.
487*3ff01b23SMartin Matuska.Pp
488*3ff01b23SMartin MatuskaThis feature becomes
489*3ff01b23SMartin Matuska.Sy active
490*3ff01b23SMartin Matuskawhen an encrypted dataset is created and will be returned to the
491*3ff01b23SMartin Matuska.Sy enabled
492*3ff01b23SMartin Matuskastate when all datasets that use this feature are destroyed.
493*3ff01b23SMartin Matuska.
494*3ff01b23SMartin Matuska.feature com.delphix extensible_dataset no
495*3ff01b23SMartin MatuskaThis feature allows more flexible use of internal ZFS data structures,
496*3ff01b23SMartin Matuskaand exists for other features to depend on.
497*3ff01b23SMartin Matuska.Pp
498*3ff01b23SMartin MatuskaThis feature will be
499*3ff01b23SMartin Matuska.Sy active
500*3ff01b23SMartin Matuskawhen the first dependent feature uses it, and will be returned to the
501*3ff01b23SMartin Matuska.Sy enabled
502*3ff01b23SMartin Matuskastate when all datasets that use this feature are destroyed.
503*3ff01b23SMartin Matuska.
504*3ff01b23SMartin Matuska.feature com.joyent filesystem_limits yes extensible_dataset
505*3ff01b23SMartin MatuskaThis feature enables filesystem and snapshot limits.
506*3ff01b23SMartin MatuskaThese limits can be used to control how many filesystems and/or snapshots
507*3ff01b23SMartin Matuskacan be created at the point in the tree on which the limits are set.
508*3ff01b23SMartin Matuska.Pp
509*3ff01b23SMartin MatuskaThis feature is
510*3ff01b23SMartin Matuska.Sy active
511*3ff01b23SMartin Matuskaonce either of the limit properties has been set on a dataset.
512*3ff01b23SMartin MatuskaOnce activated the feature is never deactivated.
513*3ff01b23SMartin Matuska.
514*3ff01b23SMartin Matuska.feature com.delphix hole_birth no enabled_txg
515*3ff01b23SMartin MatuskaThis feature has/had bugs, the result of which is that, if you do a
516*3ff01b23SMartin Matuska.Nm zfs Cm send Fl i
517*3ff01b23SMartin Matuska.Pq or Fl R , No since it uses Fl i
518*3ff01b23SMartin Matuskafrom an affected dataset, the receiving party will not see any checksum
519*3ff01b23SMartin Matuskaor other errors, but the resulting destination snapshot
520*3ff01b23SMartin Matuskawill not match the source.
521*3ff01b23SMartin MatuskaIts use by
522*3ff01b23SMartin Matuska.Nm zfs Cm send Fl i
523*3ff01b23SMartin Matuskahas been disabled by default
524*3ff01b23SMartin Matuska.Pq see Sy send_holes_without_birth_time No in Xr zfs 4 .
525*3ff01b23SMartin Matuska.Pp
526*3ff01b23SMartin MatuskaThis feature improves performance of incremental sends
527*3ff01b23SMartin Matuska.Pq Nm zfs Cm send Fl i
528*3ff01b23SMartin Matuskaand receives for objects with many holes.
529*3ff01b23SMartin MatuskaThe most common case of hole-filled objects is zvols.
530*3ff01b23SMartin Matuska.Pp
531*3ff01b23SMartin MatuskaAn incremental send stream from snapshot
532*3ff01b23SMartin Matuska.Sy A No to snapshot Sy B
533*3ff01b23SMartin Matuskacontains information about every block that changed between
534*3ff01b23SMartin Matuska.Sy A No and Sy B .
535*3ff01b23SMartin MatuskaBlocks which did not change between those snapshots can be
536*3ff01b23SMartin Matuskaidentified and omitted from the stream using a piece of metadata called
537*3ff01b23SMartin Matuskathe "block birth time", but birth times are not recorded for holes
538*3ff01b23SMartin Matuska(blocks filled only with zeroes).
539*3ff01b23SMartin MatuskaSince holes created after
540*3ff01b23SMartin Matuska.Sy A No cannot be distinguished from holes created before Sy A ,
541*3ff01b23SMartin Matuskainformation about every hole in the entire filesystem or zvol
542*3ff01b23SMartin Matuskais included in the send stream.
543*3ff01b23SMartin Matuska.Pp
544*3ff01b23SMartin MatuskaFor workloads where holes are rare this is not a problem.
545*3ff01b23SMartin MatuskaHowever, when incrementally replicating filesystems or zvols with many holes
546*3ff01b23SMartin Matuska(for example a zvol formatted with another filesystem) a lot of time will
547*3ff01b23SMartin Matuskabe spent sending and receiving unnecessary information about holes that
548*3ff01b23SMartin Matuskaalready exist on the receiving side.
549*3ff01b23SMartin Matuska.Pp
550*3ff01b23SMartin MatuskaOnce the
551*3ff01b23SMartin Matuska.Sy hole_birth
552*3ff01b23SMartin Matuskafeature has been enabled the block birth times
553*3ff01b23SMartin Matuskaof all new holes will be recorded.
554*3ff01b23SMartin MatuskaIncremental sends between snapshots created after this feature is enabled
555*3ff01b23SMartin Matuskawill use this new metadata to avoid sending information about holes that
556*3ff01b23SMartin Matuskaalready exist on the receiving side.
557*3ff01b23SMartin Matuska.Pp
558*3ff01b23SMartin Matuska\*[instant-never]
559*3ff01b23SMartin Matuska.
560*3ff01b23SMartin Matuska.feature org.open-zfs large_blocks no extensible_dataset
561*3ff01b23SMartin MatuskaThis feature allows the record size on a dataset to be set larger than 128kB.
562*3ff01b23SMartin Matuska.Pp
563*3ff01b23SMartin MatuskaThis feature becomes
564*3ff01b23SMartin Matuska.Sy active
565*3ff01b23SMartin Matuskaonce a dataset contains a file with a block size larger than 128kB,
566*3ff01b23SMartin Matuskaand will return to being
567*3ff01b23SMartin Matuska.Sy enabled
568*3ff01b23SMartin Matuskaonce all filesystems that have ever had their recordsize larger than 128kB
569*3ff01b23SMartin Matuskaare destroyed.
570*3ff01b23SMartin Matuska.
571*3ff01b23SMartin Matuska.feature org.zfsonlinux large_dnode no extensible_dataset
572*3ff01b23SMartin MatuskaThis feature allows the size of dnodes in a dataset to be set larger than 512B.
573*3ff01b23SMartin Matuska.
574*3ff01b23SMartin MatuskaThis feature becomes
575*3ff01b23SMartin Matuska.Sy active
576*3ff01b23SMartin Matuskaonce a dataset contains an object with a dnode larger than 512B,
577*3ff01b23SMartin Matuskawhich occurs as a result of setting the
578*3ff01b23SMartin Matuska.Sy dnodesize
579*3ff01b23SMartin Matuskadataset property to a value other than
580*3ff01b23SMartin Matuska.Sy legacy .
581*3ff01b23SMartin MatuskaThe feature will return to being
582*3ff01b23SMartin Matuska.Sy enabled
583*3ff01b23SMartin Matuskaonce all filesystems that have ever contained a dnode larger than 512B
584*3ff01b23SMartin Matuskaare destroyed.
585*3ff01b23SMartin MatuskaLarge dnodes allow more data to be stored in the bonus buffer,
586*3ff01b23SMartin Matuskathus potentially improving performance by avoiding the use of spill blocks.
587*3ff01b23SMartin Matuska.
588*3ff01b23SMartin Matuska.feature com.delphix livelist yes
589*3ff01b23SMartin MatuskaThis feature allows clones to be deleted faster than the traditional method
590*3ff01b23SMartin Matuskawhen a large number of random/sparse writes have been made to the clone.
591*3ff01b23SMartin MatuskaAll blocks allocated and freed after a clone is created are tracked by the
592*3ff01b23SMartin Matuskathe clone's livelist which is referenced during the deletion of the clone.
593*3ff01b23SMartin MatuskaThe feature is activated when a clone is created and remains
594*3ff01b23SMartin Matuska.Sy active
595*3ff01b23SMartin Matuskauntil all clones have been destroyed.
596*3ff01b23SMartin Matuska.
597*3ff01b23SMartin Matuska.feature com.delphix log_spacemap yes com.delphix:spacemap_v2
598*3ff01b23SMartin MatuskaThis feature improves performance for heavily-fragmented pools,
599*3ff01b23SMartin Matuskaespecially when workloads are heavy in random-writes.
600*3ff01b23SMartin MatuskaIt does so by logging all the metaslab changes on a single spacemap every TXG
601*3ff01b23SMartin Matuskainstead of scattering multiple writes to all the metaslab spacemaps.
602*3ff01b23SMartin Matuska.Pp
603*3ff01b23SMartin Matuska\*[instant-never]
604*3ff01b23SMartin Matuska.
605*3ff01b23SMartin Matuska.feature org.illumos lz4_compress no
606*3ff01b23SMartin Matuska.Sy lz4
607*3ff01b23SMartin Matuskais a high-performance real-time compression algorithm that
608*3ff01b23SMartin Matuskafeatures significantly faster compression and decompression as well as a
609*3ff01b23SMartin Matuskahigher compression ratio than the older
610*3ff01b23SMartin Matuska.Sy lzjb
611*3ff01b23SMartin Matuskacompression.
612*3ff01b23SMartin MatuskaTypically,
613*3ff01b23SMartin Matuska.Sy lz4
614*3ff01b23SMartin Matuskacompression is approximately 50% faster on compressible data and 200% faster
615*3ff01b23SMartin Matuskaon incompressible data than
616*3ff01b23SMartin Matuska.Sy lzjb .
617*3ff01b23SMartin MatuskaIt is also approximately 80% faster on decompression,
618*3ff01b23SMartin Matuskawhile giving approximately a 10% better compression ratio.
619*3ff01b23SMartin Matuska.Pp
620*3ff01b23SMartin MatuskaWhen the
621*3ff01b23SMartin Matuska.Sy lz4_compress
622*3ff01b23SMartin Matuskafeature is set to
623*3ff01b23SMartin Matuska.Sy enabled ,
624*3ff01b23SMartin Matuskathe administrator can turn on
625*3ff01b23SMartin Matuska.Sy lz4
626*3ff01b23SMartin Matuskacompression on any dataset on the pool using the
627*3ff01b23SMartin Matuska.Xr zfs-set 8
628*3ff01b23SMartin Matuskacommand.
629*3ff01b23SMartin MatuskaAll newly written metadata will be compressed with the
630*3ff01b23SMartin Matuska.Sy lz4
631*3ff01b23SMartin Matuskaalgorithm.
632*3ff01b23SMartin Matuska.Pp
633*3ff01b23SMartin Matuska\*[instant-never]
634*3ff01b23SMartin Matuska.
635*3ff01b23SMartin Matuska.feature com.joyent multi_vdev_crash_dump no
636*3ff01b23SMartin MatuskaThis feature allows a dump device to be configured with a pool comprised
637*3ff01b23SMartin Matuskaof multiple vdevs.
638*3ff01b23SMartin MatuskaThose vdevs may be arranged in any mirrored or raidz configuration.
639*3ff01b23SMartin Matuska.Pp
640*3ff01b23SMartin MatuskaWhen the
641*3ff01b23SMartin Matuska.Sy multi_vdev_crash_dump
642*3ff01b23SMartin Matuskafeature is set to
643*3ff01b23SMartin Matuska.Sy enabled ,
644*3ff01b23SMartin Matuskathe administrator can use
645*3ff01b23SMartin Matuska.Xr dumpadm 1M
646*3ff01b23SMartin Matuskato configure a dump device on a pool comprised of multiple vdevs.
647*3ff01b23SMartin Matuska.Pp
648*3ff01b23SMartin MatuskaUnder
649*3ff01b23SMartin Matuska.Fx
650*3ff01b23SMartin Matuskaand Linux this feature is unused, but registered for compatibility.
651*3ff01b23SMartin MatuskaNew pools created on these systems will have the feature
652*3ff01b23SMartin Matuska.Sy enabled
653*3ff01b23SMartin Matuskabut will never transition to
654*3ff01b23SMartin Matuska.Sy active ,
655*3ff01b23SMartin Matuskaas this functionality is not required for crash dump support.
656*3ff01b23SMartin MatuskaExisting pools where this feature is
657*3ff01b23SMartin Matuska.Sy active
658*3ff01b23SMartin Matuskacan be imported.
659*3ff01b23SMartin Matuska.
660*3ff01b23SMartin Matuska.feature com.delphix obsolete_counts yes device_removal
661*3ff01b23SMartin MatuskaThis feature is an enhancement of
662*3ff01b23SMartin Matuska.Sy device_removal ,
663*3ff01b23SMartin Matuskawhich will over time reduce the memory used to track removed devices.
664*3ff01b23SMartin MatuskaWhen indirect blocks are freed or remapped,
665*3ff01b23SMartin Matuskawe note that their part of the indirect mapping is "obsolete" – no longer needed.
666*3ff01b23SMartin Matuska.Pp
667*3ff01b23SMartin MatuskaThis feature becomes
668*3ff01b23SMartin Matuska.Sy active
669*3ff01b23SMartin Matuskawhen the
670*3ff01b23SMartin Matuska.Nm zpool Cm remove
671*3ff01b23SMartin Matuskacommand is used on a top-level vdev, and will never return to being
672*3ff01b23SMartin Matuska.Sy enabled .
673*3ff01b23SMartin Matuska.
674*3ff01b23SMartin Matuska.feature org.zfsonlinux project_quota yes extensible_dataset
675*3ff01b23SMartin MatuskaThis feature allows administrators to account the spaces and objects usage
676*3ff01b23SMartin Matuskainformation against the project identifier (ID).
677*3ff01b23SMartin Matuska.Pp
678*3ff01b23SMartin MatuskaThe project ID is an object-based attribute.
679*3ff01b23SMartin MatuskaWhen upgrading an existing filesystem,
680*3ff01b23SMartin Matuskaobjects without a project ID will be assigned a zero project ID.
681*3ff01b23SMartin MatuskaWhen this feature is enabled, newly created objects inherit
682*3ff01b23SMartin Matuskatheir parent directories' project ID if the parent's inherit flag is set
683*3ff01b23SMartin Matuska.Pq via Nm chattr Sy [+-]P No or Nm zfs Cm project Fl s Ns | Ns Fl C .
684*3ff01b23SMartin MatuskaOtherwise, the new object's project ID will be zero.
685*3ff01b23SMartin MatuskaAn object's project ID can be changed at any time by the owner
686*3ff01b23SMartin Matuska(or privileged user) via
687*3ff01b23SMartin Matuska.Nm chattr Fl p Ar prjid
688*3ff01b23SMartin Matuskaor
689*3ff01b23SMartin Matuska.Nm zfs Cm project Fl p Ar prjid .
690*3ff01b23SMartin Matuska.Pp
691*3ff01b23SMartin MatuskaThis feature will become
692*3ff01b23SMartin Matuska.Sy active
693*3ff01b23SMartin Matuskaas soon as it is enabled and will never return to being
694*3ff01b23SMartin Matuska.Sy disabled .
695*3ff01b23SMartin Matuska\*[remount-upgrade]
696*3ff01b23SMartin Matuska.
697*3ff01b23SMartin Matuska.feature com.delphix redaction_bookmarks no bookmarks extensible_dataset
698*3ff01b23SMartin MatuskaThis feature enables the use of redacted
699*3ff01b23SMartin Matuska.Nm zfs Cm send Ns s ,
700*3ff01b23SMartin Matuskawhich create redaction bookmarks storing the list of blocks
701*3ff01b23SMartin Matuskaredacted by the send that created them.
702*3ff01b23SMartin MatuskaFor more information about redacted sends, see
703*3ff01b23SMartin Matuska.Xr zfs-send 8 .
704*3ff01b23SMartin Matuska.
705*3ff01b23SMartin Matuska.feature com.delphix redacted_datasets no extensible_dataset
706*3ff01b23SMartin MatuskaThis feature enables the receiving of redacted
707*3ff01b23SMartin Matuska.Nm zfs Cm send Ns
708*3ff01b23SMartin Matuskastreams. which create redacted datasets when received.
709*3ff01b23SMartin MatuskaThese datasets are missing some of their blocks,
710*3ff01b23SMartin Matuskaand so cannot be safely mounted, and their contents cannot be safely read.
711*3ff01b23SMartin MatuskaFor more information about redacted receives, see
712*3ff01b23SMartin Matuska.Xr zfs-send 8 .
713*3ff01b23SMartin Matuska.
714*3ff01b23SMartin Matuska.feature com.datto resilver_defer yes
715*3ff01b23SMartin MatuskaThis feature allows ZFS to postpone new resilvers if an existing one is already
716*3ff01b23SMartin Matuskain progress.
717*3ff01b23SMartin MatuskaWithout this feature, any new resilvers will cause the currently
718*3ff01b23SMartin Matuskarunning one to be immediately restarted from the beginning.
719*3ff01b23SMartin Matuska.Pp
720*3ff01b23SMartin MatuskaThis feature becomes
721*3ff01b23SMartin Matuska.Sy active
722*3ff01b23SMartin Matuskaonce a resilver has been deferred, and returns to being
723*3ff01b23SMartin Matuska.Sy enabled
724*3ff01b23SMartin Matuskawhen the deferred resilver begins.
725*3ff01b23SMartin Matuska.
726*3ff01b23SMartin Matuska.feature org.illumos sha512 no extensible_dataset
727*3ff01b23SMartin MatuskaThis feature enables the use of the SHA-512/256 truncated hash algorithm
728*3ff01b23SMartin Matuska(FIPS 180-4) for checksum and dedup.
729*3ff01b23SMartin MatuskaThe native 64-bit arithmetic of SHA-512 provides an approximate 50%
730*3ff01b23SMartin Matuskaperformance boost over SHA-256 on 64-bit hardware
731*3ff01b23SMartin Matuskaand is thus a good minimum-change replacement candidate
732*3ff01b23SMartin Matuskafor systems where hash performance is important,
733*3ff01b23SMartin Matuskabut these systems cannot for whatever reason utilize the faster
734*3ff01b23SMartin Matuska.Sy skein No and Sy edonr
735*3ff01b23SMartin Matuskaalgorithms.
736*3ff01b23SMartin Matuska.Pp
737*3ff01b23SMartin Matuska.checksum-spiel sha512
738*3ff01b23SMartin Matuska.
739*3ff01b23SMartin Matuska.feature org.illumos skein no extensible_dataset
740*3ff01b23SMartin MatuskaThis feature enables the use of the Skein hash algorithm for checksum and dedup.
741*3ff01b23SMartin MatuskaSkein is a high-performance secure hash algorithm that was a
742*3ff01b23SMartin Matuskafinalist in the NIST SHA-3 competition.
743*3ff01b23SMartin MatuskaIt provides a very high security margin and high performance on 64-bit hardware
744*3ff01b23SMartin Matuska(80% faster than SHA-256).
745*3ff01b23SMartin MatuskaThis implementation also utilizes the new salted checksumming
746*3ff01b23SMartin Matuskafunctionality in ZFS, which means that the checksum is pre-seeded with a
747*3ff01b23SMartin Matuskasecret 256-bit random key (stored on the pool) before being fed the data
748*3ff01b23SMartin Matuskablock to be checksummed.
749*3ff01b23SMartin MatuskaThus the produced checksums are unique to a given pool,
750*3ff01b23SMartin Matuskapreventing hash collision attacks on systems with dedup.
751*3ff01b23SMartin Matuska.Pp
752*3ff01b23SMartin Matuska.checksum-spiel skein
753*3ff01b23SMartin Matuska.
754*3ff01b23SMartin Matuska.feature com.delphix spacemap_histogram yes
755*3ff01b23SMartin MatuskaThis features allows ZFS to maintain more information about how free space
756*3ff01b23SMartin Matuskais organized within the pool.
757*3ff01b23SMartin MatuskaIf this feature is
758*3ff01b23SMartin Matuska.Sy enabled ,
759*3ff01b23SMartin Matuskait will be activated when a new space map object is created, or
760*3ff01b23SMartin Matuskaan existing space map is upgraded to the new format,
761*3ff01b23SMartin Matuskaand never returns back to being
762*3ff01b23SMartin Matuska.Sy enabled .
763*3ff01b23SMartin Matuska.
764*3ff01b23SMartin Matuska.feature com.delphix spacemap_v2 yes
765*3ff01b23SMartin MatuskaThis feature enables the use of the new space map encoding which
766*3ff01b23SMartin Matuskaconsists of two words (instead of one) whenever it is advantageous.
767*3ff01b23SMartin MatuskaThe new encoding allows space maps to represent large regions of
768*3ff01b23SMartin Matuskaspace more efficiently on-disk while also increasing their maximum
769*3ff01b23SMartin Matuskaaddressable offset.
770*3ff01b23SMartin Matuska.Pp
771*3ff01b23SMartin MatuskaThis feature becomes
772*3ff01b23SMartin Matuska.Sy active
773*3ff01b23SMartin Matuskaonce it is
774*3ff01b23SMartin Matuska.Sy enabled ,
775*3ff01b23SMartin Matuskaand never returns back to being
776*3ff01b23SMartin Matuska.Sy enabled .
777*3ff01b23SMartin Matuska.
778*3ff01b23SMartin Matuska.feature org.zfsonlinux userobj_accounting yes extensible_dataset
779*3ff01b23SMartin MatuskaThis feature allows administrators to account the object usage information
780*3ff01b23SMartin Matuskaby user and group.
781*3ff01b23SMartin Matuska.Pp
782*3ff01b23SMartin Matuska\*[instant-never]
783*3ff01b23SMartin Matuska\*[remount-upgrade]
784*3ff01b23SMartin Matuska.
785*3ff01b23SMartin Matuska.feature com.delphix zpool_checkpoint yes
786*3ff01b23SMartin MatuskaThis feature enables the
787*3ff01b23SMartin Matuska.Nm zpool Cm checkpoint
788*3ff01b23SMartin Matuskacommand that can checkpoint the state of the pool
789*3ff01b23SMartin Matuskaat the time it was issued and later rewind back to it or discard it.
790*3ff01b23SMartin Matuska.Pp
791*3ff01b23SMartin MatuskaThis feature becomes
792*3ff01b23SMartin Matuska.Sy active
793*3ff01b23SMartin Matuskawhen the
794*3ff01b23SMartin Matuska.Nm zpool Cm checkpoint
795*3ff01b23SMartin Matuskacommand is used to checkpoint the pool.
796*3ff01b23SMartin MatuskaThe feature will only return back to being
797*3ff01b23SMartin Matuska.Sy enabled
798*3ff01b23SMartin Matuskawhen the pool is rewound or the checkpoint has been discarded.
799*3ff01b23SMartin Matuska.
800*3ff01b23SMartin Matuska.feature org.freebsd zstd_compress no extensible_dataset
801*3ff01b23SMartin Matuska.Sy zstd
802*3ff01b23SMartin Matuskais a high-performance compression algorithm that features a
803*3ff01b23SMartin Matuskacombination of high compression ratios and high speed.
804*3ff01b23SMartin MatuskaCompared to
805*3ff01b23SMartin Matuska.Sy gzip ,
806*3ff01b23SMartin Matuska.Sy zstd
807*3ff01b23SMartin Matuskaoffers slightly better compression at much higher speeds.
808*3ff01b23SMartin MatuskaCompared to
809*3ff01b23SMartin Matuska.Sy lz4 ,
810*3ff01b23SMartin Matuska.Sy zstd
811*3ff01b23SMartin Matuskaoffers much better compression while being only modestly slower.
812*3ff01b23SMartin MatuskaTypically,
813*3ff01b23SMartin Matuska.Sy zstd
814*3ff01b23SMartin Matuskacompression speed ranges from 250 to 500 MB/s per thread
815*3ff01b23SMartin Matuskaand decompression speed is over 1 GB/s per thread.
816*3ff01b23SMartin Matuska.Pp
817*3ff01b23SMartin MatuskaWhen the
818*3ff01b23SMartin Matuska.Sy zstd
819*3ff01b23SMartin Matuskafeature is set to
820*3ff01b23SMartin Matuska.Sy enabled ,
821*3ff01b23SMartin Matuskathe administrator can turn on
822*3ff01b23SMartin Matuska.Sy zstd
823*3ff01b23SMartin Matuskacompression of any dataset using
824*3ff01b23SMartin Matuska.Nm zfs Cm set Sy compress Ns = Ns Sy zstd Ar dset
825*3ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc .
826*3ff01b23SMartin MatuskaThis feature becomes
827*3ff01b23SMartin Matuska.Sy active
828*3ff01b23SMartin Matuskaonce a
829*3ff01b23SMartin Matuska.Sy compress
830*3ff01b23SMartin Matuskaproperty has been set to
831*3ff01b23SMartin Matuska.Sy zstd ,
832*3ff01b23SMartin Matuskaand will return to being
833*3ff01b23SMartin Matuska.Sy enabled
834*3ff01b23SMartin Matuskaonce all filesystems that have ever had their
835*3ff01b23SMartin Matuska.Sy compress
836*3ff01b23SMartin Matuskaproperty set to
837*3ff01b23SMartin Matuska.Sy zstd
838*3ff01b23SMartin Matuskaare destroyed.
839*3ff01b23SMartin Matuska.El
840*3ff01b23SMartin Matuska.
841*3ff01b23SMartin Matuska.Sh SEE ALSO
842*3ff01b23SMartin Matuska.Xr zpool 8
843