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