13ff01b23SMartin Matuska.\" 23ff01b23SMartin Matuska.\" Copyright (c) 2012, 2018 by Delphix. All rights reserved. 33ff01b23SMartin Matuska.\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved. 43ff01b23SMartin Matuska.\" Copyright (c) 2014, Joyent, Inc. All rights reserved. 53ff01b23SMartin Matuska.\" The contents of this file are subject to the terms of the Common Development 63ff01b23SMartin Matuska.\" and Distribution License (the "License"). You may not use this file except 73ff01b23SMartin Matuska.\" in compliance with the License. You can obtain a copy of the license at 8271171e0SMartin Matuska.\" usr/src/OPENSOLARIS.LICENSE or https://opensource.org/licenses/CDDL-1.0. 93ff01b23SMartin Matuska.\" 103ff01b23SMartin Matuska.\" See the License for the specific language governing permissions and 113ff01b23SMartin Matuska.\" limitations under the License. When distributing Covered Code, include this 123ff01b23SMartin Matuska.\" CDDL HEADER in each file and include the License file at 133ff01b23SMartin Matuska.\" usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this 143ff01b23SMartin Matuska.\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your 153ff01b23SMartin Matuska.\" own identifying information: 163ff01b23SMartin Matuska.\" Portions Copyright [yyyy] [name of copyright owner] 177a7741afSMartin Matuska.\" Copyright (c) 2019, 2023, 2024, Klara, Inc. 183ff01b23SMartin Matuska.\" Copyright (c) 2019, Allan Jude 193ff01b23SMartin Matuska.\" Copyright (c) 2021, Colm Buckley <colm@tuatha.org> 203ff01b23SMartin Matuska.\" 217a7741afSMartin Matuska.Dd October 2, 2024 223ff01b23SMartin Matuska.Dt ZPOOL-FEATURES 7 233ff01b23SMartin Matuska.Os 243ff01b23SMartin Matuska. 253ff01b23SMartin Matuska.Sh NAME 263ff01b23SMartin Matuska.Nm zpool-features 273ff01b23SMartin Matuska.Nd description of ZFS pool features 283ff01b23SMartin Matuska. 293ff01b23SMartin Matuska.Sh DESCRIPTION 30a0b956f5SMartin MatuskaZFS pool on-disk format versions are specified via 31a0b956f5SMartin Matuska.Dq features 32a0b956f5SMartin Matuskawhich replace the old on-disk format numbers 33a0b956f5SMartin Matuska.Pq the last supported on-disk format number is 28 . 343ff01b23SMartin MatuskaTo enable a feature on a pool use the 353ff01b23SMartin Matuska.Nm zpool Cm upgrade , 363ff01b23SMartin Matuskaor set the 373ff01b23SMartin Matuska.Sy feature Ns @ Ns Ar feature-name 383ff01b23SMartin Matuskaproperty to 393ff01b23SMartin Matuska.Sy enabled . 403ff01b23SMartin MatuskaPlease also see the 413ff01b23SMartin Matuska.Sx Compatibility feature sets 423ff01b23SMartin Matuskasection for information on how sets of features may be enabled together. 433ff01b23SMartin Matuska.Pp 443ff01b23SMartin MatuskaThe pool format does not affect file system version compatibility or the ability 453ff01b23SMartin Matuskato send file systems between pools. 463ff01b23SMartin Matuska.Pp 473ff01b23SMartin MatuskaSince most features can be enabled independently of each other, the on-disk 483ff01b23SMartin Matuskaformat of the pool is specified by the set of all features marked as 493ff01b23SMartin Matuska.Sy active 503ff01b23SMartin Matuskaon the pool. 513ff01b23SMartin MatuskaIf the pool was created by another software version 523ff01b23SMartin Matuskathis set may include unsupported features. 533ff01b23SMartin Matuska. 543ff01b23SMartin Matuska.Ss Identifying features 553ff01b23SMartin MatuskaEvery feature has a GUID of the form 563ff01b23SMartin Matuska.Ar com.example : Ns Ar feature-name . 573ff01b23SMartin MatuskaThe reversed DNS name ensures that the feature's GUID is unique across all ZFS 583ff01b23SMartin Matuskaimplementations. 593ff01b23SMartin MatuskaWhen unsupported features are encountered on a pool they will 603ff01b23SMartin Matuskabe identified by their GUIDs. 613ff01b23SMartin MatuskaRefer to the documentation for the ZFS 623ff01b23SMartin Matuskaimplementation that created the pool for information about those features. 633ff01b23SMartin Matuska.Pp 643ff01b23SMartin MatuskaEach supported feature also has a short name. 65bb2d13b6SMartin MatuskaBy convention a feature's short name is the portion of its GUID which follows 66bb2d13b6SMartin Matuskathe 673ff01b23SMartin Matuska.Sq \&: 68a0b956f5SMartin Matuska.Po 69a0b956f5SMartin Matuskai.e. 703ff01b23SMartin Matuska.Ar com.example : Ns Ar feature-name 713ff01b23SMartin Matuskawould have the short name 72a0b956f5SMartin Matuska.Ar feature-name 73a0b956f5SMartin Matuska.Pc , 743ff01b23SMartin Matuskahowever a feature's short name may differ across ZFS implementations if 753ff01b23SMartin Matuskafollowing the convention would result in name conflicts. 763ff01b23SMartin Matuska. 773ff01b23SMartin Matuska.Ss Feature states 783ff01b23SMartin MatuskaFeatures can be in one of three states: 793ff01b23SMartin Matuska.Bl -tag -width "disabled" 803ff01b23SMartin Matuska.It Sy active 813ff01b23SMartin MatuskaThis feature's on-disk format changes are in effect on the pool. 823ff01b23SMartin MatuskaSupport for this feature is required to import the pool in read-write mode. 833ff01b23SMartin MatuskaIf this feature is not read-only compatible, 843ff01b23SMartin Matuskasupport is also required to import the pool in read-only mode 853ff01b23SMartin Matuska.Pq see Sx Read-only compatibility . 863ff01b23SMartin Matuska.It Sy enabled 873ff01b23SMartin MatuskaAn administrator has marked this feature as enabled on the pool, but the 883ff01b23SMartin Matuskafeature's on-disk format changes have not been made yet. 893ff01b23SMartin MatuskaThe pool can still be imported by software that does not support this feature, 903ff01b23SMartin Matuskabut changes may be made to the on-disk format at any time 913ff01b23SMartin Matuskawhich will move the feature to the 923ff01b23SMartin Matuska.Sy active 933ff01b23SMartin Matuskastate. 943ff01b23SMartin MatuskaSome features may support returning to the 953ff01b23SMartin Matuska.Sy enabled 963ff01b23SMartin Matuskastate after becoming 973ff01b23SMartin Matuska.Sy active . 983ff01b23SMartin MatuskaSee feature-specific documentation for details. 993ff01b23SMartin Matuska.It Sy disabled 1003ff01b23SMartin MatuskaThis feature's on-disk format changes have not been made and will not be made 1013ff01b23SMartin Matuskaunless an administrator moves the feature to the 1023ff01b23SMartin Matuska.Sy enabled 1033ff01b23SMartin Matuskastate. 1043ff01b23SMartin MatuskaFeatures cannot be disabled once they have been enabled. 1053ff01b23SMartin Matuska.El 1063ff01b23SMartin Matuska.Pp 1073ff01b23SMartin MatuskaThe state of supported features is exposed through pool properties of the form 1083ff01b23SMartin Matuska.Sy feature Ns @ Ns Ar short-name . 1093ff01b23SMartin Matuska. 1103ff01b23SMartin Matuska.Ss Read-only compatibility 1113ff01b23SMartin MatuskaSome features may make on-disk format changes that do not interfere with other 1123ff01b23SMartin Matuskasoftware's ability to read from the pool. 1133ff01b23SMartin MatuskaThese features are referred to as 1143ff01b23SMartin Matuska.Dq read-only compatible . 1153ff01b23SMartin MatuskaIf all unsupported features on a pool are read-only compatible, 1163ff01b23SMartin Matuskathe pool can be imported in read-only mode by setting the 1173ff01b23SMartin Matuska.Sy readonly 118a0b956f5SMartin Matuskaproperty during import 119a0b956f5SMartin Matuska.Po see 1203ff01b23SMartin Matuska.Xr zpool-import 8 121a0b956f5SMartin Matuskafor details on importing pools 122a0b956f5SMartin Matuska.Pc . 1233ff01b23SMartin Matuska. 1243ff01b23SMartin Matuska.Ss Unsupported features 1253ff01b23SMartin MatuskaFor each unsupported feature enabled on an imported pool, a pool property 1263ff01b23SMartin Matuskanamed 1273ff01b23SMartin Matuska.Sy unsupported Ns @ Ns Ar feature-name 1283ff01b23SMartin Matuskawill indicate why the import was allowed despite the unsupported feature. 1293ff01b23SMartin MatuskaPossible values for this property are: 1303ff01b23SMartin Matuska.Bl -tag -width "readonly" 1313ff01b23SMartin Matuska.It Sy inactive 1323ff01b23SMartin MatuskaThe feature is in the 1333ff01b23SMartin Matuska.Sy enabled 1343ff01b23SMartin Matuskastate and therefore the pool's on-disk 1353ff01b23SMartin Matuskaformat is still compatible with software that does not support this feature. 1363ff01b23SMartin Matuska.It Sy readonly 1373ff01b23SMartin MatuskaThe feature is read-only compatible and the pool has been imported in 1383ff01b23SMartin Matuskaread-only mode. 1393ff01b23SMartin Matuska.El 1403ff01b23SMartin Matuska. 1413ff01b23SMartin Matuska.Ss Feature dependencies 1423ff01b23SMartin MatuskaSome features depend on other features being enabled in order to function. 1433ff01b23SMartin MatuskaEnabling a feature will automatically enable any features it depends on. 1443ff01b23SMartin Matuska. 1453ff01b23SMartin Matuska.Ss Compatibility feature sets 1463ff01b23SMartin MatuskaIt is sometimes necessary for a pool to maintain compatibility with a 1473ff01b23SMartin Matuskaspecific on-disk format, by enabling and disabling particular features. 1483ff01b23SMartin MatuskaThe 1493ff01b23SMartin Matuska.Sy compatibility 1503ff01b23SMartin Matuskafeature facilitates this by allowing feature sets to be read from text files. 1513ff01b23SMartin MatuskaWhen set to 1523ff01b23SMartin Matuska.Sy off 153a0b956f5SMartin Matuska.Pq the default , 154a0b956f5SMartin Matuskacompatibility feature sets are disabled 155a0b956f5SMartin Matuska.Pq i.e. all features are enabled ; 156a0b956f5SMartin Matuskawhen set to 1573ff01b23SMartin Matuska.Sy legacy , 1583ff01b23SMartin Matuskano features are enabled. 1593ff01b23SMartin MatuskaWhen set to a comma-separated list of filenames 160a0b956f5SMartin Matuska.Po 161a0b956f5SMartin Matuskaeach filename may either be an absolute path, or relative to 1623ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d 1633ff01b23SMartin Matuskaor 164a0b956f5SMartin Matuska.Pa /usr/share/zfs/compatibility.d 165a0b956f5SMartin Matuska.Pc , 1663ff01b23SMartin Matuskathe lists of requested features are read from those files, 1673ff01b23SMartin Matuskaseparated by whitespace and/or commas. 1683ff01b23SMartin MatuskaOnly features present in all files are enabled. 1693ff01b23SMartin Matuska.Pp 1703ff01b23SMartin MatuskaSimple sanity checks are applied to the files: 171bb2d13b6SMartin Matuskathey must be between 1 B and 16 KiB in size, and must end with a newline 172bb2d13b6SMartin Matuskacharacter. 1733ff01b23SMartin Matuska.Pp 1743ff01b23SMartin MatuskaThe requested features are applied when a pool is created using 1753ff01b23SMartin Matuska.Nm zpool Cm create Fl o Sy compatibility Ns = Ns Ar … 1763ff01b23SMartin Matuskaand controls which features are enabled when using 1773ff01b23SMartin Matuska.Nm zpool Cm upgrade . 1783ff01b23SMartin Matuska.Nm zpool Cm status 1793ff01b23SMartin Matuskawill not show a warning about disabled features which are not part 1803ff01b23SMartin Matuskaof the requested feature set. 1813ff01b23SMartin Matuska.Pp 1823ff01b23SMartin MatuskaThe special value 1833ff01b23SMartin Matuska.Sy legacy 1843ff01b23SMartin Matuskaprevents any features from being enabled, either via 1853ff01b23SMartin Matuska.Nm zpool Cm upgrade 1863ff01b23SMartin Matuskaor 1873ff01b23SMartin Matuska.Nm zpool Cm set Sy feature Ns @ Ns Ar feature-name Ns = Ns Sy enabled . 1883ff01b23SMartin MatuskaThis setting also prevents pools from being upgraded to newer on-disk versions. 1893ff01b23SMartin MatuskaThis is a safety measure to prevent new features from being 1903ff01b23SMartin Matuskaaccidentally enabled, breaking compatibility. 1913ff01b23SMartin Matuska.Pp 1923ff01b23SMartin MatuskaBy convention, compatibility files in 1933ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d 1943ff01b23SMartin Matuskaare provided by the distribution, and include feature sets 1953ff01b23SMartin Matuskasupported by important versions of popular distributions, and feature 1963ff01b23SMartin Matuskasets commonly supported at the start of each year. 1973ff01b23SMartin MatuskaCompatibility files in 1983ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d , 1993ff01b23SMartin Matuskaif present, will take precedence over files with the same name in 2003ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d . 2013ff01b23SMartin Matuska.Pp 2023ff01b23SMartin MatuskaIf an unrecognized feature is found in these files, an error message will 2033ff01b23SMartin Matuskabe shown. 2043ff01b23SMartin MatuskaIf the unrecognized feature is in a file in 2053ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d , 2063ff01b23SMartin Matuskathis is treated as an error and processing will stop. 2073ff01b23SMartin MatuskaIf the unrecognized feature is under 2083ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d , 2093ff01b23SMartin Matuskathis is treated as a warning and processing will continue. 2103ff01b23SMartin MatuskaThis difference is to allow distributions to include features 2113ff01b23SMartin Matuskawhich might not be recognized by the currently-installed binaries. 2123ff01b23SMartin Matuska.Pp 2133ff01b23SMartin MatuskaCompatibility files may include comments: 2143ff01b23SMartin Matuskaany text from 2153ff01b23SMartin Matuska.Sq # 2163ff01b23SMartin Matuskato the end of the line is ignored. 2173ff01b23SMartin Matuska.Pp 2183ff01b23SMartin Matuska.Sy Example : 2193ff01b23SMartin Matuska.Bd -literal -compact -offset 4n 2203ff01b23SMartin Matuska.No example# Nm cat Pa /usr/share/zfs/compatibility.d/grub2 2217a7741afSMartin Matuska# Features which are supported by GRUB2 versions from v2.12 onwards. 22247bb16f8SMartin Matuskaallocation_classes 2233ff01b23SMartin Matuskaasync_destroy 22447bb16f8SMartin Matuskablock_cloning 2253ff01b23SMartin Matuskabookmarks 22647bb16f8SMartin Matuskadevice_rebuild 2273ff01b23SMartin Matuskaembedded_data 2283ff01b23SMartin Matuskaempty_bpobj 2293ff01b23SMartin Matuskaenabled_txg 2303ff01b23SMartin Matuskaextensible_dataset 2313ff01b23SMartin Matuskafilesystem_limits 2323ff01b23SMartin Matuskahole_birth 2333ff01b23SMartin Matuskalarge_blocks 2344e8d558cSMartin Matuskalivelist 23547bb16f8SMartin Matuskalog_spacemap 2363ff01b23SMartin Matuskalz4_compress 23747bb16f8SMartin Matuskaproject_quota 23847bb16f8SMartin Matuskaresilver_defer 2393ff01b23SMartin Matuskaspacemap_histogram 24047bb16f8SMartin Matuskaspacemap_v2 24147bb16f8SMartin Matuskauserobj_accounting 24247bb16f8SMartin Matuskazilsaxattr 2434e8d558cSMartin Matuskazpool_checkpoint 2443ff01b23SMartin Matuska 2457a7741afSMartin Matuska.No example# Nm cat Pa /usr/share/zfs/compatibility.d/grub2-2.06 2467a7741afSMartin Matuska# Features which are supported by GRUB2 versions prior to v2.12. 2477a7741afSMartin Matuska# 248*c6767dc1SMartin Matuska# GRUB is not able to detect ZFS pool if snapshot of top level boot pool 2497a7741afSMartin Matuska# is created. This issue is observed with GRUB versions before v2.12 if 2507a7741afSMartin Matuska# extensible_dataset feature is enabled on ZFS boot pool. 2517a7741afSMartin Matuska# 252*c6767dc1SMartin Matuska# This file lists all read-only compatible features except 2537a7741afSMartin Matuska# extensible_dataset and any other feature that depends on it. 2547a7741afSMartin Matuska# 2557a7741afSMartin Matuskaallocation_classes 2567a7741afSMartin Matuskaasync_destroy 2577a7741afSMartin Matuskablock_cloning 2587a7741afSMartin Matuskadevice_rebuild 2597a7741afSMartin Matuskaembedded_data 2607a7741afSMartin Matuskaempty_bpobj 2617a7741afSMartin Matuskaenabled_txg 2627a7741afSMartin Matuskahole_birth 2637a7741afSMartin Matuskalog_spacemap 2647a7741afSMartin Matuskalz4_compress 2657a7741afSMartin Matuskaresilver_defer 2667a7741afSMartin Matuskaspacemap_histogram 2677a7741afSMartin Matuskaspacemap_v2 2687a7741afSMartin Matuskazpool_checkpoint 2697a7741afSMartin Matuska 2703ff01b23SMartin Matuska.No example# Nm zpool Cm create Fl o Sy compatibility Ns = Ns Ar grub2 Ar bootpool Ar vdev 2713ff01b23SMartin Matuska.Ed 2723ff01b23SMartin Matuska.Pp 2733ff01b23SMartin MatuskaSee 2743ff01b23SMartin Matuska.Xr zpool-create 8 2753ff01b23SMartin Matuskaand 2763ff01b23SMartin Matuska.Xr zpool-upgrade 8 2773ff01b23SMartin Matuskafor more information on how these commands are affected by feature sets. 2783ff01b23SMartin Matuska. 2793ff01b23SMartin Matuska.de feature 2803ff01b23SMartin Matuska.It Sy \\$2 2813ff01b23SMartin Matuska.Bl -tag -compact -width "READ-ONLY COMPATIBLE" 2823ff01b23SMartin Matuska.It GUID 2833ff01b23SMartin Matuska.Sy \\$1:\\$2 2843ff01b23SMartin Matuska.if !"\\$4"" \{\ 2853ff01b23SMartin Matuska.It DEPENDENCIES 2863ff01b23SMartin Matuska\fB\\$4\fP\c 2873ff01b23SMartin Matuska.if !"\\$5"" , \fB\\$5\fP\c 2883ff01b23SMartin Matuska.if !"\\$6"" , \fB\\$6\fP\c 2893ff01b23SMartin Matuska.if !"\\$7"" , \fB\\$7\fP\c 2903ff01b23SMartin Matuska.if !"\\$8"" , \fB\\$8\fP\c 2913ff01b23SMartin Matuska.if !"\\$9"" , \fB\\$9\fP\c 2923ff01b23SMartin Matuska.\} 2933ff01b23SMartin Matuska.It READ-ONLY COMPATIBLE 2943ff01b23SMartin Matuska\\$3 2953ff01b23SMartin Matuska.El 2963ff01b23SMartin Matuska.Pp 2973ff01b23SMartin Matuska.. 2983ff01b23SMartin Matuska. 2993ff01b23SMartin Matuska.ds instant-never \ 3003ff01b23SMartin Matuska.No This feature becomes Sy active No as soon as it is enabled \ 3013ff01b23SMartin Matuskaand will never return to being Sy enabled . 3023ff01b23SMartin Matuska. 3033ff01b23SMartin Matuska.ds remount-upgrade \ 3043ff01b23SMartin Matuska.No Each filesystem will be upgraded automatically when remounted, \ 3053ff01b23SMartin Matuskaor when a new file is created under that filesystem. \ 3063ff01b23SMartin MatuskaThe upgrade can also be triggered on filesystems via \ 3073ff01b23SMartin MatuskaNm zfs Cm set Sy version Ns = Ns Sy current Ar fs . \ 3083ff01b23SMartin MatuskaNo The upgrade process runs in the background and may take a while to complete \ 3093ff01b23SMartin Matuskafor filesystems containing large amounts of files . 3103ff01b23SMartin Matuska. 3113ff01b23SMartin Matuska.de checksum-spiel 3123ff01b23SMartin MatuskaWhen the 3133ff01b23SMartin Matuska.Sy \\$1 3143ff01b23SMartin Matuskafeature is set to 3153ff01b23SMartin Matuska.Sy enabled , 3163ff01b23SMartin Matuskathe administrator can turn on the 3173ff01b23SMartin Matuska.Sy \\$1 3183ff01b23SMartin Matuskachecksum on any dataset using 3193ff01b23SMartin Matuska.Nm zfs Cm set Sy checksum Ns = Ns Sy \\$1 Ar dset 3203ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc . 3213ff01b23SMartin MatuskaThis feature becomes 3223ff01b23SMartin Matuska.Sy active 3233ff01b23SMartin Matuskaonce a 3243ff01b23SMartin Matuska.Sy checksum 3253ff01b23SMartin Matuskaproperty has been set to 3263ff01b23SMartin Matuska.Sy \\$1 , 3273ff01b23SMartin Matuskaand will return to being 3283ff01b23SMartin Matuska.Sy enabled 3293ff01b23SMartin Matuskaonce all filesystems that have ever had their checksum set to 3303ff01b23SMartin Matuska.Sy \\$1 3313ff01b23SMartin Matuskaare destroyed. 3323ff01b23SMartin Matuska.. 3333ff01b23SMartin Matuska. 3343ff01b23SMartin Matuska.Sh FEATURES 3353ff01b23SMartin MatuskaThe following features are supported on this system: 3363ff01b23SMartin Matuska.Bl -tag -width Ds 3373ff01b23SMartin Matuska.feature org.zfsonlinux allocation_classes yes 3383ff01b23SMartin MatuskaThis feature enables support for separate allocation classes. 3393ff01b23SMartin Matuska.Pp 3403ff01b23SMartin MatuskaThis feature becomes 3413ff01b23SMartin Matuska.Sy active 342a0b956f5SMartin Matuskawhen a dedicated allocation class vdev 343a0b956f5SMartin Matuska.Pq dedup or special 344a0b956f5SMartin Matuskais created with the 3453ff01b23SMartin Matuska.Nm zpool Cm create No or Nm zpool Cm add No commands . 3463ff01b23SMartin MatuskaWith device removal, it can be returned to the 3473ff01b23SMartin Matuska.Sy enabled 3483ff01b23SMartin Matuskastate if all the dedicated allocation class vdevs are removed. 3493ff01b23SMartin Matuska. 3503ff01b23SMartin Matuska.feature com.delphix async_destroy yes 3513ff01b23SMartin MatuskaDestroying a file system requires traversing all of its data in order to 3523ff01b23SMartin Matuskareturn its used space to the pool. 3533ff01b23SMartin MatuskaWithout 3543ff01b23SMartin Matuska.Sy async_destroy , 3553ff01b23SMartin Matuskathe file system is not fully removed until all space has been reclaimed. 3563ff01b23SMartin MatuskaIf the destroy operation is interrupted by a reboot or power outage, 3573ff01b23SMartin Matuskathe next attempt to open the pool will need to complete the destroy 3583ff01b23SMartin Matuskaoperation synchronously. 3593ff01b23SMartin Matuska.Pp 3603ff01b23SMartin MatuskaWhen 3613ff01b23SMartin Matuska.Sy async_destroy 3623ff01b23SMartin Matuskais enabled, the file system's data will be reclaimed by a background process, 3633ff01b23SMartin Matuskaallowing the destroy operation to complete 3643ff01b23SMartin Matuskawithout traversing the entire file system. 3653ff01b23SMartin MatuskaThe background process is able to resume 3663ff01b23SMartin Matuskainterrupted destroys after the pool has been opened, eliminating the need 3673ff01b23SMartin Matuskato finish interrupted destroys as part of the open operation. 3683ff01b23SMartin MatuskaThe amount of space remaining to be reclaimed by the background process 3693ff01b23SMartin Matuskais available through the 3703ff01b23SMartin Matuska.Sy freeing 3713ff01b23SMartin Matuskaproperty. 3723ff01b23SMartin Matuska.Pp 3733ff01b23SMartin MatuskaThis feature is only 3743ff01b23SMartin Matuska.Sy active 3753ff01b23SMartin Matuskawhile 3763ff01b23SMartin Matuska.Sy freeing 3773ff01b23SMartin Matuskais non-zero. 3783ff01b23SMartin Matuska. 3791f1e2261SMartin Matuska.feature org.openzfs blake3 no extensible_dataset 380bb2d13b6SMartin MatuskaThis feature enables the use of the BLAKE3 hash algorithm for checksum and 381bb2d13b6SMartin Matuskadedup. 3821f1e2261SMartin MatuskaBLAKE3 is a secure hash algorithm focused on high performance. 3831f1e2261SMartin Matuska.Pp 3841f1e2261SMartin Matuska.checksum-spiel blake3 3851f1e2261SMartin Matuska. 3862a58b312SMartin Matuska.feature com.fudosecurity block_cloning yes 3872a58b312SMartin MatuskaWhen this feature is enabled ZFS will use block cloning for operations like 3882a58b312SMartin Matuska.Fn copy_file_range 2 . 3892a58b312SMartin MatuskaBlock cloning allows to create multiple references to a single block. 3902a58b312SMartin MatuskaIt is much faster than copying the data (as the actual data is neither read nor 3912a58b312SMartin Matuskawritten) and takes no additional space. 3923494f7c0SMartin MatuskaBlocks can be cloned across datasets under some conditions (like equal 3933494f7c0SMartin Matuska.Nm recordsize , 3943494f7c0SMartin Matuskathe same master encryption key, etc.). 3953494f7c0SMartin MatuskaZFS tries its best to clone across datasets including encrypted ones. 3963494f7c0SMartin MatuskaThis is limited for various (nontrivial) reasons depending on the OS 3973494f7c0SMartin Matuskaand/or ZFS internals. 3982a58b312SMartin Matuska.Pp 3992a58b312SMartin MatuskaThis feature becomes 4002a58b312SMartin Matuska.Sy active 4012a58b312SMartin Matuskawhen first block is cloned. 4022a58b312SMartin MatuskaWhen the last cloned block is freed, it goes back to the enabled state. 4033ff01b23SMartin Matuska.feature com.delphix bookmarks yes extensible_dataset 4043ff01b23SMartin MatuskaThis feature enables use of the 4053ff01b23SMartin Matuska.Nm zfs Cm bookmark 4063ff01b23SMartin Matuskacommand. 4073ff01b23SMartin Matuska.Pp 4083ff01b23SMartin MatuskaThis feature is 4093ff01b23SMartin Matuska.Sy active 4103ff01b23SMartin Matuskawhile any bookmarks exist in the pool. 4113ff01b23SMartin MatuskaAll bookmarks in the pool can be listed by running 4123ff01b23SMartin Matuska.Nm zfs Cm list Fl t Sy bookmark Fl r Ar poolname . 4133ff01b23SMartin Matuska. 4143ff01b23SMartin Matuska.feature com.datto bookmark_v2 no bookmark extensible_dataset 4153ff01b23SMartin MatuskaThis feature enables the creation and management of larger bookmarks which are 4163ff01b23SMartin Matuskaneeded for other features in ZFS. 4173ff01b23SMartin Matuska.Pp 4183ff01b23SMartin MatuskaThis feature becomes 4193ff01b23SMartin Matuska.Sy active 4203ff01b23SMartin Matuskawhen a v2 bookmark is created and will be returned to the 4213ff01b23SMartin Matuska.Sy enabled 4223ff01b23SMartin Matuskastate when all v2 bookmarks are destroyed. 4233ff01b23SMartin Matuska. 4243ff01b23SMartin Matuska.feature com.delphix bookmark_written no bookmark extensible_dataset bookmark_v2 4253ff01b23SMartin MatuskaThis feature enables additional bookmark accounting fields, enabling the 4263ff01b23SMartin Matuska.Sy written Ns # Ns Ar bookmark 427a0b956f5SMartin Matuskaproperty 428a0b956f5SMartin Matuska.Pq space written since a bookmark 429a0b956f5SMartin Matuskaand estimates of send stream sizes for incrementals from bookmarks. 4303ff01b23SMartin Matuska.Pp 4313ff01b23SMartin MatuskaThis feature becomes 4323ff01b23SMartin Matuska.Sy active 4333ff01b23SMartin Matuskawhen a bookmark is created and will be 4343ff01b23SMartin Matuskareturned to the 4353ff01b23SMartin Matuska.Sy enabled 4363ff01b23SMartin Matuskastate when all bookmarks with these fields are destroyed. 4373ff01b23SMartin Matuska. 4383ff01b23SMartin Matuska.feature org.openzfs device_rebuild yes 4393ff01b23SMartin MatuskaThis feature enables the ability for the 4403ff01b23SMartin Matuska.Nm zpool Cm attach 4413ff01b23SMartin Matuskaand 4423ff01b23SMartin Matuska.Nm zpool Cm replace 4433ff01b23SMartin Matuskacommands to perform sequential reconstruction 444a0b956f5SMartin Matuska.Pq instead of healing reconstruction 445a0b956f5SMartin Matuskawhen resilvering. 4463ff01b23SMartin Matuska.Pp 4473ff01b23SMartin MatuskaSequential reconstruction resilvers a device in LBA order without immediately 4483ff01b23SMartin Matuskaverifying the checksums. 4493ff01b23SMartin MatuskaOnce complete, a scrub is started, which then verifies the checksums. 4503ff01b23SMartin MatuskaThis approach allows full redundancy to be restored to the pool 4513ff01b23SMartin Matuskain the minimum amount of time. 4523ff01b23SMartin MatuskaThis two-phase approach will take longer than a healing resilver 4533ff01b23SMartin Matuskawhen the time to verify the checksums is included. 4543ff01b23SMartin MatuskaHowever, unless there is additional pool damage, 4553ff01b23SMartin Matuskano checksum errors should be reported by the scrub. 4563ff01b23SMartin MatuskaThis feature is incompatible with raidz configurations. 4573ff01b23SMartin Matuska. 4583ff01b23SMartin MatuskaThis feature becomes 4593ff01b23SMartin Matuska.Sy active 4603ff01b23SMartin Matuskawhile a sequential resilver is in progress, and returns to 4613ff01b23SMartin Matuska.Sy enabled 4623ff01b23SMartin Matuskawhen the resilver completes. 4633ff01b23SMartin Matuska. 4643ff01b23SMartin Matuska.feature com.delphix device_removal no 4653ff01b23SMartin MatuskaThis feature enables the 4663ff01b23SMartin Matuska.Nm zpool Cm remove 4673ff01b23SMartin Matuskacommand to remove top-level vdevs, 4683ff01b23SMartin Matuskaevacuating them to reduce the total size of the pool. 4693ff01b23SMartin Matuska.Pp 4703ff01b23SMartin MatuskaThis feature becomes 4713ff01b23SMartin Matuska.Sy active 4723ff01b23SMartin Matuskawhen the 4733ff01b23SMartin Matuska.Nm zpool Cm remove 4743ff01b23SMartin Matuskacommand is used 4753ff01b23SMartin Matuskaon a top-level vdev, and will never return to being 4763ff01b23SMartin Matuska.Sy enabled . 4773ff01b23SMartin Matuska. 4783ff01b23SMartin Matuska.feature org.openzfs draid no 4793ff01b23SMartin MatuskaThis feature enables use of the 4803ff01b23SMartin Matuska.Sy draid 4813ff01b23SMartin Matuskavdev type. 482c03c5b1cSMartin MatuskadRAID is a variant of RAID-Z which provides integrated distributed 483c03c5b1cSMartin Matuskahot spares that allow faster resilvering while retaining the benefits of RAID-Z. 4843ff01b23SMartin MatuskaData, parity, and spare space are organized in redundancy groups 4853ff01b23SMartin Matuskaand distributed evenly over all of the devices. 4863ff01b23SMartin Matuska.Pp 4873ff01b23SMartin MatuskaThis feature becomes 4883ff01b23SMartin Matuska.Sy active 4893ff01b23SMartin Matuskawhen creating a pool which uses the 4903ff01b23SMartin Matuska.Sy draid 4913ff01b23SMartin Matuskavdev type, or when adding a new 4923ff01b23SMartin Matuska.Sy draid 4933ff01b23SMartin Matuskavdev to an existing pool. 4943ff01b23SMartin Matuska. 4953ff01b23SMartin Matuska.feature org.illumos edonr no extensible_dataset 4963ff01b23SMartin MatuskaThis feature enables the use of the Edon-R hash algorithm for checksum, 497a0b956f5SMartin Matuskaincluding for nopwrite 498a0b956f5SMartin Matuska.Po if compression is also enabled, an overwrite of 499a0b956f5SMartin Matuskaa block whose checksum matches the data being written will be ignored 500a0b956f5SMartin Matuska.Pc . 5013ff01b23SMartin MatuskaIn an abundance of caution, Edon-R requires verification when used with 5023ff01b23SMartin Matuskadedup: 5033ff01b23SMartin Matuska.Nm zfs Cm set Sy dedup Ns = Ns Sy edonr , Ns Sy verify 5043ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc . 5053ff01b23SMartin Matuska.Pp 5063ff01b23SMartin MatuskaEdon-R is a very high-performance hash algorithm that was part 5073ff01b23SMartin Matuskaof the NIST SHA-3 competition. 508a0b956f5SMartin MatuskaIt provides extremely high hash performance 509a0b956f5SMartin Matuska.Pq over 350% faster than SHA-256 , 5103ff01b23SMartin Matuskabut was not selected because of its unsuitability 5113ff01b23SMartin Matuskaas a general purpose secure hash algorithm. 5123ff01b23SMartin MatuskaThis implementation utilizes the new salted checksumming functionality 5133ff01b23SMartin Matuskain ZFS, which means that the checksum is pre-seeded with a secret 514a0b956f5SMartin Matuska256-bit random key 515a0b956f5SMartin Matuska.Pq stored on the pool 516a0b956f5SMartin Matuskabefore being fed the data block to be checksummed. 5173ff01b23SMartin MatuskaThus the produced checksums are unique to a given pool, 5183ff01b23SMartin Matuskapreventing hash collision attacks on systems with dedup. 5191f1e2261SMartin Matuska.Pp 5201f1e2261SMartin Matuska.checksum-spiel edonr 5213ff01b23SMartin Matuska. 5223ff01b23SMartin Matuska.feature com.delphix embedded_data no 5233ff01b23SMartin MatuskaThis feature improves the performance and compression ratio of 5243ff01b23SMartin Matuskahighly-compressible blocks. 5253ff01b23SMartin MatuskaBlocks whose contents can compress to 112 bytes 5263ff01b23SMartin Matuskaor smaller can take advantage of this feature. 5273ff01b23SMartin Matuska.Pp 5283ff01b23SMartin MatuskaWhen this feature is enabled, the contents of highly-compressible blocks are 529a0b956f5SMartin Matuskastored in the block 530a0b956f5SMartin Matuska.Dq pointer 531a0b956f5SMartin Matuskaitself 532a0b956f5SMartin Matuska.Po a misnomer in this case, as it contains 533a0b956f5SMartin Matuskathe compressed data, rather than a pointer to its location on disk 534a0b956f5SMartin Matuska.Pc . 535a0b956f5SMartin MatuskaThus the space of the block 536a0b956f5SMartin Matuska.Pq one sector, typically 512 B or 4 KiB 537a0b956f5SMartin Matuskais saved, and no additional I/O is needed to read and write the data block. 5383ff01b23SMartin Matuska. 5393ff01b23SMartin Matuska\*[instant-never] 5403ff01b23SMartin Matuska. 5413ff01b23SMartin Matuska.feature com.delphix empty_bpobj yes 5423ff01b23SMartin MatuskaThis feature increases the performance of creating and using a large 5433ff01b23SMartin Matuskanumber of snapshots of a single filesystem or volume, and also reduces 5443ff01b23SMartin Matuskathe disk space required. 5453ff01b23SMartin Matuska.Pp 5463ff01b23SMartin MatuskaWhen there are many snapshots, each snapshot uses many Block Pointer 547a0b956f5SMartin MatuskaObjects 548a0b956f5SMartin Matuska.Pq bpobjs 549a0b956f5SMartin Matuskato track blocks associated with that snapshot. 5503ff01b23SMartin MatuskaHowever, in common use cases, most of these bpobjs are empty. 5513ff01b23SMartin MatuskaThis feature allows us to create each bpobj on-demand, 5523ff01b23SMartin Matuskathus eliminating the empty bpobjs. 5533ff01b23SMartin Matuska.Pp 5543ff01b23SMartin MatuskaThis feature is 5553ff01b23SMartin Matuska.Sy active 5563ff01b23SMartin Matuskawhile there are any filesystems, volumes, 5573ff01b23SMartin Matuskaor snapshots which were created after enabling this feature. 5583ff01b23SMartin Matuska. 5593ff01b23SMartin Matuska.feature com.delphix enabled_txg yes 5603ff01b23SMartin MatuskaOnce this feature is enabled, ZFS records the transaction group number 5613ff01b23SMartin Matuskain which new features are enabled. 5623ff01b23SMartin MatuskaThis has no user-visible impact, but other features may depend on this feature. 5633ff01b23SMartin Matuska.Pp 5643ff01b23SMartin MatuskaThis feature becomes 5653ff01b23SMartin Matuska.Sy active 566c03c5b1cSMartin Matuskaas soon as it is enabled and will never return to being 5673ff01b23SMartin Matuska.Sy enabled . 5683ff01b23SMartin Matuska. 5693ff01b23SMartin Matuska.feature com.datto encryption no bookmark_v2 extensible_dataset 5703ff01b23SMartin MatuskaThis feature enables the creation and management of natively encrypted datasets. 5713ff01b23SMartin Matuska.Pp 5723ff01b23SMartin MatuskaThis feature becomes 5733ff01b23SMartin Matuska.Sy active 5743ff01b23SMartin Matuskawhen an encrypted dataset is created and will be returned to the 5753ff01b23SMartin Matuska.Sy enabled 5763ff01b23SMartin Matuskastate when all datasets that use this feature are destroyed. 5773ff01b23SMartin Matuska. 578e2df9bb4SMartin Matuska.feature com.klarasystems fast_dedup yes 579e2df9bb4SMartin MatuskaThis feature allows more advanced deduplication features to be enabled on new 580e2df9bb4SMartin Matuskadedup tables. 581e2df9bb4SMartin Matuska.Pp 582e2df9bb4SMartin MatuskaThis feature will be 583e2df9bb4SMartin Matuska.Sy active 584e2df9bb4SMartin Matuskawhen the first deduplicated block is written after a new dedup table is created 585e2df9bb4SMartin Matuska(ie after a new pool creation, or new checksum used on a dataset with 586e2df9bb4SMartin Matuska.Sy dedup 587e2df9bb4SMartin Matuskaenabled). 588e2df9bb4SMartin MatuskaIt will be returned to the 589e2df9bb4SMartin Matuska.Sy enabled 590e2df9bb4SMartin Matuskastate when all deduplicated blocks using it are freed. 591e2df9bb4SMartin Matuska. 5923ff01b23SMartin Matuska.feature com.delphix extensible_dataset no 5933ff01b23SMartin MatuskaThis feature allows more flexible use of internal ZFS data structures, 5943ff01b23SMartin Matuskaand exists for other features to depend on. 5953ff01b23SMartin Matuska.Pp 5963ff01b23SMartin MatuskaThis feature will be 5973ff01b23SMartin Matuska.Sy active 5983ff01b23SMartin Matuskawhen the first dependent feature uses it, and will be returned to the 5993ff01b23SMartin Matuska.Sy enabled 6003ff01b23SMartin Matuskastate when all datasets that use this feature are destroyed. 6013ff01b23SMartin Matuska. 6023ff01b23SMartin Matuska.feature com.joyent filesystem_limits yes extensible_dataset 6033ff01b23SMartin MatuskaThis feature enables filesystem and snapshot limits. 6043ff01b23SMartin MatuskaThese limits can be used to control how many filesystems and/or snapshots 6053ff01b23SMartin Matuskacan be created at the point in the tree on which the limits are set. 6063ff01b23SMartin Matuska.Pp 6073ff01b23SMartin MatuskaThis feature is 6083ff01b23SMartin Matuska.Sy active 609c03c5b1cSMartin Matuskaonce either of the limit properties has been set on a dataset 610c03c5b1cSMartin Matuskaand will never return to being 611c03c5b1cSMartin Matuska.Sy enabled . 6123ff01b23SMartin Matuska. 613716fd348SMartin Matuska.feature com.delphix head_errlog no 614716fd348SMartin MatuskaThis feature enables the upgraded version of errlog, which required an on-disk 615716fd348SMartin Matuskaerror log format change. 616716fd348SMartin MatuskaNow the error log of each head dataset is stored separately in the zap object 617716fd348SMartin Matuskaand keyed by the head id. 618716fd348SMartin MatuskaWith this feature enabled, every dataset affected by an error block is listed 619716fd348SMartin Matuskain the output of 620716fd348SMartin Matuska.Nm zpool Cm status . 621e639e0d2SMartin MatuskaIn case of encrypted filesystems with unloaded keys we are unable to check 622e639e0d2SMartin Matuskatheir snapshots or clones for errors and these will not be reported. 623e639e0d2SMartin MatuskaAn "access denied" error will be reported. 624716fd348SMartin Matuska.Pp 625716fd348SMartin Matuska\*[instant-never] 626716fd348SMartin Matuska. 6273ff01b23SMartin Matuska.feature com.delphix hole_birth no enabled_txg 6283ff01b23SMartin MatuskaThis feature has/had bugs, the result of which is that, if you do a 6293ff01b23SMartin Matuska.Nm zfs Cm send Fl i 6303ff01b23SMartin Matuska.Pq or Fl R , No since it uses Fl i 6313ff01b23SMartin Matuskafrom an affected dataset, the receiving party will not see any checksum 6323ff01b23SMartin Matuskaor other errors, but the resulting destination snapshot 6333ff01b23SMartin Matuskawill not match the source. 6343ff01b23SMartin MatuskaIts use by 6353ff01b23SMartin Matuska.Nm zfs Cm send Fl i 6363ff01b23SMartin Matuskahas been disabled by default 637a0b956f5SMartin Matuska.Po 638a0b956f5SMartin Matuskasee 639a0b956f5SMartin Matuska.Sy send_holes_without_birth_time 640a0b956f5SMartin Matuskain 641a0b956f5SMartin Matuska.Xr zfs 4 642a0b956f5SMartin Matuska.Pc . 6433ff01b23SMartin Matuska.Pp 6443ff01b23SMartin MatuskaThis feature improves performance of incremental sends 6453ff01b23SMartin Matuska.Pq Nm zfs Cm send Fl i 6463ff01b23SMartin Matuskaand receives for objects with many holes. 6473ff01b23SMartin MatuskaThe most common case of hole-filled objects is zvols. 6483ff01b23SMartin Matuska.Pp 6493ff01b23SMartin MatuskaAn incremental send stream from snapshot 6503ff01b23SMartin Matuska.Sy A No to snapshot Sy B 6513ff01b23SMartin Matuskacontains information about every block that changed between 6523ff01b23SMartin Matuska.Sy A No and Sy B . 6533ff01b23SMartin MatuskaBlocks which did not change between those snapshots can be 6543ff01b23SMartin Matuskaidentified and omitted from the stream using a piece of metadata called 655a0b956f5SMartin Matuskathe 656a0b956f5SMartin Matuska.Dq block birth time , 657a0b956f5SMartin Matuskabut birth times are not recorded for holes 658a0b956f5SMartin Matuska.Pq blocks filled only with zeroes . 6593ff01b23SMartin MatuskaSince holes created after 6603ff01b23SMartin Matuska.Sy A No cannot be distinguished from holes created before Sy A , 6613ff01b23SMartin Matuskainformation about every hole in the entire filesystem or zvol 6623ff01b23SMartin Matuskais included in the send stream. 6633ff01b23SMartin Matuska.Pp 6643ff01b23SMartin MatuskaFor workloads where holes are rare this is not a problem. 6653ff01b23SMartin MatuskaHowever, when incrementally replicating filesystems or zvols with many holes 666a0b956f5SMartin Matuska.Pq for example a zvol formatted with another filesystem 667a0b956f5SMartin Matuskaa lot of time will be spent sending and receiving unnecessary information 668a0b956f5SMartin Matuskaabout holes that already exist on the receiving side. 6693ff01b23SMartin Matuska.Pp 6703ff01b23SMartin MatuskaOnce the 6713ff01b23SMartin Matuska.Sy hole_birth 6723ff01b23SMartin Matuskafeature has been enabled the block birth times 6733ff01b23SMartin Matuskaof all new holes will be recorded. 6743ff01b23SMartin MatuskaIncremental sends between snapshots created after this feature is enabled 6753ff01b23SMartin Matuskawill use this new metadata to avoid sending information about holes that 6763ff01b23SMartin Matuskaalready exist on the receiving side. 6773ff01b23SMartin Matuska.Pp 6783ff01b23SMartin Matuska\*[instant-never] 6793ff01b23SMartin Matuska. 6803ff01b23SMartin Matuska.feature org.open-zfs large_blocks no extensible_dataset 681716fd348SMartin MatuskaThis feature allows the record size on a dataset to be set larger than 128 KiB. 6823ff01b23SMartin Matuska.Pp 6833ff01b23SMartin MatuskaThis feature becomes 6843ff01b23SMartin Matuska.Sy active 685716fd348SMartin Matuskaonce a dataset contains a file with a block size larger than 128 KiB, 6863ff01b23SMartin Matuskaand will return to being 6873ff01b23SMartin Matuska.Sy enabled 688716fd348SMartin Matuskaonce all filesystems that have ever had their recordsize larger than 128 KiB 6893ff01b23SMartin Matuskaare destroyed. 6903ff01b23SMartin Matuska. 6913ff01b23SMartin Matuska.feature org.zfsonlinux large_dnode no extensible_dataset 6923ff01b23SMartin MatuskaThis feature allows the size of dnodes in a dataset to be set larger than 512 B. 6933ff01b23SMartin Matuska. 6943ff01b23SMartin MatuskaThis feature becomes 6953ff01b23SMartin Matuska.Sy active 6963ff01b23SMartin Matuskaonce a dataset contains an object with a dnode larger than 512 B, 6973ff01b23SMartin Matuskawhich occurs as a result of setting the 6983ff01b23SMartin Matuska.Sy dnodesize 6993ff01b23SMartin Matuskadataset property to a value other than 7003ff01b23SMartin Matuska.Sy legacy . 7013ff01b23SMartin MatuskaThe feature will return to being 7023ff01b23SMartin Matuska.Sy enabled 7033ff01b23SMartin Matuskaonce all filesystems that have ever contained a dnode larger than 512 B 7043ff01b23SMartin Matuskaare destroyed. 7053ff01b23SMartin MatuskaLarge dnodes allow more data to be stored in the bonus buffer, 7063ff01b23SMartin Matuskathus potentially improving performance by avoiding the use of spill blocks. 7073ff01b23SMartin Matuska. 7087a7741afSMartin Matuska.feature com.klarasystems large_microzap yes extensible_dataset large_blocks 7097a7741afSMartin MatuskaThis feature allows "micro" ZAPs to grow larger than 128 KiB without being 7107a7741afSMartin Matuskaupgraded to "fat" ZAPs. 7117a7741afSMartin Matuska.Pp 7127a7741afSMartin MatuskaThis feature becomes 7137a7741afSMartin Matuska.Sy active 7147a7741afSMartin Matuskathe first time a micro ZAP grows larger than 128KiB. 7157a7741afSMartin MatuskaIt will only be returned to the 7167a7741afSMartin Matuska.Sy enabled 7177a7741afSMartin Matuskastate when all datasets that ever had a large micro ZAP are destroyed. 7187a7741afSMartin Matuska.Pp 7197a7741afSMartin MatuskaNote that even when this feature is enabled, micro ZAPs cannot grow larger 7207a7741afSMartin Matuskathan 128 KiB without also changing the 7217a7741afSMartin Matuska.Sy zap_micro_max_size 7227a7741afSMartin Matuskamodule parameter. 7237a7741afSMartin MatuskaSee 7247a7741afSMartin Matuska.Xr zfs 4 . 7257a7741afSMartin Matuska. 7267a7741afSMartin Matuska.feature com.delphix livelist yes extensible_dataset 7273ff01b23SMartin MatuskaThis feature allows clones to be deleted faster than the traditional method 7283ff01b23SMartin Matuskawhen a large number of random/sparse writes have been made to the clone. 7293ff01b23SMartin MatuskaAll blocks allocated and freed after a clone is created are tracked by the 7303ff01b23SMartin Matuskathe clone's livelist which is referenced during the deletion of the clone. 7313ff01b23SMartin MatuskaThe feature is activated when a clone is created and remains 7323ff01b23SMartin Matuska.Sy active 7333ff01b23SMartin Matuskauntil all clones have been destroyed. 7343ff01b23SMartin Matuska. 7353ff01b23SMartin Matuska.feature com.delphix log_spacemap yes com.delphix:spacemap_v2 7363ff01b23SMartin MatuskaThis feature improves performance for heavily-fragmented pools, 7373ff01b23SMartin Matuskaespecially when workloads are heavy in random-writes. 7383ff01b23SMartin MatuskaIt does so by logging all the metaslab changes on a single spacemap every TXG 7393ff01b23SMartin Matuskainstead of scattering multiple writes to all the metaslab spacemaps. 7403ff01b23SMartin Matuska.Pp 7413ff01b23SMartin Matuska\*[instant-never] 7423ff01b23SMartin Matuska. 7437a7741afSMartin Matuska.feature org.zfsonlinux longname no extensible_dataset 7447a7741afSMartin MatuskaThis feature allows creating files and directories with name up to 1023 bytes 7457a7741afSMartin Matuskain length. 7467a7741afSMartin MatuskaA new dataset property 7477a7741afSMartin Matuska.Sy longname 7487a7741afSMartin Matuskais also introduced to toggle longname support for each dataset individually. 7497a7741afSMartin MatuskaThis property can be disabled even if it contains longname files. 7507a7741afSMartin MatuskaIn such case, new file cannot be created with longname but existing longname 7517a7741afSMartin Matuskafiles can still be looked up. 7527a7741afSMartin Matuska.Pp 7537a7741afSMartin MatuskaThis feature becomes 7547a7741afSMartin Matuska.Sy active 7557a7741afSMartin Matuskawhen a file name greater than 255 is created in a dataset, and returns to 7567a7741afSMartin Matuskabeing 7577a7741afSMartin Matuska.Sy enabled 7587a7741afSMartin Matuskawhen all such datasets are destroyed. 7597a7741afSMartin Matuska. 7603ff01b23SMartin Matuska.feature org.illumos lz4_compress no 7613ff01b23SMartin Matuska.Sy lz4 7623ff01b23SMartin Matuskais a high-performance real-time compression algorithm that 7633ff01b23SMartin Matuskafeatures significantly faster compression and decompression as well as a 7643ff01b23SMartin Matuskahigher compression ratio than the older 7653ff01b23SMartin Matuska.Sy lzjb 7663ff01b23SMartin Matuskacompression. 7673ff01b23SMartin MatuskaTypically, 7683ff01b23SMartin Matuska.Sy lz4 7693ff01b23SMartin Matuskacompression is approximately 50% faster on compressible data and 200% faster 7703ff01b23SMartin Matuskaon incompressible data than 7713ff01b23SMartin Matuska.Sy lzjb . 7723ff01b23SMartin MatuskaIt is also approximately 80% faster on decompression, 7733ff01b23SMartin Matuskawhile giving approximately a 10% better compression ratio. 7743ff01b23SMartin Matuska.Pp 7753ff01b23SMartin MatuskaWhen the 7763ff01b23SMartin Matuska.Sy lz4_compress 7773ff01b23SMartin Matuskafeature is set to 7783ff01b23SMartin Matuska.Sy enabled , 7793ff01b23SMartin Matuskathe administrator can turn on 7803ff01b23SMartin Matuska.Sy lz4 7813ff01b23SMartin Matuskacompression on any dataset on the pool using the 7823ff01b23SMartin Matuska.Xr zfs-set 8 7833ff01b23SMartin Matuskacommand. 7843ff01b23SMartin MatuskaAll newly written metadata will be compressed with the 7853ff01b23SMartin Matuska.Sy lz4 7863ff01b23SMartin Matuskaalgorithm. 7873ff01b23SMartin Matuska.Pp 7883ff01b23SMartin Matuska\*[instant-never] 7893ff01b23SMartin Matuska. 7903ff01b23SMartin Matuska.feature com.joyent multi_vdev_crash_dump no 7913ff01b23SMartin MatuskaThis feature allows a dump device to be configured with a pool comprised 7923ff01b23SMartin Matuskaof multiple vdevs. 7933ff01b23SMartin MatuskaThose vdevs may be arranged in any mirrored or raidz configuration. 7943ff01b23SMartin Matuska.Pp 7953ff01b23SMartin MatuskaWhen the 7963ff01b23SMartin Matuska.Sy multi_vdev_crash_dump 7973ff01b23SMartin Matuskafeature is set to 7983ff01b23SMartin Matuska.Sy enabled , 7993ff01b23SMartin Matuskathe administrator can use 800a0b956f5SMartin Matuska.Xr dumpadm 8 8013ff01b23SMartin Matuskato configure a dump device on a pool comprised of multiple vdevs. 8023ff01b23SMartin Matuska.Pp 8033ff01b23SMartin MatuskaUnder 8043ff01b23SMartin Matuska.Fx 8053ff01b23SMartin Matuskaand Linux this feature is unused, but registered for compatibility. 8063ff01b23SMartin MatuskaNew pools created on these systems will have the feature 8073ff01b23SMartin Matuska.Sy enabled 8083ff01b23SMartin Matuskabut will never transition to 8093ff01b23SMartin Matuska.Sy active , 8103ff01b23SMartin Matuskaas this functionality is not required for crash dump support. 8113ff01b23SMartin MatuskaExisting pools where this feature is 8123ff01b23SMartin Matuska.Sy active 8133ff01b23SMartin Matuskacan be imported. 8143ff01b23SMartin Matuska. 8153ff01b23SMartin Matuska.feature com.delphix obsolete_counts yes device_removal 8163ff01b23SMartin MatuskaThis feature is an enhancement of 8173ff01b23SMartin Matuska.Sy device_removal , 8183ff01b23SMartin Matuskawhich will over time reduce the memory used to track removed devices. 8193ff01b23SMartin MatuskaWhen indirect blocks are freed or remapped, 820a0b956f5SMartin Matuskawe note that their part of the indirect mapping is 821a0b956f5SMartin Matuska.Dq obsolete 822a0b956f5SMartin Matuska– no longer needed. 8233ff01b23SMartin Matuska.Pp 8243ff01b23SMartin MatuskaThis feature becomes 8253ff01b23SMartin Matuska.Sy active 8263ff01b23SMartin Matuskawhen the 8273ff01b23SMartin Matuska.Nm zpool Cm remove 8283ff01b23SMartin Matuskacommand is used on a top-level vdev, and will never return to being 8293ff01b23SMartin Matuska.Sy enabled . 8303ff01b23SMartin Matuska. 8313ff01b23SMartin Matuska.feature org.zfsonlinux project_quota yes extensible_dataset 8323ff01b23SMartin MatuskaThis feature allows administrators to account the spaces and objects usage 833a0b956f5SMartin Matuskainformation against the project identifier 834a0b956f5SMartin Matuska.Pq ID . 8353ff01b23SMartin Matuska.Pp 8363ff01b23SMartin MatuskaThe project ID is an object-based attribute. 8373ff01b23SMartin MatuskaWhen upgrading an existing filesystem, 8383ff01b23SMartin Matuskaobjects without a project ID will be assigned a zero project ID. 8393ff01b23SMartin MatuskaWhen this feature is enabled, newly created objects inherit 8403ff01b23SMartin Matuskatheir parent directories' project ID if the parent's inherit flag is set 8413ff01b23SMartin Matuska.Pq via Nm chattr Sy [+-]P No or Nm zfs Cm project Fl s Ns | Ns Fl C . 8423ff01b23SMartin MatuskaOtherwise, the new object's project ID will be zero. 8433ff01b23SMartin MatuskaAn object's project ID can be changed at any time by the owner 844a0b956f5SMartin Matuska.Pq or privileged user 845a0b956f5SMartin Matuskavia 8463ff01b23SMartin Matuska.Nm chattr Fl p Ar prjid 8473ff01b23SMartin Matuskaor 8483ff01b23SMartin Matuska.Nm zfs Cm project Fl p Ar prjid . 8493ff01b23SMartin Matuska.Pp 8503ff01b23SMartin MatuskaThis feature will become 8513ff01b23SMartin Matuska.Sy active 8523ff01b23SMartin Matuskaas soon as it is enabled and will never return to being 8533ff01b23SMartin Matuska.Sy disabled . 8543ff01b23SMartin Matuska\*[remount-upgrade] 8553ff01b23SMartin Matuska. 856e716630dSMartin Matuska.feature org.openzfs raidz_expansion no none 857e716630dSMartin MatuskaThis feature enables the 858e716630dSMartin Matuska.Nm zpool Cm attach 859e716630dSMartin Matuskasubcommand to attach a new device to a RAID-Z group, expanding the total 860e716630dSMartin Matuskaamount usable space in the pool. 861e716630dSMartin MatuskaSee 862e716630dSMartin Matuska.Xr zpool-attach 8 . 863e716630dSMartin Matuska. 8643ff01b23SMartin Matuska.feature com.delphix redaction_bookmarks no bookmarks extensible_dataset 8653ff01b23SMartin MatuskaThis feature enables the use of redacted 8663ff01b23SMartin Matuska.Nm zfs Cm send Ns s , 8673ff01b23SMartin Matuskawhich create redaction bookmarks storing the list of blocks 8683ff01b23SMartin Matuskaredacted by the send that created them. 8693ff01b23SMartin MatuskaFor more information about redacted sends, see 8703ff01b23SMartin Matuska.Xr zfs-send 8 . 8713ff01b23SMartin Matuska. 8723ff01b23SMartin Matuska.feature com.delphix redacted_datasets no extensible_dataset 8733ff01b23SMartin MatuskaThis feature enables the receiving of redacted 874c03c5b1cSMartin Matuska.Nm zfs Cm send 875c03c5b1cSMartin Matuskastreams, which create redacted datasets when received. 8763ff01b23SMartin MatuskaThese datasets are missing some of their blocks, 8773ff01b23SMartin Matuskaand so cannot be safely mounted, and their contents cannot be safely read. 8783ff01b23SMartin MatuskaFor more information about redacted receives, see 8793ff01b23SMartin Matuska.Xr zfs-send 8 . 8803ff01b23SMartin Matuska. 881e716630dSMartin Matuska.feature com.delphix redaction_list_spill no redaction_bookmarks 882e716630dSMartin MatuskaThis feature enables the redaction list created by zfs redact to store 883e716630dSMartin Matuskamany more entries. 884e716630dSMartin MatuskaIt becomes 885e716630dSMartin Matuska.Sy active 886e716630dSMartin Matuskawhen a redaction list is created with more than 36 entries, 887e716630dSMartin Matuskaand returns to being 888e716630dSMartin Matuska.Sy enabled 889e716630dSMartin Matuskawhen no long redaction lists remain in the pool. 890e716630dSMartin MatuskaFor more information about redacted sends, see 891e716630dSMartin Matuska.Xr zfs-send 8 . 892e716630dSMartin Matuska. 8933ff01b23SMartin Matuska.feature com.datto resilver_defer yes 8943ff01b23SMartin MatuskaThis feature allows ZFS to postpone new resilvers if an existing one is already 8953ff01b23SMartin Matuskain progress. 8963ff01b23SMartin MatuskaWithout this feature, any new resilvers will cause the currently 8973ff01b23SMartin Matuskarunning one to be immediately restarted from the beginning. 8983ff01b23SMartin Matuska.Pp 8993ff01b23SMartin MatuskaThis feature becomes 9003ff01b23SMartin Matuska.Sy active 9013ff01b23SMartin Matuskaonce a resilver has been deferred, and returns to being 9023ff01b23SMartin Matuska.Sy enabled 9033ff01b23SMartin Matuskawhen the deferred resilver begins. 9043ff01b23SMartin Matuska. 9053ff01b23SMartin Matuska.feature org.illumos sha512 no extensible_dataset 9063ff01b23SMartin MatuskaThis feature enables the use of the SHA-512/256 truncated hash algorithm 907a0b956f5SMartin Matuska.Pq FIPS 180-4 908a0b956f5SMartin Matuskafor checksum and dedup. 9093ff01b23SMartin MatuskaThe native 64-bit arithmetic of SHA-512 provides an approximate 50% 9103ff01b23SMartin Matuskaperformance boost over SHA-256 on 64-bit hardware 9113ff01b23SMartin Matuskaand is thus a good minimum-change replacement candidate 9123ff01b23SMartin Matuskafor systems where hash performance is important, 9133ff01b23SMartin Matuskabut these systems cannot for whatever reason utilize the faster 9143ff01b23SMartin Matuska.Sy skein No and Sy edonr 9153ff01b23SMartin Matuskaalgorithms. 9163ff01b23SMartin Matuska.Pp 9173ff01b23SMartin Matuska.checksum-spiel sha512 9183ff01b23SMartin Matuska. 9193ff01b23SMartin Matuska.feature org.illumos skein no extensible_dataset 9203ff01b23SMartin MatuskaThis feature enables the use of the Skein hash algorithm for checksum and dedup. 9213ff01b23SMartin MatuskaSkein is a high-performance secure hash algorithm that was a 9223ff01b23SMartin Matuskafinalist in the NIST SHA-3 competition. 9233ff01b23SMartin MatuskaIt provides a very high security margin and high performance on 64-bit hardware 924a0b956f5SMartin Matuska.Pq 80% faster than SHA-256 . 9253ff01b23SMartin MatuskaThis implementation also utilizes the new salted checksumming 9263ff01b23SMartin Matuskafunctionality in ZFS, which means that the checksum is pre-seeded with a 927a0b956f5SMartin Matuskasecret 256-bit random key 928a0b956f5SMartin Matuska.Pq stored on the pool 929a0b956f5SMartin Matuskabefore being fed the data block to be checksummed. 9303ff01b23SMartin MatuskaThus the produced checksums are unique to a given pool, 9313ff01b23SMartin Matuskapreventing hash collision attacks on systems with dedup. 9323ff01b23SMartin Matuska.Pp 9333ff01b23SMartin Matuska.checksum-spiel skein 9343ff01b23SMartin Matuska. 9353ff01b23SMartin Matuska.feature com.delphix spacemap_histogram yes 9363ff01b23SMartin MatuskaThis features allows ZFS to maintain more information about how free space 9373ff01b23SMartin Matuskais organized within the pool. 9383ff01b23SMartin MatuskaIf this feature is 9393ff01b23SMartin Matuska.Sy enabled , 9403ff01b23SMartin Matuskait will be activated when a new space map object is created, or 9413ff01b23SMartin Matuskaan existing space map is upgraded to the new format, 9423ff01b23SMartin Matuskaand never returns back to being 9433ff01b23SMartin Matuska.Sy enabled . 9443ff01b23SMartin Matuska. 9453ff01b23SMartin Matuska.feature com.delphix spacemap_v2 yes 9463ff01b23SMartin MatuskaThis feature enables the use of the new space map encoding which 947a0b956f5SMartin Matuskaconsists of two words 948a0b956f5SMartin Matuska.Pq instead of one 949a0b956f5SMartin Matuskawhenever it is advantageous. 9503ff01b23SMartin MatuskaThe new encoding allows space maps to represent large regions of 9513ff01b23SMartin Matuskaspace more efficiently on-disk while also increasing their maximum 9523ff01b23SMartin Matuskaaddressable offset. 9533ff01b23SMartin Matuska.Pp 9543ff01b23SMartin MatuskaThis feature becomes 9553ff01b23SMartin Matuska.Sy active 9563ff01b23SMartin Matuskaonce it is 9573ff01b23SMartin Matuska.Sy enabled , 9583ff01b23SMartin Matuskaand never returns back to being 9593ff01b23SMartin Matuska.Sy enabled . 9603ff01b23SMartin Matuska. 9613ff01b23SMartin Matuska.feature org.zfsonlinux userobj_accounting yes extensible_dataset 9623ff01b23SMartin MatuskaThis feature allows administrators to account the object usage information 9633ff01b23SMartin Matuskaby user and group. 9643ff01b23SMartin Matuska.Pp 9653ff01b23SMartin Matuska\*[instant-never] 9663ff01b23SMartin Matuska\*[remount-upgrade] 9673ff01b23SMartin Matuska. 968d411c1d6SMartin Matuska.feature com.klarasystems vdev_zaps_v2 no 969d411c1d6SMartin MatuskaThis feature creates a ZAP object for the root vdev. 970d411c1d6SMartin Matuska.Pp 971d411c1d6SMartin MatuskaThis feature becomes active after the next 972d411c1d6SMartin Matuska.Nm zpool Cm import 973d411c1d6SMartin Matuskaor 974d411c1d6SMartin Matuska.Nm zpool reguid . 975d411c1d6SMartin Matuska. 976d411c1d6SMartin MatuskaProperties can be retrieved or set on the root vdev using 977d411c1d6SMartin Matuska.Nm zpool Cm get 978d411c1d6SMartin Matuskaand 979d411c1d6SMartin Matuska.Nm zpool Cm set 980d411c1d6SMartin Matuskawith 981d411c1d6SMartin Matuska.Sy root 982d411c1d6SMartin Matuskaas the vdev name which is an alias for 983d411c1d6SMartin Matuska.Sy root-0 . 984c03c5b1cSMartin Matuska.feature org.openzfs zilsaxattr yes extensible_dataset 985c03c5b1cSMartin MatuskaThis feature enables 986c03c5b1cSMartin Matuska.Sy xattr Ns = Ns Sy sa 987c03c5b1cSMartin Matuskaextended attribute logging in the ZIL. 988c03c5b1cSMartin MatuskaIf enabled, extended attribute changes 989c03c5b1cSMartin Matuska.Pq both Sy xattrdir Ns = Ns Sy dir No and Sy xattr Ns = Ns Sy sa 990c03c5b1cSMartin Matuskaare guaranteed to be durable if either the dataset had 991c03c5b1cSMartin Matuska.Sy sync Ns = Ns Sy always 992c03c5b1cSMartin Matuskaset at the time the changes were made, or 993c03c5b1cSMartin Matuska.Xr sync 2 994c03c5b1cSMartin Matuskais called on the dataset after the changes were made. 995c03c5b1cSMartin Matuska.Pp 996c03c5b1cSMartin MatuskaThis feature becomes 997c03c5b1cSMartin Matuska.Sy active 998c03c5b1cSMartin Matuskawhen a ZIL is created for at least one dataset and will be returned to the 999c03c5b1cSMartin Matuska.Sy enabled 1000c03c5b1cSMartin Matuskastate when it is destroyed for all datasets that use this feature. 1001c03c5b1cSMartin Matuska. 10023ff01b23SMartin Matuska.feature com.delphix zpool_checkpoint yes 10033ff01b23SMartin MatuskaThis feature enables the 10043ff01b23SMartin Matuska.Nm zpool Cm checkpoint 10053ff01b23SMartin Matuskacommand that can checkpoint the state of the pool 10063ff01b23SMartin Matuskaat the time it was issued and later rewind back to it or discard it. 10073ff01b23SMartin Matuska.Pp 10083ff01b23SMartin MatuskaThis feature becomes 10093ff01b23SMartin Matuska.Sy active 10103ff01b23SMartin Matuskawhen the 10113ff01b23SMartin Matuska.Nm zpool Cm checkpoint 10123ff01b23SMartin Matuskacommand is used to checkpoint the pool. 10133ff01b23SMartin MatuskaThe feature will only return back to being 10143ff01b23SMartin Matuska.Sy enabled 10153ff01b23SMartin Matuskawhen the pool is rewound or the checkpoint has been discarded. 10163ff01b23SMartin Matuska. 10173ff01b23SMartin Matuska.feature org.freebsd zstd_compress no extensible_dataset 10183ff01b23SMartin Matuska.Sy zstd 10193ff01b23SMartin Matuskais a high-performance compression algorithm that features a 10203ff01b23SMartin Matuskacombination of high compression ratios and high speed. 10213ff01b23SMartin MatuskaCompared to 10223ff01b23SMartin Matuska.Sy gzip , 10233ff01b23SMartin Matuska.Sy zstd 10243ff01b23SMartin Matuskaoffers slightly better compression at much higher speeds. 10253ff01b23SMartin MatuskaCompared to 10263ff01b23SMartin Matuska.Sy lz4 , 10273ff01b23SMartin Matuska.Sy zstd 10283ff01b23SMartin Matuskaoffers much better compression while being only modestly slower. 10293ff01b23SMartin MatuskaTypically, 10303ff01b23SMartin Matuska.Sy zstd 10313ff01b23SMartin Matuskacompression speed ranges from 250 to 500 MB/s per thread 10323ff01b23SMartin Matuskaand decompression speed is over 1 GB/s per thread. 10333ff01b23SMartin Matuska.Pp 10343ff01b23SMartin MatuskaWhen the 10353ff01b23SMartin Matuska.Sy zstd 10363ff01b23SMartin Matuskafeature is set to 10373ff01b23SMartin Matuska.Sy enabled , 10383ff01b23SMartin Matuskathe administrator can turn on 10393ff01b23SMartin Matuska.Sy zstd 10403ff01b23SMartin Matuskacompression of any dataset using 10413ff01b23SMartin Matuska.Nm zfs Cm set Sy compress Ns = Ns Sy zstd Ar dset 10423ff01b23SMartin Matuska.Po see Xr zfs-set 8 Pc . 10433ff01b23SMartin MatuskaThis feature becomes 10443ff01b23SMartin Matuska.Sy active 10453ff01b23SMartin Matuskaonce a 10463ff01b23SMartin Matuska.Sy compress 10473ff01b23SMartin Matuskaproperty has been set to 10483ff01b23SMartin Matuska.Sy zstd , 10493ff01b23SMartin Matuskaand will return to being 10503ff01b23SMartin Matuska.Sy enabled 10513ff01b23SMartin Matuskaonce all filesystems that have ever had their 10523ff01b23SMartin Matuska.Sy compress 10533ff01b23SMartin Matuskaproperty set to 10543ff01b23SMartin Matuska.Sy zstd 10553ff01b23SMartin Matuskaare destroyed. 10563ff01b23SMartin Matuska.El 10573ff01b23SMartin Matuska. 10583ff01b23SMartin Matuska.Sh SEE ALSO 1059a0b956f5SMartin Matuska.Xr zfs 8 , 10603ff01b23SMartin Matuska.Xr zpool 8 1061