]>
Commit | Line | Data |
---|---|---|
9ae529ec | 1 | '\" te |
d2734cce | 2 | .\" Copyright (c) 2013, 2017 by Delphix. All rights reserved. |
9759c60f | 3 | .\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved. |
788eb90c | 4 | .\" Copyright (c) 2014, Joyent, Inc. All rights reserved. |
9ae529ec CS |
5 | .\" The contents of this file are subject to the terms of the Common Development |
6 | .\" and Distribution License (the "License"). You may not use this file except | |
7 | .\" in compliance with the License. You can obtain a copy of the license at | |
8 | .\" usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. | |
9 | .\" | |
10 | .\" See the License for the specific language governing permissions and | |
11 | .\" limitations under the License. When distributing Covered Code, include this | |
12 | .\" CDDL HEADER in each file and include the License file at | |
13 | .\" usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this | |
14 | .\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your | |
15 | .\" own identifying information: | |
16 | .\" Portions Copyright [yyyy] [name of copyright owner] | |
5fadb7fb | 17 | .TH ZPOOL-FEATURES 5 "Jun 8, 2018" |
9ae529ec CS |
18 | .SH NAME |
19 | zpool\-features \- ZFS pool feature descriptions | |
20 | .SH DESCRIPTION | |
21 | .sp | |
22 | .LP | |
23 | ZFS pool on\-disk format versions are specified via "features" which replace | |
24 | the old on\-disk format numbers (the last supported on\-disk format number is | |
b9b24bb4 | 25 | 28). To enable a feature on a pool use the \fBupgrade\fR subcommand of the |
9042ca0e | 26 | zpool(8) command, or set the \fBfeature@\fR\fIfeature_name\fR property |
b9b24bb4 | 27 | to \fBenabled\fR. |
9ae529ec CS |
28 | .sp |
29 | .LP | |
30 | The pool format does not affect file system version compatibility or the ability | |
31 | to send file systems between pools. | |
32 | .sp | |
33 | .LP | |
34 | Since most features can be enabled independently of each other the on\-disk | |
35 | format of the pool is specified by the set of all features marked as | |
36 | \fBactive\fR on the pool. If the pool was created by another software version | |
37 | this set may include unsupported features. | |
38 | .SS "Identifying features" | |
39 | .sp | |
40 | .LP | |
393363c5 RL |
41 | Every feature has a GUID of the form \fIcom.example:feature_name\fR. The |
42 | reverse DNS name ensures that the feature's GUID is unique across all ZFS | |
9ae529ec | 43 | implementations. When unsupported features are encountered on a pool they will |
393363c5 | 44 | be identified by their GUIDs. Refer to the documentation for the ZFS |
9ae529ec CS |
45 | implementation that created the pool for information about those features. |
46 | .sp | |
47 | .LP | |
48 | Each supported feature also has a short name. By convention a feature's short | |
393363c5 | 49 | name is the portion of its GUID which follows the ':' (e.g. |
9ae529ec CS |
50 | \fIcom.example:feature_name\fR would have the short name \fIfeature_name\fR), |
51 | however a feature's short name may differ across ZFS implementations if | |
52 | following the convention would result in name conflicts. | |
53 | .SS "Feature states" | |
54 | .sp | |
55 | .LP | |
56 | Features can be in one of three states: | |
57 | .sp | |
58 | .ne 2 | |
59 | .na | |
0531c83c | 60 | \fBactive\fR |
9ae529ec CS |
61 | .ad |
62 | .RS 12n | |
63 | This feature's on\-disk format changes are in effect on the pool. Support for | |
64 | this feature is required to import the pool in read\-write mode. If this | |
65 | feature is not read-only compatible, support is also required to import the pool | |
66 | in read\-only mode (see "Read\-only compatibility"). | |
67 | .RE | |
68 | ||
69 | .sp | |
70 | .ne 2 | |
71 | .na | |
0531c83c | 72 | \fBenabled\fR |
9ae529ec CS |
73 | .ad |
74 | .RS 12n | |
75 | An administrator has marked this feature as enabled on the pool, but the | |
76 | feature's on\-disk format changes have not been made yet. The pool can still be | |
77 | imported by software that does not support this feature, but changes may be made | |
78 | to the on\-disk format at any time which will move the feature to the | |
79 | \fBactive\fR state. Some features may support returning to the \fBenabled\fR | |
80 | state after becoming \fBactive\fR. See feature\-specific documentation for | |
81 | details. | |
82 | .RE | |
83 | ||
84 | .sp | |
85 | .ne 2 | |
86 | .na | |
87 | \fBdisabled\fR | |
88 | .ad | |
89 | .RS 12n | |
90 | This feature's on\-disk format changes have not been made and will not be made | |
91 | unless an administrator moves the feature to the \fBenabled\fR state. Features | |
92 | cannot be disabled once they have been enabled. | |
93 | .RE | |
94 | ||
95 | .sp | |
96 | .LP | |
97 | The state of supported features is exposed through pool properties of the form | |
98 | \fIfeature@short_name\fR. | |
99 | .SS "Read\-only compatibility" | |
100 | .sp | |
101 | .LP | |
102 | Some features may make on\-disk format changes that do not interfere with other | |
103 | software's ability to read from the pool. These features are referred to as | |
104 | "read\-only compatible". If all unsupported features on a pool are read\-only | |
105 | compatible, the pool can be imported in read\-only mode by setting the | |
9042ca0e | 106 | \fBreadonly\fR property during import (see zpool(8) for details on |
9ae529ec CS |
107 | importing pools). |
108 | .SS "Unsupported features" | |
109 | .sp | |
110 | .LP | |
111 | For each unsupported feature enabled on an imported pool a pool property | |
393363c5 | 112 | named \fIunsupported@feature_name\fR will indicate why the import was allowed |
9ae529ec CS |
113 | despite the unsupported feature. Possible values for this property are: |
114 | ||
115 | .sp | |
116 | .ne 2 | |
117 | .na | |
0531c83c | 118 | \fBinactive\fR |
9ae529ec CS |
119 | .ad |
120 | .RS 12n | |
121 | The feature is in the \fBenabled\fR state and therefore the pool's on\-disk | |
122 | format is still compatible with software that does not support this feature. | |
123 | .RE | |
124 | ||
125 | .sp | |
126 | .ne 2 | |
127 | .na | |
0531c83c | 128 | \fBreadonly\fR |
9ae529ec CS |
129 | .ad |
130 | .RS 12n | |
131 | The feature is read\-only compatible and the pool has been imported in | |
132 | read\-only mode. | |
133 | .RE | |
134 | ||
135 | .SS "Feature dependencies" | |
136 | .sp | |
137 | .LP | |
138 | Some features depend on other features being enabled in order to function | |
139 | properly. Enabling a feature will automatically enable any features it | |
140 | depends on. | |
141 | .SH FEATURES | |
142 | .sp | |
143 | .LP | |
144 | The following features are supported on this system: | |
a5a6d82d RL |
145 | |
146 | .sp | |
147 | .ne 2 | |
148 | .na | |
0531c83c | 149 | \fBallocation_classes\fR |
a5a6d82d RL |
150 | .ad |
151 | .RS 4n | |
152 | .TS | |
153 | l l . | |
154 | GUID org.zfsonlinux:allocation_classes | |
155 | READ\-ONLY COMPATIBLE yes | |
156 | DEPENDENCIES none | |
157 | .TE | |
158 | ||
159 | This feature enables support for separate allocation classes. | |
160 | ||
161 | This feature becomes \fBactive\fR when a dedicated allocation class vdev | |
162 | (dedup or special) is created with the \fBzpool create\fR or \fBzpool add\fR | |
163 | subcommands. With device removal, it can be returned to the \fBenabled\fR | |
164 | state if all the dedicated allocation class vdevs are removed. | |
165 | .RE | |
166 | ||
9ae529ec CS |
167 | .sp |
168 | .ne 2 | |
169 | .na | |
0531c83c | 170 | \fBasync_destroy\fR |
9ae529ec CS |
171 | .ad |
172 | .RS 4n | |
173 | .TS | |
174 | l l . | |
175 | GUID com.delphix:async_destroy | |
176 | READ\-ONLY COMPATIBLE yes | |
177 | DEPENDENCIES none | |
178 | .TE | |
179 | ||
180 | Destroying a file system requires traversing all of its data in order to | |
181 | return its used space to the pool. Without \fBasync_destroy\fR the file system | |
182 | is not fully removed until all space has been reclaimed. If the destroy | |
183 | operation is interrupted by a reboot or power outage the next attempt to open | |
184 | the pool will need to complete the destroy operation synchronously. | |
185 | ||
186 | When \fBasync_destroy\fR is enabled the file system's data will be reclaimed | |
187 | by a background process, allowing the destroy operation to complete without | |
188 | traversing the entire file system. The background process is able to resume | |
189 | interrupted destroys after the pool has been opened, eliminating the need | |
190 | to finish interrupted destroys as part of the open operation. The amount | |
191 | of space remaining to be reclaimed by the background process is available | |
192 | through the \fBfreeing\fR property. | |
193 | ||
194 | This feature is only \fBactive\fR while \fBfreeing\fR is non\-zero. | |
195 | .RE | |
753c3839 MA |
196 | |
197 | .sp | |
198 | .ne 2 | |
199 | .na | |
0531c83c | 200 | \fBbookmarks\fR |
753c3839 MA |
201 | .ad |
202 | .RS 4n | |
203 | .TS | |
204 | l l . | |
a5a6d82d | 205 | GUID com.delphix:bookmarks |
753c3839 | 206 | READ\-ONLY COMPATIBLE yes |
a5a6d82d | 207 | DEPENDENCIES extensible_dataset |
753c3839 MA |
208 | .TE |
209 | ||
a5a6d82d | 210 | This feature enables use of the \fBzfs bookmark\fR subcommand. |
753c3839 | 211 | |
a5a6d82d RL |
212 | This feature is \fBactive\fR while any bookmarks exist in the pool. |
213 | All bookmarks in the pool can be listed by running | |
214 | \fBzfs list -t bookmark -r \fIpoolname\fR\fR. | |
215 | .RE | |
753c3839 | 216 | |
a5a6d82d RL |
217 | .sp |
218 | .ne 2 | |
219 | .na | |
0531c83c | 220 | \fBbookmark_v2\fR |
a5a6d82d RL |
221 | .ad |
222 | .RS 4n | |
223 | .TS | |
224 | l l . | |
225 | GUID com.datto:bookmark_v2 | |
226 | READ\-ONLY COMPATIBLE no | |
227 | DEPENDENCIES bookmark, extensible_dataset | |
228 | .TE | |
229 | ||
230 | This feature enables the creation and management of larger bookmarks which are | |
231 | needed for other features in ZFS. | |
232 | ||
233 | This feature becomes \fBactive\fR when a v2 bookmark is created and will be | |
234 | returned to the \fBenabled\fR state when all v2 bookmarks are destroyed. | |
753c3839 MA |
235 | .RE |
236 | ||
788eb90c JJ |
237 | .sp |
238 | .ne 2 | |
239 | .na | |
0531c83c | 240 | \fBdevice_removal\fR |
788eb90c JJ |
241 | .ad |
242 | .RS 4n | |
243 | .TS | |
244 | l l . | |
a5a6d82d RL |
245 | GUID com.delphix:device_removal |
246 | READ\-ONLY COMPATIBLE no | |
247 | DEPENDENCIES none | |
248 | .TE | |
249 | ||
250 | This feature enables the \fBzpool remove\fR subcommand to remove top-level | |
251 | vdevs, evacuating them to reduce the total size of the pool. | |
252 | ||
253 | This feature becomes \fBactive\fR when the \fBzpool remove\fR subcommand is used | |
254 | on a top-level vdev, and will never return to being \fBenabled\fR. | |
255 | .RE | |
256 | ||
257 | .sp | |
258 | .ne 2 | |
259 | .na | |
0531c83c | 260 | \fBedonr\fR |
a5a6d82d RL |
261 | .ad |
262 | .RS 4n | |
263 | .TS | |
264 | l l . | |
265 | GUID org.illumos:edonr | |
266 | READ\-ONLY COMPATIBLE no | |
788eb90c JJ |
267 | DEPENDENCIES extensible_dataset |
268 | .TE | |
269 | ||
a5a6d82d RL |
270 | This feature enables the use of the Edon-R hash algorithm for checksum, |
271 | including for nopwrite (if compression is also enabled, an overwrite of | |
272 | a block whose checksum matches the data being written will be ignored). | |
273 | In an abundance of caution, Edon-R requires verification when used with | |
274 | dedup: \fBzfs set dedup=edonr,verify\fR. See \fBzfs\fR(8). | |
788eb90c | 275 | |
a5a6d82d RL |
276 | Edon-R is a very high-performance hash algorithm that was part |
277 | of the NIST SHA-3 competition. It provides extremely high hash | |
278 | performance (over 350% faster than SHA-256), but was not selected | |
279 | because of its unsuitability as a general purpose secure hash algorithm. | |
280 | This implementation utilizes the new salted checksumming functionality | |
281 | in ZFS, which means that the checksum is pre-seeded with a secret | |
282 | 256-bit random key (stored on the pool) before being fed the data block | |
283 | to be checksummed. Thus the produced checksums are unique to a given | |
284 | pool. | |
285 | ||
286 | When the \fBedonr\fR feature is set to \fBenabled\fR, the administrator | |
287 | can turn on the \fBedonr\fR checksum on any dataset using the | |
288 | \fBzfs set checksum=edonr\fR. See zfs(8). This feature becomes | |
289 | \fBactive\fR once a \fBchecksum\fR property has been set to \fBedonr\fR, | |
290 | and will return to being \fBenabled\fR once all filesystems that have | |
291 | ever had their checksum set to \fBedonr\fR are destroyed. | |
292 | ||
293 | The \fBedonr\fR feature is not supported by GRUB and must not be used on | |
294 | the pool if GRUB needs to access the pool (e.g. for /boot). | |
788eb90c JJ |
295 | .RE |
296 | ||
9759c60f ED |
297 | .sp |
298 | .ne 2 | |
299 | .na | |
0531c83c | 300 | \fBembedded_data\fR |
9759c60f ED |
301 | .ad |
302 | .RS 4n | |
303 | .TS | |
304 | l l . | |
a5a6d82d | 305 | GUID com.delphix:embedded_data |
9759c60f ED |
306 | READ\-ONLY COMPATIBLE no |
307 | DEPENDENCIES none | |
308 | .TE | |
309 | ||
a5a6d82d RL |
310 | This feature improves the performance and compression ratio of |
311 | highly-compressible blocks. Blocks whose contents can compress to 112 bytes | |
312 | or smaller can take advantage of this feature. | |
5fadb7fb | 313 | |
a5a6d82d RL |
314 | When this feature is enabled, the contents of highly-compressible blocks are |
315 | stored in the block "pointer" itself (a misnomer in this case, as it contains | |
316 | the compressed data, rather than a pointer to its location on disk). Thus | |
317 | the space of the block (one sector, typically 512 bytes or 4KB) is saved, | |
318 | and no additional i/o is needed to read and write the data block. | |
62bdd5eb DL |
319 | |
320 | This feature becomes \fBactive\fR as soon as it is enabled and will | |
a5a6d82d | 321 | never return to being \fBenabled\fR. |
93cf2076 GW |
322 | .RE |
323 | ||
324 | .sp | |
325 | .ne 2 | |
326 | .na | |
0531c83c | 327 | \fBempty_bpobj\fR |
93cf2076 GW |
328 | .ad |
329 | .RS 4n | |
330 | .TS | |
331 | l l . | |
a5a6d82d | 332 | GUID com.delphix:empty_bpobj |
93cf2076 GW |
333 | READ\-ONLY COMPATIBLE yes |
334 | DEPENDENCIES none | |
335 | .TE | |
336 | ||
a5a6d82d RL |
337 | This feature increases the performance of creating and using a large |
338 | number of snapshots of a single filesystem or volume, and also reduces | |
339 | the disk space required. | |
340 | ||
341 | When there are many snapshots, each snapshot uses many Block Pointer | |
342 | Objects (bpobj's) to track blocks associated with that snapshot. | |
343 | However, in common use cases, most of these bpobj's are empty. This | |
344 | feature allows us to create each bpobj on-demand, thus eliminating the | |
345 | empty bpobjs. | |
346 | ||
347 | This feature is \fBactive\fR while there are any filesystems, volumes, | |
348 | or snapshots which were created after enabling this feature. | |
9759c60f ED |
349 | .RE |
350 | ||
42db43e9 GDN |
351 | .sp |
352 | .ne 2 | |
353 | .na | |
0531c83c | 354 | \fBenabled_txg\fR |
42db43e9 GDN |
355 | .ad |
356 | .RS 4n | |
357 | .TS | |
358 | l l . | |
a5a6d82d RL |
359 | GUID com.delphix:enabled_txg |
360 | READ\-ONLY COMPATIBLE yes | |
4d256e89 | 361 | DEPENDENCIES none |
42db43e9 GDN |
362 | .TE |
363 | ||
a5a6d82d RL |
364 | Once this feature is enabled ZFS records the transaction group number |
365 | in which new features are enabled. This has no user-visible impact, | |
366 | but other features may depend on this feature. | |
42db43e9 | 367 | |
a5a6d82d RL |
368 | This feature becomes \fBactive\fR as soon as it is enabled and will |
369 | never return to being \fBenabled\fB. | |
42db43e9 GDN |
370 | .RE |
371 | ||
fa86b5db MA |
372 | .sp |
373 | .ne 2 | |
374 | .na | |
0531c83c | 375 | \fBencryption\fR |
fa86b5db MA |
376 | .ad |
377 | .RS 4n | |
378 | .TS | |
379 | l l . | |
a5a6d82d | 380 | GUID com.datto:encryption |
fa86b5db | 381 | READ\-ONLY COMPATIBLE no |
a5a6d82d | 382 | DEPENDENCIES bookmark_v2, extensible_dataset |
fa86b5db MA |
383 | .TE |
384 | ||
a5a6d82d | 385 | This feature enables the creation and management of natively encrypted datasets. |
fa86b5db | 386 | |
a5a6d82d RL |
387 | This feature becomes \fBactive\fR when an encrypted dataset is created and will |
388 | be returned to the \fBenabled\fR state when all datasets that use this feature | |
389 | are destroyed. | |
fa86b5db MA |
390 | .RE |
391 | ||
da536844 MA |
392 | .sp |
393 | .ne 2 | |
394 | .na | |
0531c83c | 395 | \fBextensible_dataset\fR |
da536844 MA |
396 | .ad |
397 | .RS 4n | |
398 | .TS | |
399 | l l . | |
a5a6d82d RL |
400 | GUID com.delphix:extensible_dataset |
401 | READ\-ONLY COMPATIBLE no | |
402 | DEPENDENCIES none | |
da536844 MA |
403 | .TE |
404 | ||
a5a6d82d RL |
405 | This feature allows more flexible use of internal ZFS data structures, |
406 | and exists for other features to depend on. | |
da536844 | 407 | |
a5a6d82d RL |
408 | This feature will be \fBactive\fR when the first dependent feature uses it, |
409 | and will be returned to the \fBenabled\fR state when all datasets that use | |
410 | this feature are destroyed. | |
da536844 MA |
411 | .RE |
412 | ||
b0bc7a84 MG |
413 | .sp |
414 | .ne 2 | |
415 | .na | |
0531c83c | 416 | \fBfilesystem_limits\fR |
b0bc7a84 MG |
417 | .ad |
418 | .RS 4n | |
419 | .TS | |
420 | l l . | |
a5a6d82d | 421 | GUID com.joyent:filesystem_limits |
b0bc7a84 | 422 | READ\-ONLY COMPATIBLE yes |
a5a6d82d | 423 | DEPENDENCIES extensible_dataset |
b0bc7a84 MG |
424 | .TE |
425 | ||
a5a6d82d RL |
426 | This feature enables filesystem and snapshot limits. These limits can be used |
427 | to control how many filesystems and/or snapshots can be created at the point in | |
428 | the tree on which the limits are set. | |
b0bc7a84 | 429 | |
a5a6d82d RL |
430 | This feature is \fBactive\fR once either of the limit properties has been |
431 | set on a dataset. Once activated the feature is never deactivated. | |
b0bc7a84 MG |
432 | .RE |
433 | ||
434 | .sp | |
435 | .ne 2 | |
436 | .na | |
0531c83c | 437 | \fBhole_birth\fR |
b0bc7a84 MG |
438 | .ad |
439 | .RS 4n | |
440 | .TS | |
441 | l l . | |
442 | GUID com.delphix:hole_birth | |
443 | READ\-ONLY COMPATIBLE no | |
444 | DEPENDENCIES enabled_txg | |
445 | .TE | |
446 | ||
063edd7f RL |
447 | This feature has/had bugs, the result of which is that, if you do a |
448 | \fBzfs send -i\fR (or \fB-R\fR, since it uses \fB-i\fR) from an affected | |
449 | dataset, the receiver will not see any checksum or other errors, but the | |
450 | resulting destination snapshot will not match the source. Its use by | |
451 | \fBzfs send -i\fR has been disabled by default. See the | |
452 | \fBsend_holes_without_birth_time\fR module parameter in | |
453 | zfs-module-parameters(5). | |
454 | ||
9042ca0e | 455 | This feature improves performance of incremental sends (\fBzfs send -i\fR) |
b0bc7a84 MG |
456 | and receives for objects with many holes. The most common case of |
457 | hole-filled objects is zvols. | |
458 | ||
459 | An incremental send stream from snapshot \fBA\fR to snapshot \fBB\fR | |
460 | contains information about every block that changed between \fBA\fR and | |
461 | \fBB\fR. Blocks which did not change between those snapshots can be | |
462 | identified and omitted from the stream using a piece of metadata called | |
463 | the 'block birth time', but birth times are not recorded for holes (blocks | |
464 | filled only with zeroes). Since holes created after \fBA\fR cannot be | |
465 | distinguished from holes created before \fBA\fR, information about every | |
466 | hole in the entire filesystem or zvol is included in the send stream. | |
467 | ||
468 | For workloads where holes are rare this is not a problem. However, when | |
469 | incrementally replicating filesystems or zvols with many holes (for | |
470 | example a zvol formatted with another filesystem) a lot of time will | |
471 | be spent sending and receiving unnecessary information about holes that | |
472 | already exist on the receiving side. | |
473 | ||
474 | Once the \fBhole_birth\fR feature has been enabled the block birth times | |
475 | of all new holes will be recorded. Incremental sends between snapshots | |
476 | created after this feature is enabled will use this new metadata to avoid | |
477 | sending information about holes that already exist on the receiving side. | |
478 | ||
479 | This feature becomes \fBactive\fR as soon as it is enabled and will | |
480 | never return to being \fBenabled\fB. | |
b0bc7a84 MG |
481 | .RE |
482 | ||
9b67f605 MA |
483 | .sp |
484 | .ne 2 | |
485 | .na | |
0531c83c | 486 | \fBlarge_blocks\fR |
9b67f605 MA |
487 | .ad |
488 | .RS 4n | |
489 | .TS | |
490 | l l . | |
a5a6d82d | 491 | GUID org.open-zfs:large_blocks |
9b67f605 | 492 | READ\-ONLY COMPATIBLE no |
a5a6d82d | 493 | DEPENDENCIES extensible_dataset |
9b67f605 MA |
494 | .TE |
495 | ||
a5a6d82d RL |
496 | The \fBlarge_block\fR feature allows the record size on a dataset to be |
497 | set larger than 128KB. | |
9b67f605 | 498 | |
a5a6d82d RL |
499 | This feature becomes \fBactive\fR once a dataset contains a file with |
500 | a block size larger than 128KB, and will return to being \fBenabled\fR once all | |
501 | filesystems that have ever had their recordsize larger than 128KB are destroyed. | |
9b67f605 | 502 | .RE |
6f077801 | 503 | |
a1d477c2 MA |
504 | .sp |
505 | .ne 2 | |
506 | .na | |
0531c83c | 507 | \fBlarge_dnode\fR |
a1d477c2 MA |
508 | .ad |
509 | .RS 4n | |
510 | .TS | |
511 | l l . | |
a5a6d82d | 512 | GUID org.zfsonlinux:large_dnode |
a1d477c2 | 513 | READ\-ONLY COMPATIBLE no |
a5a6d82d | 514 | DEPENDENCIES extensible_dataset |
a1d477c2 MA |
515 | .TE |
516 | ||
a5a6d82d RL |
517 | The \fBlarge_dnode\fR feature allows the size of dnodes in a dataset to be |
518 | set larger than 512B. | |
a1d477c2 | 519 | |
a5a6d82d RL |
520 | This feature becomes \fBactive\fR once a dataset contains an object with |
521 | a dnode larger than 512B, which occurs as a result of setting the | |
522 | \fBdnodesize\fR dataset property to a value other than \fBlegacy\fR. The | |
523 | feature will return to being \fBenabled\fR once all filesystems that | |
524 | have ever contained a dnode larger than 512B are destroyed. Large dnodes | |
525 | allow more data to be stored in the bonus buffer, thus potentially | |
526 | improving performance by avoiding the use of spill blocks. | |
a1d477c2 | 527 | .RE |
6f077801 | 528 | |
a1d477c2 MA |
529 | .sp |
530 | .ne 2 | |
531 | .na | |
0531c83c | 532 | \fBlz4_compress\fR |
a1d477c2 MA |
533 | .ad |
534 | .RS 4n | |
535 | .TS | |
536 | l l . | |
a5a6d82d RL |
537 | GUID org.illumos:lz4_compress |
538 | READ\-ONLY COMPATIBLE no | |
539 | DEPENDENCIES none | |
a1d477c2 | 540 | .TE |
b0bc7a84 | 541 | |
a5a6d82d RL |
542 | \fBlz4\fR is a high-performance real-time compression algorithm that |
543 | features significantly faster compression and decompression as well as a | |
544 | higher compression ratio than the older \fBlzjb\fR compression. | |
545 | Typically, \fBlz4\fR compression is approximately 50% faster on | |
546 | compressible data and 200% faster on incompressible data than | |
547 | \fBlzjb\fR. It is also approximately 80% faster on decompression, while | |
548 | giving approximately 10% better compression ratio. | |
a1d477c2 | 549 | |
a5a6d82d RL |
550 | When the \fBlz4_compress\fR feature is set to \fBenabled\fR, the |
551 | administrator can turn on \fBlz4\fR compression on any dataset on the | |
552 | pool using the zfs(8) command. Please note that doing so will | |
553 | immediately activate the \fBlz4_compress\fR feature on the underlying | |
554 | pool using the zfs(8) command. Also, all newly written metadata | |
555 | will be compressed with \fBlz4\fR algorithm. Since this feature is not | |
556 | read-only compatible, this operation will render the pool unimportable | |
557 | on systems without support for the \fBlz4_compress\fR feature. | |
558 | ||
559 | Booting off of \fBlz4\fR-compressed root pools is supported. | |
560 | ||
561 | This feature becomes \fBactive\fR as soon as it is enabled and will | |
562 | never return to being \fBenabled\fB. | |
a1d477c2 | 563 | .RE |
6f077801 | 564 | |
f1512ee6 MA |
565 | .sp |
566 | .ne 2 | |
567 | .na | |
0531c83c | 568 | \fBmulti_vdev_crash_dump\fR |
d2734cce SD |
569 | .ad |
570 | .RS 4n | |
571 | .TS | |
572 | l l . | |
a5a6d82d RL |
573 | GUID com.joyent:multi_vdev_crash_dump |
574 | READ\-ONLY COMPATIBLE no | |
d2734cce SD |
575 | DEPENDENCIES none |
576 | .TE | |
577 | ||
a5a6d82d RL |
578 | This feature allows a dump device to be configured with a pool comprised |
579 | of multiple vdevs. Those vdevs may be arranged in any mirrored or raidz | |
580 | configuration. | |
d2734cce | 581 | |
a5a6d82d RL |
582 | When the \fBmulti_vdev_crash_dump\fR feature is set to \fBenabled\fR, |
583 | the administrator can use the \fBdumpadm\fR(1M) command to configure a | |
584 | dump device on a pool comprised of multiple vdevs. | |
585 | ||
586 | Under Linux this feature is registered for compatibility but not used. | |
587 | New pools created under Linux will have the feature \fBenabled\fR but | |
588 | will never transition to \fB\fBactive\fR. This functionality is not | |
589 | required in order to support crash dumps under Linux. Existing pools | |
590 | where this feature is \fB\fBactive\fR can be imported. | |
4d044c4c | 591 | .RE |
6f077801 | 592 | |
4d044c4c SD |
593 | .sp |
594 | .ne 2 | |
595 | .na | |
0531c83c | 596 | \fBobsolete_counts\fR |
4d044c4c SD |
597 | .ad |
598 | .RS 4n | |
599 | .TS | |
600 | l l . | |
a5a6d82d | 601 | GUID com.delphix:obsolete_counts |
4d044c4c | 602 | READ\-ONLY COMPATIBLE yes |
a5a6d82d | 603 | DEPENDENCIES device_removal |
4d044c4c SD |
604 | .TE |
605 | ||
a5a6d82d RL |
606 | This feature is an enhancement of device_removal, which will over time |
607 | reduce the memory used to track removed devices. When indirect blocks | |
608 | are freed or remapped, we note that their part of the indirect mapping | |
609 | is "obsolete", i.e. no longer needed. | |
4d044c4c | 610 | |
a5a6d82d RL |
611 | This feature becomes \fBactive\fR when the \fBzpool remove\fR subcommand is |
612 | used on a top-level vdev, and will never return to being \fBenabled\fR. | |
3be1eb29 | 613 | .RE |
6f077801 | 614 | |
3be1eb29 TC |
615 | .sp |
616 | .ne 2 | |
617 | .na | |
0531c83c | 618 | \fBproject_quota\fR |
f1512ee6 MA |
619 | .ad |
620 | .RS 4n | |
621 | .TS | |
622 | l l . | |
a5a6d82d RL |
623 | GUID org.zfsonlinux:project_quota |
624 | READ\-ONLY COMPATIBLE yes | |
f1512ee6 MA |
625 | DEPENDENCIES extensible_dataset |
626 | .TE | |
627 | ||
a5a6d82d RL |
628 | This feature allows administrators to account the spaces and objects usage |
629 | information against the project identifier (ID). | |
f1512ee6 | 630 | |
a5a6d82d RL |
631 | The project ID is new object-based attribute. When upgrading an existing |
632 | filesystem, object without project ID attribute will be assigned a zero | |
633 | project ID. After this feature is enabled, newly created object will inherit | |
634 | its parent directory's project ID if the parent inherit flag is set (via | |
635 | \fBchattr +/-P\fR or \fBzfs project [-s|-C]\fR). Otherwise, the new object's | |
636 | project ID will be set as zero. An object's project ID can be changed at | |
637 | anytime by the owner (or privileged user) via \fBchattr -p $prjid\fR or | |
638 | \fBzfs project -p $prjid\fR. | |
639 | ||
640 | This feature will become \fBactive\fR as soon as it is enabled and will never | |
641 | return to being \fBdisabled\fR. Each filesystem will be upgraded automatically | |
642 | when remounted or when new file is created under that filesystem. The upgrade | |
643 | can also be triggered on filesystems via `zfs set version=current <pool/fs>`. | |
644 | The upgrade process runs in the background and may take a while to complete | |
645 | for the filesystems containing a large number of files. | |
f1512ee6 MA |
646 | .RE |
647 | ||
50c957f7 NB |
648 | .sp |
649 | .ne 2 | |
650 | .na | |
0531c83c | 651 | \fBresilver_defer\fR |
50c957f7 NB |
652 | .ad |
653 | .RS 4n | |
654 | .TS | |
655 | l l . | |
a5a6d82d RL |
656 | GUID com.datto:resilver_defer |
657 | READ\-ONLY COMPATIBLE yes | |
658 | DEPENDENCIES none | |
50c957f7 NB |
659 | .TE |
660 | ||
a5a6d82d RL |
661 | This feature allows zfs to postpone new resilvers if an existing one is already |
662 | in progress. Without this feature, any new resilvers will cause the currently | |
663 | running one to be immediately restarted from the beginning. | |
50c957f7 | 664 | |
a5a6d82d RL |
665 | This feature becomes \fBactive\fR once a resilver has been deferred, and |
666 | returns to being \fBenabled\fR when the deferred resilver begins. | |
50c957f7 NB |
667 | .RE |
668 | ||
1644708f RL |
669 | .sp |
670 | .ne 2 | |
671 | .na | |
0531c83c | 672 | \fBsha512\fR |
3c67d83a TH |
673 | .ad |
674 | .RS 4n | |
675 | .TS | |
676 | l l . | |
677 | GUID org.illumos:sha512 | |
678 | READ\-ONLY COMPATIBLE no | |
125a406e | 679 | DEPENDENCIES extensible_dataset |
3c67d83a TH |
680 | .TE |
681 | ||
682 | This feature enables the use of the SHA-512/256 truncated hash algorithm | |
683 | (FIPS 180-4) for checksum and dedup. The native 64-bit arithmetic of | |
684 | SHA-512 provides an approximate 50% performance boost over SHA-256 on | |
685 | 64-bit hardware and is thus a good minimum-change replacement candidate | |
686 | for systems where hash performance is important, but these systems | |
687 | cannot for whatever reason utilize the faster \fBskein\fR and | |
688 | \fBedonr\fR algorithms. | |
689 | ||
690 | When the \fBsha512\fR feature is set to \fBenabled\fR, the administrator | |
9042ca0e RL |
691 | can turn on the \fBsha512\fR checksum on any dataset using |
692 | \fBzfs set checksum=sha512\fR. See zfs(8). This feature becomes | |
3c67d83a TH |
693 | \fBactive\fR once a \fBchecksum\fR property has been set to \fBsha512\fR, |
694 | and will return to being \fBenabled\fR once all filesystems that have | |
695 | ever had their checksum set to \fBsha512\fR are destroyed. | |
696 | ||
6c0f78f8 RL |
697 | The \fBsha512\fR feature is not supported by GRUB and must not be used on |
698 | the pool if GRUB needs to access the pool (e.g. for /boot). | |
3c67d83a TH |
699 | .RE |
700 | ||
701 | .sp | |
702 | .ne 2 | |
703 | .na | |
0531c83c | 704 | \fBskein\fR |
3c67d83a TH |
705 | .ad |
706 | .RS 4n | |
707 | .TS | |
708 | l l . | |
709 | GUID org.illumos:skein | |
710 | READ\-ONLY COMPATIBLE no | |
125a406e | 711 | DEPENDENCIES extensible_dataset |
3c67d83a TH |
712 | .TE |
713 | ||
714 | This feature enables the use of the Skein hash algorithm for checksum | |
715 | and dedup. Skein is a high-performance secure hash algorithm that was a | |
716 | finalist in the NIST SHA-3 competition. It provides a very high security | |
717 | margin and high performance on 64-bit hardware (80% faster than | |
718 | SHA-256). This implementation also utilizes the new salted checksumming | |
719 | functionality in ZFS, which means that the checksum is pre-seeded with a | |
720 | secret 256-bit random key (stored on the pool) before being fed the data | |
721 | block to be checksummed. Thus the produced checksums are unique to a | |
722 | given pool, preventing hash collision attacks on systems with dedup. | |
723 | ||
724 | When the \fBskein\fR feature is set to \fBenabled\fR, the administrator | |
9042ca0e RL |
725 | can turn on the \fBskein\fR checksum on any dataset using |
726 | \fBzfs set checksum=skein\fR. See zfs(8). This feature becomes | |
3c67d83a TH |
727 | \fBactive\fR once a \fBchecksum\fR property has been set to \fBskein\fR, |
728 | and will return to being \fBenabled\fR once all filesystems that have | |
729 | ever had their checksum set to \fBskein\fR are destroyed. | |
730 | ||
6c0f78f8 RL |
731 | The \fBskein\fR feature is not supported by GRUB and must not be used on |
732 | the pool if GRUB needs to access the pool (e.g. for /boot). | |
3c67d83a TH |
733 | .RE |
734 | ||
735 | .sp | |
736 | .ne 2 | |
737 | .na | |
0531c83c | 738 | \fBspacemap_histogram\fR |
3c67d83a TH |
739 | .ad |
740 | .RS 4n | |
741 | .TS | |
742 | l l . | |
a5a6d82d RL |
743 | GUID com.delphix:spacemap_histogram |
744 | READ\-ONLY COMPATIBLE yes | |
745 | DEPENDENCIES none | |
3c67d83a TH |
746 | .TE |
747 | ||
a5a6d82d RL |
748 | This features allows ZFS to maintain more information about how free space |
749 | is organized within the pool. If this feature is \fBenabled\fR, ZFS will | |
750 | set this feature to \fBactive\fR when a new space map object is created or | |
751 | an existing space map is upgraded to the new format. Once the feature is | |
752 | \fBactive\fR, it will remain in that state until the pool is destroyed. | |
753 | .RE | |
3c67d83a | 754 | |
a5a6d82d RL |
755 | .sp |
756 | .ne 2 | |
757 | .na | |
0531c83c | 758 | \fBspacemap_v2\fR |
a5a6d82d RL |
759 | .ad |
760 | .RS 4n | |
761 | .TS | |
762 | l l . | |
763 | GUID com.delphix:spacemap_v2 | |
764 | READ\-ONLY COMPATIBLE yes | |
765 | DEPENDENCIES none | |
766 | .TE | |
3c67d83a | 767 | |
a5a6d82d RL |
768 | This feature enables the use of the new space map encoding which |
769 | consists of two words (instead of one) whenever it is advantageous. | |
770 | The new encoding allows space maps to represent large regions of | |
771 | space more efficiently on-disk while also increasing their maximum | |
772 | addressable offset. | |
3c67d83a | 773 | |
a5a6d82d RL |
774 | This feature becomes \fBactive\fR once it is \fBenabled\fR, and never |
775 | returns back to being \fBenabled\fR. | |
9ff13dbe BB |
776 | .RE |
777 | ||
1de321e6 JX |
778 | .sp |
779 | .ne 2 | |
780 | .na | |
0531c83c | 781 | \fBuserobj_accounting\fR |
1de321e6 JX |
782 | .ad |
783 | .RS 4n | |
784 | .TS | |
785 | l l . | |
786 | GUID org.zfsonlinux:userobj_accounting | |
787 | READ\-ONLY COMPATIBLE yes | |
788 | DEPENDENCIES extensible_dataset | |
789 | .TE | |
790 | ||
791 | This feature allows administrators to account the object usage information | |
792 | by user and group. | |
793 | ||
794 | This feature becomes \fBactive\fR as soon as it is enabled and will never | |
795 | return to being \fBenabled\fR. Each filesystem will be upgraded automatically | |
796 | when remounted, or when new files are created under that filesystem. | |
797 | The upgrade can also be started manually on filesystems by running | |
798 | `zfs set version=current <pool/fs>`. The upgrade process runs in the background | |
799 | and may take a while to complete for filesystems containing a large number of | |
800 | files. | |
1de321e6 JX |
801 | .RE |
802 | ||
579ce7c5 TC |
803 | .sp |
804 | .ne 2 | |
805 | .na | |
0531c83c | 806 | \fBzpool_checkpoint\fR |
cc99f275 DB |
807 | .ad |
808 | .RS 4n | |
809 | .TS | |
810 | l l . | |
a5a6d82d | 811 | GUID com.delphix:zpool_checkpoint |
cc99f275 DB |
812 | READ\-ONLY COMPATIBLE yes |
813 | DEPENDENCIES none | |
814 | .TE | |
815 | ||
a5a6d82d RL |
816 | This feature enables the \fBzpool checkpoint\fR subcommand that can |
817 | checkpoint the state of the pool at the time it was issued and later | |
818 | rewind back to it or discard it. | |
cc99f275 | 819 | |
a5a6d82d RL |
820 | This feature becomes \fBactive\fR when the \fBzpool checkpoint\fR subcommand |
821 | is used to checkpoint the pool. | |
822 | The feature will only return back to being \fBenabled\fR when the pool | |
823 | is rewound or the checkpoint has been discarded. | |
cc99f275 DB |
824 | .RE |
825 | ||
9ae529ec | 826 | .SH "SEE ALSO" |
9042ca0e | 827 | zpool(8) |