1 .\"
2 .\" CDDL HEADER START
3 .\"
4 .\" The contents of this file are subject to the terms of the
5 .\" Common Development and Distribution License (the "License").
6 .\" You may not use this file except in compliance with the License.
7 .\"
8 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 .\" or https://opensource.org/licenses/CDDL-1.0.
10 .\" See the License for the specific language governing permissions
11 .\" and limitations under the License.
12 .\"
13 .\" When distributing Covered Code, include this CDDL HEADER in each
14 .\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 .\" If applicable, add the following below this CDDL HEADER, with the
16 .\" fields enclosed by brackets "[]" replaced with your own identifying
17 .\" information: Portions Copyright [yyyy] [name of copyright owner]
18 .\"
19 .\" CDDL HEADER END
20 .\"
21 .\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved.
22 .\" Copyright 2011 Joshua M. Clulow <josh@sysmgr.org>
23 .\" Copyright (c) 2011, 2019 by Delphix. All rights reserved.
24 .\" Copyright (c) 2011, Pawel Jakub Dawidek <pjd@FreeBSD.org>
25 .\" Copyright (c) 2012, Glen Barber <gjb@FreeBSD.org>
26 .\" Copyright (c) 2012, Bryan Drewery <bdrewery@FreeBSD.org>
27 .\" Copyright (c) 2013, Steven Hartland <smh@FreeBSD.org>
28 .\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
29 .\" Copyright (c) 2014, Joyent, Inc. All rights reserved.
30 .\" Copyright (c) 2014 by Adam Stevko. All rights reserved.
31 .\" Copyright (c) 2014 Integros [integros.com]
32 .\" Copyright (c) 2016 Nexenta Systems, Inc. All Rights Reserved.
33 .\" Copyright (c) 2014, Xin LI <delphij@FreeBSD.org>
34 .\" Copyright (c) 2014-2015, The FreeBSD Foundation, All Rights Reserved.
35 .\" Copyright 2019 Richard Laager. All rights reserved.
36 .\" Copyright 2018 Nexenta Systems, Inc.
37 .\" Copyright 2019 Joyent, Inc.
38 .\" Copyright (c) 2019, Kjeld Schouten-Lebbing
39 .\" Copyright (c) 2022 Hewlett Packard Enterprise Development LP.
40 .\"
41 .Dd July 21, 2022
42 .Dt ZFSPROPS 7
43 .Os
44 .
45 .Sh NAME
46 .Nm zfsprops
47 .Nd native and user-defined properties of ZFS datasets
48 .
49 .Sh DESCRIPTION
50 Properties are divided into two types, native properties and user-defined
51 .Po or
52 .Qq user
53 .Pc
54 properties.
55 Native properties either export internal statistics or control ZFS behavior.
56 In addition, native properties are either editable or read-only.
57 User properties have no effect on ZFS behavior, but you can use them to annotate
58 datasets in a way that is meaningful in your environment.
59 For more information about user properties, see the
60 .Sx User Properties
61 section, below.
62 .
63 .Ss Native Properties
64 Every dataset has a set of properties that export statistics about the dataset
65 as well as control various behaviors.
66 Properties are inherited from the parent unless overridden by the child.
67 Some properties apply only to certain types of datasets
68 .Pq file systems, volumes, or snapshots .
69 .Pp
70 The values of numeric properties can be specified using human-readable suffixes
71 .Po for example,
72 .Sy k ,
73 .Sy KB ,
74 .Sy M ,
75 .Sy Gb ,
76 and so forth, up to
77 .Sy Z
78 for zettabyte
79 .Pc .
80 The following are all valid
81 .Pq and equal
82 specifications:
83 .Li 1536M, 1.5g, 1.50GB .
84 .Pp
85 The values of non-numeric properties are case sensitive and must be lowercase,
86 except for
87 .Sy mountpoint ,
88 .Sy sharenfs ,
89 and
90 .Sy sharesmb .
91 .Pp
92 The following native properties consist of read-only statistics about the
93 dataset.
94 These properties can be neither set, nor inherited.
95 Native properties apply to all dataset types unless otherwise noted.
96 .Bl -tag -width "usedbyrefreservation"
97 .It Sy available
98 The amount of space available to the dataset and all its children, assuming that
99 there is no other activity in the pool.
100 Because space is shared within a pool, availability can be limited by any number
101 of factors, including physical pool size, quotas, reservations, or other
102 datasets within the pool.
103 .Pp
104 This property can also be referred to by its shortened column name,
105 .Sy avail .
106 .It Sy compressratio
107 For non-snapshots, the compression ratio achieved for the
108 .Sy used
109 space of this dataset, expressed as a multiplier.
110 The
111 .Sy used
112 property includes descendant datasets, and, for clones, does not include the
113 space shared with the origin snapshot.
114 For snapshots, the
115 .Sy compressratio
116 is the same as the
117 .Sy refcompressratio
118 property.
119 Compression can be turned on by running:
120 .Nm zfs Cm set Sy compression Ns = Ns Sy on Ar dataset .
121 The default value is
122 .Sy off .
123 .It Sy createtxg
124 The transaction group (txg) in which the dataset was created.
125 Bookmarks have the same
126 .Sy createtxg
127 as the snapshot they are initially tied to.
128 This property is suitable for ordering a list of snapshots,
129 e.g. for incremental send and receive.
130 .It Sy creation
131 The time this dataset was created.
132 .It Sy clones
133 For snapshots, this property is a comma-separated list of filesystems or volumes
134 which are clones of this snapshot.
135 The clones'
136 .Sy origin
137 property is this snapshot.
138 If the
139 .Sy clones
140 property is not empty, then this snapshot can not be destroyed
141 .Po even with the
142 .Fl r
143 or
144 .Fl f
145 options
146 .Pc .
147 The roles of origin and clone can be swapped by promoting the clone with the
148 .Nm zfs Cm promote
149 command.
150 .It Sy defer_destroy
151 This property is
152 .Sy on
153 if the snapshot has been marked for deferred destroy by using the
154 .Nm zfs Cm destroy Fl d
155 command.
156 Otherwise, the property is
157 .Sy off .
158 .It Sy encryptionroot
159 For encrypted datasets, indicates where the dataset is currently inheriting its
160 encryption key from.
161 Loading or unloading a key for the
162 .Sy encryptionroot
163 will implicitly load / unload the key for any inheriting datasets (see
164 .Nm zfs Cm load-key
165 and
166 .Nm zfs Cm unload-key
167 for details).
168 Clones will always share an
169 encryption key with their origin.
170 See the
171 .Sx Encryption
172 section of
173 .Xr zfs-load-key 8
174 for details.
175 .It Sy filesystem_count
176 The total number of filesystems and volumes that exist under this location in
177 the dataset tree.
178 This value is only available when a
179 .Sy filesystem_limit
180 has been set somewhere in the tree under which the dataset resides.
181 .It Sy keystatus
182 Indicates if an encryption key is currently loaded into ZFS.
183 The possible values are
184 .Sy none ,
185 .Sy available ,
186 and
187 .Sy unavailable .
188 See
189 .Nm zfs Cm load-key
190 and
191 .Nm zfs Cm unload-key .
192 .It Sy guid
193 The 64 bit GUID of this dataset or bookmark which does not change over its
194 entire lifetime.
195 When a snapshot is sent to another pool, the received snapshot has the same
196 GUID.
197 Thus, the
198 .Sy guid
199 is suitable to identify a snapshot across pools.
200 .It Sy logicalreferenced
201 The amount of space that is
202 .Qq logically
203 accessible by this dataset.
204 See the
205 .Sy referenced
206 property.
207 The logical space ignores the effect of the
208 .Sy compression
209 and
210 .Sy copies
211 properties, giving a quantity closer to the amount of data that applications
212 see.
213 However, it does include space consumed by metadata.
214 .Pp
215 This property can also be referred to by its shortened column name,
216 .Sy lrefer .
217 .It Sy logicalused
218 The amount of space that is
219 .Qq logically
220 consumed by this dataset and all its descendents.
221 See the
222 .Sy used
223 property.
224 The logical space ignores the effect of the
225 .Sy compression
226 and
227 .Sy copies
228 properties, giving a quantity closer to the amount of data that applications
229 see.
230 However, it does include space consumed by metadata.
231 .Pp
232 This property can also be referred to by its shortened column name,
233 .Sy lused .
234 .It Sy mounted
235 For file systems, indicates whether the file system is currently mounted.
236 This property can be either
237 .Sy yes
238 or
239 .Sy no .
240 .It Sy objsetid
241 A unique identifier for this dataset within the pool.
242 Unlike the dataset's
243 .Sy guid , No the Sy objsetid
244 of a dataset is not transferred to other pools when the snapshot is copied
245 with a send/receive operation.
246 The
247 .Sy objsetid
248 can be reused (for a new dataset) after the dataset is deleted.
249 .It Sy origin
250 For cloned file systems or volumes, the snapshot from which the clone was
251 created.
252 See also the
253 .Sy clones
254 property.
255 .It Sy receive_resume_token
256 For filesystems or volumes which have saved partially-completed state from
257 .Nm zfs Cm receive Fl s ,
258 this opaque token can be provided to
259 .Nm zfs Cm send Fl t
260 to resume and complete the
261 .Nm zfs Cm receive .
262 .It Sy redact_snaps
263 For bookmarks, this is the list of snapshot guids the bookmark contains a
264 redaction
265 list for.
266 For snapshots, this is the list of snapshot guids the snapshot is redacted with
267 respect to.
268 .It Sy referenced
269 The amount of data that is accessible by this dataset, which may or may not be
270 shared with other datasets in the pool.
271 When a snapshot or clone is created, it initially references the same amount of
272 space as the file system or snapshot it was created from, since its contents are
273 identical.
274 .Pp
275 This property can also be referred to by its shortened column name,
276 .Sy refer .
277 .It Sy refcompressratio
278 The compression ratio achieved for the
279 .Sy referenced
280 space of this dataset, expressed as a multiplier.
281 See also the
282 .Sy compressratio
283 property.
284 .It Sy snapshot_count
285 The total number of snapshots that exist under this location in the dataset
286 tree.
287 This value is only available when a
288 .Sy snapshot_limit
289 has been set somewhere in the tree under which the dataset resides.
290 .It Sy type
291 The type of dataset:
292 .Sy filesystem ,
293 .Sy volume ,
294 .Sy snapshot ,
295 or
296 .Sy bookmark .
297 .It Sy used
298 The amount of space consumed by this dataset and all its descendents.
299 This is the value that is checked against this dataset's quota and reservation.
300 The space used does not include this dataset's reservation, but does take into
301 account the reservations of any descendent datasets.
302 The amount of space that a dataset consumes from its parent, as well as the
303 amount of space that is freed if this dataset is recursively destroyed, is the
304 greater of its space used and its reservation.
305 .Pp
306 The used space of a snapshot
307 .Po see the
308 .Sx Snapshots
309 section of
310 .Xr zfsconcepts 7
311 .Pc
312 is space that is referenced exclusively by this snapshot.
313 If this snapshot is destroyed, the amount of
314 .Sy used
315 space will be freed.
316 Space that is shared by multiple snapshots isn't accounted for in this metric.
317 When a snapshot is destroyed, space that was previously shared with this
318 snapshot can become unique to snapshots adjacent to it, thus changing the used
319 space of those snapshots.
320 The used space of the latest snapshot can also be affected by changes in the
321 file system.
322 Note that the
323 .Sy used
324 space of a snapshot is a subset of the
325 .Sy written
326 space of the snapshot.
327 .Pp
328 The amount of space used, available, or referenced does not take into account
329 pending changes.
330 Pending changes are generally accounted for within a few seconds.
331 Committing a change to a disk using
332 .Xr fsync 2
333 or
334 .Sy O_SYNC
335 does not necessarily guarantee that the space usage information is updated
336 immediately.
337 .It Sy usedby*
338 The
339 .Sy usedby*
340 properties decompose the
341 .Sy used
342 properties into the various reasons that space is used.
343 Specifically,
344 .Sy used No =
345 .Sy usedbychildren No +
346 .Sy usedbydataset No +
347 .Sy usedbyrefreservation No +
348 .Sy usedbysnapshots .
349 These properties are only available for datasets created on
350 .Nm zpool
351 .Qo version 13 Qc
352 pools.
353 .It Sy usedbychildren
354 The amount of space used by children of this dataset, which would be freed if
355 all the dataset's children were destroyed.
356 .It Sy usedbydataset
357 The amount of space used by this dataset itself, which would be freed if the
358 dataset were destroyed
359 .Po after first removing any
360 .Sy refreservation
361 and destroying any necessary snapshots or descendents
362 .Pc .
363 .It Sy usedbyrefreservation
364 The amount of space used by a
365 .Sy refreservation
366 set on this dataset, which would be freed if the
367 .Sy refreservation
368 was removed.
369 .It Sy usedbysnapshots
370 The amount of space consumed by snapshots of this dataset.
371 In particular, it is the amount of space that would be freed if all of this
372 dataset's snapshots were destroyed.
373 Note that this is not simply the sum of the snapshots'
374 .Sy used
375 properties because space can be shared by multiple snapshots.
376 .It Sy userused Ns @ Ns Ar user
377 The amount of space consumed by the specified user in this dataset.
378 Space is charged to the owner of each file, as displayed by
379 .Nm ls Fl l .
380 The amount of space charged is displayed by
381 .Nm du No and Nm ls Fl s .
382 See the
383 .Nm zfs Cm userspace
384 command for more information.
385 .Pp
386 Unprivileged users can access only their own space usage.
387 The root user, or a user who has been granted the
388 .Sy userused
389 privilege with
390 .Nm zfs Cm allow ,
391 can access everyone's usage.
392 .Pp
393 The
394 .Sy userused Ns @ Ns Ar …
395 properties are not displayed by
396 .Nm zfs Cm get Sy all .
397 The user's name must be appended after the
398 .Sy @
399 symbol, using one of the following forms:
400 .Bl -bullet -compact -offset 4n
401 .It
402 POSIX name
403 .Pq Qq joe
404 .It
405 POSIX numeric ID
406 .Pq Qq 789
407 .It
408 SID name
409 .Pq Qq joe.smith@mydomain
410 .It
411 SID numeric ID
412 .Pq Qq S-1-123-456-789
413 .El
414 .Pp
415 Files created on Linux always have POSIX owners.
416 .It Sy userobjused Ns @ Ns Ar user
417 The
418 .Sy userobjused
419 property is similar to
420 .Sy userused
421 but instead it counts the number of objects consumed by a user.
422 This property counts all objects allocated on behalf of the user,
423 it may differ from the results of system tools such as
424 .Nm df Fl i .
425 .Pp
426 When the property
427 .Sy xattr Ns = Ns Sy on
428 is set on a file system additional objects will be created per-file to store
429 extended attributes.
430 These additional objects are reflected in the
431 .Sy userobjused
432 value and are counted against the user's
433 .Sy userobjquota .
434 When a file system is configured to use
435 .Sy xattr Ns = Ns Sy sa
436 no additional internal objects are normally required.
437 .It Sy userrefs
438 This property is set to the number of user holds on this snapshot.
439 User holds are set by using the
440 .Nm zfs Cm hold
441 command.
442 .It Sy groupused Ns @ Ns Ar group
443 The amount of space consumed by the specified group in this dataset.
444 Space is charged to the group of each file, as displayed by
445 .Nm ls Fl l .
446 See the
447 .Sy userused Ns @ Ns Ar user
448 property for more information.
449 .Pp
450 Unprivileged users can only access their own groups' space usage.
451 The root user, or a user who has been granted the
452 .Sy groupused
453 privilege with
454 .Nm zfs Cm allow ,
455 can access all groups' usage.
456 .It Sy groupobjused Ns @ Ns Ar group
457 The number of objects consumed by the specified group in this dataset.
458 Multiple objects may be charged to the group for each file when extended
459 attributes are in use.
460 See the
461 .Sy userobjused Ns @ Ns Ar user
462 property for more information.
463 .Pp
464 Unprivileged users can only access their own groups' space usage.
465 The root user, or a user who has been granted the
466 .Sy groupobjused
467 privilege with
468 .Nm zfs Cm allow ,
469 can access all groups' usage.
470 .It Sy projectused Ns @ Ns Ar project
471 The amount of space consumed by the specified project in this dataset.
472 Project is identified via the project identifier (ID) that is object-based
473 numeral attribute.
474 An object can inherit the project ID from its parent object (if the
475 parent has the flag of inherit project ID that can be set and changed via
476 .Nm chattr Fl /+P
477 or
478 .Nm zfs project Fl s )
479 when being created.
480 The privileged user can set and change object's project
481 ID via
482 .Nm chattr Fl p
483 or
484 .Nm zfs project Fl s
485 anytime.
486 Space is charged to the project of each file, as displayed by
487 .Nm lsattr Fl p
488 or
489 .Nm zfs project .
490 See the
491 .Sy userused Ns @ Ns Ar user
492 property for more information.
493 .Pp
494 The root user, or a user who has been granted the
495 .Sy projectused
496 privilege with
497 .Nm zfs allow ,
498 can access all projects' usage.
499 .It Sy projectobjused Ns @ Ns Ar project
500 The
501 .Sy projectobjused
502 is similar to
503 .Sy projectused
504 but instead it counts the number of objects consumed by project.
505 When the property
506 .Sy xattr Ns = Ns Sy on
507 is set on a fileset, ZFS will create additional objects per-file to store
508 extended attributes.
509 These additional objects are reflected in the
510 .Sy projectobjused
511 value and are counted against the project's
512 .Sy projectobjquota .
513 When a filesystem is configured to use
514 .Sy xattr Ns = Ns Sy sa
515 no additional internal objects are required.
516 See the
517 .Sy userobjused Ns @ Ns Ar user
518 property for more information.
519 .Pp
520 The root user, or a user who has been granted the
521 .Sy projectobjused
522 privilege with
523 .Nm zfs allow ,
524 can access all projects' objects usage.
525 .It Sy snapshots_changed
526 Provides a mechanism to quickly determine whether snapshot list has
527 changed without having to mount a dataset or iterate the snapshot list.
528 Specifies the time at which a snapshot for a dataset was last
529 created or deleted.
530 .Pp
531 This allows us to be more efficient how often we query snapshots.
532 The property is persistent across mount and unmount operations only if the
533 .Sy extensible_dataset
534 feature is enabled.
535 .It Sy volblocksize
536 For volumes, specifies the block size of the volume.
537 The
538 .Sy blocksize
539 cannot be changed once the volume has been written, so it should be set at
540 volume creation time.
541 The default
542 .Sy blocksize
543 for volumes is 16 Kbytes.
544 Any power of 2 from 512 bytes to 128 Kbytes is valid.
545 .Pp
546 This property can also be referred to by its shortened column name,
547 .Sy volblock .
548 .It Sy written
549 The amount of space
550 .Sy referenced
551 by this dataset, that was written since the previous snapshot
552 .Pq i.e. that is not referenced by the previous snapshot .
553 .It Sy written Ns @ Ns Ar snapshot
554 The amount of
555 .Sy referenced
556 space written to this dataset since the specified snapshot.
557 This is the space that is referenced by this dataset but was not referenced by
558 the specified snapshot.
559 .Pp
560 The
561 .Ar snapshot
562 may be specified as a short snapshot name
563 .Pq just the part after the Sy @ ,
564 in which case it will be interpreted as a snapshot in the same filesystem as
565 this dataset.
566 The
567 .Ar snapshot
568 may be a full snapshot name
569 .Pq Ar filesystem Ns @ Ns Ar snapshot ,
570 which for clones may be a snapshot in the origin's filesystem
571 .Pq or the origin of the origin's filesystem, etc.
572 .El
573 .Pp
574 The following native properties can be used to change the behavior of a ZFS
575 dataset.
576 .Bl -tag -width ""
577 .It Xo
578 .Sy aclinherit Ns = Ns Sy discard Ns | Ns Sy noallow Ns | Ns
579 .Sy restricted Ns | Ns Sy passthrough Ns | Ns Sy passthrough-x
580 .Xc
581 Controls how ACEs are inherited when files and directories are created.
582 .Bl -tag -compact -offset 4n -width "passthrough-x"
583 .It Sy discard
584 does not inherit any ACEs.
585 .It Sy noallow
586 only inherits inheritable ACEs that specify
587 .Qq deny
588 permissions.
589 .It Sy restricted
590 default, removes the
591 .Sy write_acl
592 and
593 .Sy write_owner
594 permissions when the ACE is inherited.
595 .It Sy passthrough
596 inherits all inheritable ACEs without any modifications.
597 .It Sy passthrough-x
598 same meaning as
599 .Sy passthrough ,
600 except that the
601 .Sy owner@ , group@ , No and Sy everyone@
602 ACEs inherit the execute permission only if the file creation mode also requests
603 the execute bit.
604 .El
605 .Pp
606 When the property value is set to
607 .Sy passthrough ,
608 files are created with a mode determined by the inheritable ACEs.
609 If no inheritable ACEs exist that affect the mode, then the mode is set in
610 accordance to the requested mode from the application.
611 .Pp
612 The
613 .Sy aclinherit
614 property does not apply to POSIX ACLs.
615 .It Xo
616 .Sy aclmode Ns = Ns Sy discard Ns | Ns Sy groupmask Ns | Ns
617 .Sy passthrough Ns | Ns Sy restricted Ns
618 .Xc
619 Controls how an ACL is modified during chmod(2) and how inherited ACEs
620 are modified by the file creation mode:
621 .Bl -tag -compact -offset 4n -width "passthrough"
622 .It Sy discard
623 default, deletes all
624 .Sy ACEs
625 except for those representing
626 the mode of the file or directory requested by
627 .Xr chmod 2 .
628 .It Sy groupmask
629 reduces permissions granted in all
630 .Sy ALLOW
631 entries found in the
632 .Sy ACL
633 such that they are no greater than the group permissions specified by
634 .Xr chmod 2 .
635 .It Sy passthrough
636 indicates that no changes are made to the ACL other than creating or updating
637 the necessary ACL entries to represent the new mode of the file or directory.
638 .It Sy restricted
639 will cause the
640 .Xr chmod 2
641 operation to return an error when used on any file or directory which has
642 a non-trivial ACL whose entries can not be represented by a mode.
643 .Xr chmod 2
644 is required to change the set user ID, set group ID, or sticky bits on a file
645 or directory, as they do not have equivalent ACL entries.
646 In order to use
647 .Xr chmod 2
648 on a file or directory with a non-trivial ACL when
649 .Sy aclmode
650 is set to
651 .Sy restricted ,
652 you must first remove all ACL entries which do not represent the current mode.
653 .El
654 .It Sy acltype Ns = Ns Sy off Ns | Ns Sy nfsv4 Ns | Ns Sy posix
655 Controls whether ACLs are enabled and if so what type of ACL to use.
656 When this property is set to a type of ACL not supported by the current
657 platform, the behavior is the same as if it were set to
658 .Sy off .
659 .Bl -tag -compact -offset 4n -width "posixacl"
660 .It Sy off
661 default on Linux, when a file system has the
662 .Sy acltype
663 property set to off then ACLs are disabled.
664 .It Sy noacl
665 an alias for
666 .Sy off
667 .It Sy nfsv4
668 default on
669 .Fx ,
670 indicates that NFSv4-style ZFS ACLs should be used.
671 These ACLs can be managed with the
672 .Xr getfacl 1
673 and
674 .Xr setfacl 1 .
675 The
676 .Sy nfsv4
677 ZFS ACL type is not yet supported on Linux.
678 .It Sy posix
679 indicates POSIX ACLs should be used.
680 POSIX ACLs are specific to Linux and are not functional on other platforms.
681 POSIX ACLs are stored as an extended
682 attribute and therefore will not overwrite any existing NFSv4 ACLs which
683 may be set.
684 .It Sy posixacl
685 an alias for
686 .Sy posix
687 .El
688 .Pp
689 To obtain the best performance when setting
690 .Sy posix
691 users are strongly encouraged to set the
692 .Sy xattr Ns = Ns Sy sa
693 property.
694 This will result in the POSIX ACL being stored more efficiently on disk.
695 But as a consequence, all new extended attributes will only be
696 accessible from OpenZFS implementations which support the
697 .Sy xattr Ns = Ns Sy sa
698 property.
699 See the
700 .Sy xattr
701 property for more details.
702 .It Sy atime Ns = Ns Sy on Ns | Ns Sy off
703 Controls whether the access time for files is updated when they are read.
704 Turning this property off avoids producing write traffic when reading files and
705 can result in significant performance gains, though it might confuse mailers
706 and other similar utilities.
707 The values
708 .Sy on
709 and
710 .Sy off
711 are equivalent to the
712 .Sy atime
713 and
714 .Sy noatime
715 mount options.
716 The default value is
717 .Sy on .
718 See also
719 .Sy relatime
720 below.
721 .It Sy canmount Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy noauto
722 If this property is set to
723 .Sy off ,
724 the file system cannot be mounted, and is ignored by
725 .Nm zfs Cm mount Fl a .
726 Setting this property to
727 .Sy off
728 is similar to setting the
729 .Sy mountpoint
730 property to
731 .Sy none ,
732 except that the dataset still has a normal
733 .Sy mountpoint
734 property, which can be inherited.
735 Setting this property to
736 .Sy off
737 allows datasets to be used solely as a mechanism to inherit properties.
738 One example of setting
739 .Sy canmount Ns = Ns Sy off
740 is to have two datasets with the same
741 .Sy mountpoint ,
742 so that the children of both datasets appear in the same directory, but might
743 have different inherited characteristics.
744 .Pp
745 When set to
746 .Sy noauto ,
747 a dataset can only be mounted and unmounted explicitly.
748 The dataset is not mounted automatically when the dataset is created or
749 imported, nor is it mounted by the
750 .Nm zfs Cm mount Fl a
751 command or unmounted by the
752 .Nm zfs Cm unmount Fl a
753 command.
754 .Pp
755 This property is not inherited.
756 .It Xo
757 .Sy checksum Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy fletcher2 Ns | Ns
758 .Sy fletcher4 Ns | Ns Sy sha256 Ns | Ns Sy noparity Ns | Ns
759 .Sy sha512 Ns | Ns Sy skein Ns | Ns Sy edonr Ns | Ns Sy blake3
760 .Xc
761 Controls the checksum used to verify data integrity.
762 The default value is
763 .Sy on ,
764 which automatically selects an appropriate algorithm
765 .Po currently,
766 .Sy fletcher4 ,
767 but this may change in future releases
768 .Pc .
769 The value
770 .Sy off
771 disables integrity checking on user data.
772 The value
773 .Sy noparity
774 not only disables integrity but also disables maintaining parity for user data.
775 This setting is used internally by a dump device residing on a RAID-Z pool and
776 should not be used by any other dataset.
777 Disabling checksums is
778 .Em NOT
779 a recommended practice.
780 .Pp
781 The
782 .Sy sha512 ,
783 .Sy skein ,
784 .Sy edonr ,
785 and
786 .Sy blake3
787 checksum algorithms require enabling the appropriate features on the pool.
788 .Pp
789 Please see
790 .Xr zpool-features 7
791 for more information on these algorithms.
792 .Pp
793 Changing this property affects only newly-written data.
794 .It Xo
795 .Sy compression Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy gzip Ns | Ns
796 .Sy gzip- Ns Ar N Ns | Ns Sy lz4 Ns | Ns Sy lzjb Ns | Ns Sy zle Ns | Ns Sy zstd Ns | Ns
797 .Sy zstd- Ns Ar N Ns | Ns Sy zstd-fast Ns | Ns Sy zstd-fast- Ns Ar N
798 .Xc
799 Controls the compression algorithm used for this dataset.
800 .Pp
801 When set to
802 .Sy on
803 (the default), indicates that the current default compression algorithm should
804 be used.
805 The default balances compression and decompression speed, with compression ratio
806 and is expected to work well on a wide variety of workloads.
807 Unlike all other settings for this property,
808 .Sy on
809 does not select a fixed compression type.
810 As new compression algorithms are added to ZFS and enabled on a pool, the
811 default compression algorithm may change.
812 The current default compression algorithm is either
813 .Sy lzjb
814 or, if the
815 .Sy lz4_compress
816 feature is enabled,
817 .Sy lz4 .
818 .Pp
819 The
820 .Sy lz4
821 compression algorithm is a high-performance replacement for the
822 .Sy lzjb
823 algorithm.
824 It features significantly faster compression and decompression, as well as a
825 moderately higher compression ratio than
826 .Sy lzjb ,
827 but can only be used on pools with the
828 .Sy lz4_compress
829 feature set to
830 .Sy enabled .
831 See
832 .Xr zpool-features 7
833 for details on ZFS feature flags and the
834 .Sy lz4_compress
835 feature.
836 .Pp
837 The
838 .Sy lzjb
839 compression algorithm is optimized for performance while providing decent data
840 compression.
841 .Pp
842 The
843 .Sy gzip
844 compression algorithm uses the same compression as the
845 .Xr gzip 1
846 command.
847 You can specify the
848 .Sy gzip
849 level by using the value
850 .Sy gzip- Ns Ar N ,
851 where
852 .Ar N
853 is an integer from 1
854 .Pq fastest
855 to 9
856 .Pq best compression ratio .
857 Currently,
858 .Sy gzip
859 is equivalent to
860 .Sy gzip-6
861 .Po which is also the default for
862 .Xr gzip 1
863 .Pc .
864 .Pp
865 The
866 .Sy zstd
867 compression algorithm provides both high compression ratios and good
868 performance.
869 You can specify the
870 .Sy zstd
871 level by using the value
872 .Sy zstd- Ns Ar N ,
873 where
874 .Ar N
875 is an integer from 1
876 .Pq fastest
877 to 19
878 .Pq best compression ratio .
879 .Sy zstd
880 is equivalent to
881 .Sy zstd-3 .
882 .Pp
883 Faster speeds at the cost of the compression ratio can be requested by
884 setting a negative
885 .Sy zstd
886 level.
887 This is done using
888 .Sy zstd-fast- Ns Ar N ,
889 where
890 .Ar N
891 is an integer in
892 .Bq Sy 1 Ns - Ns Sy 10 , 20 , 30 , No … , Sy 100 , 500 , 1000
893 which maps to a negative
894 .Sy zstd
895 level.
896 The lower the level the faster the compression \(em
897 .Sy 1000
898 provides the fastest compression and lowest compression ratio.
899 .Sy zstd-fast
900 is equivalent to
901 .Sy zstd-fast- Ns Ar 1 .
902 .Pp
903 The
904 .Sy zle
905 compression algorithm compresses runs of zeros.
906 .Pp
907 This property can also be referred to by its shortened column name
908 .Sy compress .
909 Changing this property affects only newly-written data.
910 .Pp
911 When any setting except
912 .Sy off
913 is selected, compression will explicitly check for blocks consisting of only
914 zeroes (the NUL byte).
915 When a zero-filled block is detected, it is stored as
916 a hole and not compressed using the indicated compression algorithm.
917 .Pp
918 Any block being compressed must be no larger than 7/8 of its original size
919 after compression, otherwise the compression will not be considered worthwhile
920 and the block saved uncompressed.
921 Note that when the logical block is less than
922 8 times the disk sector size this effectively reduces the necessary compression
923 ratio; for example, 8 KiB blocks on disks with 4 KiB disk sectors must compress
924 to 1/2
925 or less of their original size.
926 .It Xo
927 .Sy context Ns = Ns Sy none Ns | Ns
928 .Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
929 .Xc
930 This flag sets the SELinux context for all files in the file system under
931 a mount point for that file system.
932 See
933 .Xr selinux 8
934 for more information.
935 .It Xo
936 .Sy fscontext Ns = Ns Sy none Ns | Ns
937 .Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
938 .Xc
939 This flag sets the SELinux context for the file system file system being
940 mounted.
941 See
942 .Xr selinux 8
943 for more information.
944 .It Xo
945 .Sy defcontext Ns = Ns Sy none Ns | Ns
946 .Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
947 .Xc
948 This flag sets the SELinux default context for unlabeled files.
949 See
950 .Xr selinux 8
951 for more information.
952 .It Xo
953 .Sy rootcontext Ns = Ns Sy none Ns | Ns
954 .Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
955 .Xc
956 This flag sets the SELinux context for the root inode of the file system.
957 See
958 .Xr selinux 8
959 for more information.
960 .It Sy copies Ns = Ns Sy 1 Ns | Ns Sy 2 Ns | Ns Sy 3
961 Controls the number of copies of data stored for this dataset.
962 These copies are in addition to any redundancy provided by the pool, for
963 example, mirroring or RAID-Z.
964 The copies are stored on different disks, if possible.
965 The space used by multiple copies is charged to the associated file and dataset,
966 changing the
967 .Sy used
968 property and counting against quotas and reservations.
969 .Pp
970 Changing this property only affects newly-written data.
971 Therefore, set this property at file system creation time by using the
972 .Fl o Sy copies Ns = Ns Ar N
973 option.
974 .Pp
975 Remember that ZFS will not import a pool with a missing top-level vdev.
976 Do
977 .Em NOT
978 create, for example a two-disk striped pool and set
979 .Sy copies Ns = Ns Ar 2
980 on some datasets thinking you have setup redundancy for them.
981 When a disk fails you will not be able to import the pool
982 and will have lost all of your data.
983 .Pp
984 Encrypted datasets may not have
985 .Sy copies Ns = Ns Ar 3
986 since the implementation stores some encryption metadata where the third copy
987 would normally be.
988 .It Sy devices Ns = Ns Sy on Ns | Ns Sy off
989 Controls whether device nodes can be opened on this file system.
990 The default value is
991 .Sy on .
992 The values
993 .Sy on
994 and
995 .Sy off
996 are equivalent to the
997 .Sy dev
998 and
999 .Sy nodev
1000 mount options.
1001 .It Xo
1002 .Sy dedup Ns = Ns Sy off Ns | Ns Sy on Ns | Ns Sy verify Ns | Ns
1003 .Sy sha256 Ns Oo , Ns Sy verify Oc Ns | Ns Sy sha512 Ns Oo , Ns Sy verify Oc Ns | Ns Sy skein Ns Oo , Ns Sy verify Oc Ns | Ns
1004 .Sy edonr , Ns Sy verify Ns | Ns Sy blake3 Ns Oo , Ns Sy verify Oc Ns
1005 .Xc
1006 Configures deduplication for a dataset.
1007 The default value is
1008 .Sy off .
1009 The default deduplication checksum is
1010 .Sy sha256
1011 (this may change in the future).
1012 When
1013 .Sy dedup
1014 is enabled, the checksum defined here overrides the
1015 .Sy checksum
1016 property.
1017 Setting the value to
1018 .Sy verify
1019 has the same effect as the setting
1020 .Sy sha256 , Ns Sy verify .
1021 .Pp
1022 If set to
1023 .Sy verify ,
1024 ZFS will do a byte-to-byte comparison in case of two blocks having the same
1025 signature to make sure the block contents are identical.
1026 Specifying
1027 .Sy verify
1028 is mandatory for the
1029 .Sy edonr
1030 algorithm.
1031 .Pp
1032 Unless necessary, deduplication should
1033 .Em not
1034 be enabled on a system.
1035 See the
1036 .Sx Deduplication
1037 section of
1038 .Xr zfsconcepts 7 .
1039 .It Xo
1040 .Sy dnodesize Ns = Ns Sy legacy Ns | Ns Sy auto Ns | Ns Sy 1k Ns | Ns
1041 .Sy 2k Ns | Ns Sy 4k Ns | Ns Sy 8k Ns | Ns Sy 16k
1042 .Xc
1043 Specifies a compatibility mode or literal value for the size of dnodes in the
1044 file system.
1045 The default value is
1046 .Sy legacy .
1047 Setting this property to a value other than
1048 .Sy legacy No requires the Sy large_dnode No pool feature to be enabled .
1049 .Pp
1050 Consider setting
1051 .Sy dnodesize
1052 to
1053 .Sy auto
1054 if the dataset uses the
1055 .Sy xattr Ns = Ns Sy sa
1056 property setting and the workload makes heavy use of extended attributes.
1057 This
1058 may be applicable to SELinux-enabled systems, Lustre servers, and Samba
1059 servers, for example.
1060 Literal values are supported for cases where the optimal
1061 size is known in advance and for performance testing.
1062 .Pp
1063 Leave
1064 .Sy dnodesize
1065 set to
1066 .Sy legacy
1067 if you need to receive a send stream of this dataset on a pool that doesn't
1068 enable the
1069 .Sy large_dnode
1070 feature, or if you need to import this pool on a system that doesn't support the
1071 .Sy large_dnode No feature .
1072 .Pp
1073 This property can also be referred to by its shortened column name,
1074 .Sy dnsize .
1075 .It Xo
1076 .Sy encryption Ns = Ns Sy off Ns | Ns Sy on Ns | Ns Sy aes-128-ccm Ns | Ns
1077 .Sy aes-192-ccm Ns | Ns Sy aes-256-ccm Ns | Ns Sy aes-128-gcm Ns | Ns
1078 .Sy aes-192-gcm Ns | Ns Sy aes-256-gcm
1079 .Xc
1080 Controls the encryption cipher suite (block cipher, key length, and mode) used
1081 for this dataset.
1082 Requires the
1083 .Sy encryption
1084 feature to be enabled on the pool.
1085 Requires a
1086 .Sy keyformat
1087 to be set at dataset creation time.
1088 .Pp
1089 Selecting
1090 .Sy encryption Ns = Ns Sy on
1091 when creating a dataset indicates that the default encryption suite will be
1092 selected, which is currently
1093 .Sy aes-256-gcm .
1094 In order to provide consistent data protection, encryption must be specified at
1095 dataset creation time and it cannot be changed afterwards.
1096 .Pp
1097 For more details and caveats about encryption see the
1098 .Sx Encryption
1099 section of
1100 .Xr zfs-load-key 8 .
1101 .It Sy keyformat Ns = Ns Sy raw Ns | Ns Sy hex Ns | Ns Sy passphrase
1102 Controls what format the user's encryption key will be provided as.
1103 This property is only set when the dataset is encrypted.
1104 .Pp
1105 Raw keys and hex keys must be 32 bytes long (regardless of the chosen
1106 encryption suite) and must be randomly generated.
1107 A raw key can be generated with the following command:
1108 .Dl # Nm dd Sy if=/dev/urandom bs=32 count=1 Sy of= Ns Pa /path/to/output/key
1109 .Pp
1110 Passphrases must be between 8 and 512 bytes long and will be processed through
1111 PBKDF2 before being used (see the
1112 .Sy pbkdf2iters
1113 property).
1114 Even though the encryption suite cannot be changed after dataset creation,
1115 the keyformat can be with
1116 .Nm zfs Cm change-key .
1117 .It Xo
1118 .Sy keylocation Ns = Ns Sy prompt Ns | Ns Sy file:// Ns Ar /absolute/file/path Ns | Ns Sy https:// Ns Ar address Ns | Ns Sy http:// Ns Ar address
1119 .Xc
1120 Controls where the user's encryption key will be loaded from by default for
1121 commands such as
1122 .Nm zfs Cm load-key
1123 and
1124 .Nm zfs Cm mount Fl l .
1125 This property is only set for encrypted datasets which are encryption roots.
1126 If unspecified, the default is
1127 .Sy prompt .
1128 .Pp
1129 Even though the encryption suite cannot be changed after dataset creation, the
1130 keylocation can be with either
1131 .Nm zfs Cm set
1132 or
1133 .Nm zfs Cm change-key .
1134 If
1135 .Sy prompt
1136 is selected ZFS will ask for the key at the command prompt when it is required
1137 to access the encrypted data (see
1138 .Nm zfs Cm load-key
1139 for details).
1140 This setting will also allow the key to be passed in via the standard input
1141 stream,
1142 but users should be careful not to place keys which should be kept secret on
1143 the command line.
1144 If a file URI is selected, the key will be loaded from the
1145 specified absolute file path.
1146 If an HTTPS or HTTP URL is selected, it will be GETted using
1147 .Xr fetch 3 ,
1148 libcurl, or nothing, depending on compile-time configuration and run-time
1149 availability.
1150 The
1151 .Sy SSL_CA_CERT_FILE
1152 environment variable can be set to set the location
1153 of the concatenated certificate store.
1154 The
1155 .Sy SSL_CA_CERT_PATH
1156 environment variable can be set to override the location
1157 of the directory containing the certificate authority bundle.
1158 The
1159 .Sy SSL_CLIENT_CERT_FILE
1160 and
1161 .Sy SSL_CLIENT_KEY_FILE
1162 environment variables can be set to configure the path
1163 to the client certificate and its key.
1164 .It Sy pbkdf2iters Ns = Ns Ar iterations
1165 Controls the number of PBKDF2 iterations that a
1166 .Sy passphrase
1167 encryption key should be run through when processing it into an encryption key.
1168 This property is only defined when encryption is enabled and a keyformat of
1169 .Sy passphrase
1170 is selected.
1171 The goal of PBKDF2 is to significantly increase the
1172 computational difficulty needed to brute force a user's passphrase.
1173 This is accomplished by forcing the attacker to run each passphrase through a
1174 computationally expensive hashing function many times before they arrive at the
1175 resulting key.
1176 A user who actually knows the passphrase will only have to pay this cost once.
1177 As CPUs become better at processing, this number should be
1178 raised to ensure that a brute force attack is still not possible.
1179 The current default is
1180 .Sy 350000
1181 and the minimum is
1182 .Sy 100000 .
1183 This property may be changed with
1184 .Nm zfs Cm change-key .
1185 .It Sy exec Ns = Ns Sy on Ns | Ns Sy off
1186 Controls whether processes can be executed from within this file system.
1187 The default value is
1188 .Sy on .
1189 The values
1190 .Sy on
1191 and
1192 .Sy off
1193 are equivalent to the
1194 .Sy exec
1195 and
1196 .Sy noexec
1197 mount options.
1198 .It Sy filesystem_limit Ns = Ns Ar count Ns | Ns Sy none
1199 Limits the number of filesystems and volumes that can exist under this point in
1200 the dataset tree.
1201 The limit is not enforced if the user is allowed to change the limit.
1202 Setting a
1203 .Sy filesystem_limit
1204 to
1205 .Sy on
1206 a descendent of a filesystem that already has a
1207 .Sy filesystem_limit
1208 does not override the ancestor's
1209 .Sy filesystem_limit ,
1210 but rather imposes an additional limit.
1211 This feature must be enabled to be used
1212 .Po see
1213 .Xr zpool-features 7
1214 .Pc .
1215 .It Sy special_small_blocks Ns = Ns Ar size
1216 This value represents the threshold block size for including small file
1217 blocks into the special allocation class.
1218 Blocks smaller than or equal to this
1219 value will be assigned to the special allocation class while greater blocks
1220 will be assigned to the regular class.
1221 Valid values are zero or a power of two from 512 up to 1048576 (1 MiB).
1222 The default size is 0 which means no small file blocks
1223 will be allocated in the special class.
1224 .Pp
1225 Before setting this property, a special class vdev must be added to the
1226 pool.
1227 See
1228 .Xr zpoolconcepts 7
1229 for more details on the special allocation class.
1230 .It Sy mountpoint Ns = Ns Pa path Ns | Ns Sy none Ns | Ns Sy legacy
1231 Controls the mount point used for this file system.
1232 See the
1233 .Sx Mount Points
1234 section of
1235 .Xr zfsconcepts 7
1236 for more information on how this property is used.
1237 .Pp
1238 When the
1239 .Sy mountpoint
1240 property is changed for a file system, the file system and any children that
1241 inherit the mount point are unmounted.
1242 If the new value is
1243 .Sy legacy ,
1244 then they remain unmounted.
1245 Otherwise, they are automatically remounted in the new location if the property
1246 was previously
1247 .Sy legacy
1248 or
1249 .Sy none ,
1250 or if they were mounted before the property was changed.
1251 In addition, any shared file systems are unshared and shared in the new
1252 location.
1253 .It Sy nbmand Ns = Ns Sy on Ns | Ns Sy off
1254 Controls whether the file system should be mounted with
1255 .Sy nbmand
1256 .Pq Non-blocking mandatory locks .
1257 This is used for SMB clients.
1258 Changes to this property only take effect when the file system is umounted and
1259 remounted.
1260 Support for these locks is scarce and not described by POSIX.
1261 .It Sy overlay Ns = Ns Sy on Ns | Ns Sy off
1262 Allow mounting on a busy directory or a directory which already contains
1263 files or directories.
1264 This is the default mount behavior for Linux and
1265 .Fx
1266 file systems.
1267 On these platforms the property is
1268 .Sy on
1269 by default.
1270 Set to
1271 .Sy off
1272 to disable overlay mounts for consistency with OpenZFS on other platforms.
1273 .It Sy primarycache Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata
1274 Controls what is cached in the primary cache
1275 .Pq ARC .
1276 If this property is set to
1277 .Sy all ,
1278 then both user data and metadata is cached.
1279 If this property is set to
1280 .Sy none ,
1281 then neither user data nor metadata is cached.
1282 If this property is set to
1283 .Sy metadata ,
1284 then only metadata is cached.
1285 The default value is
1286 .Sy all .
1287 .It Sy quota Ns = Ns Ar size Ns | Ns Sy none
1288 Limits the amount of space a dataset and its descendents can consume.
1289 This property enforces a hard limit on the amount of space used.
1290 This includes all space consumed by descendents, including file systems and
1291 snapshots.
1292 Setting a quota on a descendent of a dataset that already has a quota does not
1293 override the ancestor's quota, but rather imposes an additional limit.
1294 .Pp
1295 Quotas cannot be set on volumes, as the
1296 .Sy volsize
1297 property acts as an implicit quota.
1298 .It Sy snapshot_limit Ns = Ns Ar count Ns | Ns Sy none
1299 Limits the number of snapshots that can be created on a dataset and its
1300 descendents.
1301 Setting a
1302 .Sy snapshot_limit
1303 on a descendent of a dataset that already has a
1304 .Sy snapshot_limit
1305 does not override the ancestor's
1306 .Sy snapshot_limit ,
1307 but rather imposes an additional limit.
1308 The limit is not enforced if the user is allowed to change the limit.
1309 For example, this means that recursive snapshots taken from the global zone are
1310 counted against each delegated dataset within a zone.
1311 This feature must be enabled to be used
1312 .Po see
1313 .Xr zpool-features 7
1314 .Pc .
1315 .It Sy userquota@ Ns Ar user Ns = Ns Ar size Ns | Ns Sy none
1316 Limits the amount of space consumed by the specified user.
1317 User space consumption is identified by the
1318 .Sy userspace@ Ns Ar user
1319 property.
1320 .Pp
1321 Enforcement of user quotas may be delayed by several seconds.
1322 This delay means that a user might exceed their quota before the system notices
1323 that they are over quota and begins to refuse additional writes with the
1324 .Er EDQUOT
1325 error message.
1326 See the
1327 .Nm zfs Cm userspace
1328 command for more information.
1329 .Pp
1330 Unprivileged users can only access their own groups' space usage.
1331 The root user, or a user who has been granted the
1332 .Sy userquota
1333 privilege with
1334 .Nm zfs Cm allow ,
1335 can get and set everyone's quota.
1336 .Pp
1337 This property is not available on volumes, on file systems before version 4, or
1338 on pools before version 15.
1339 The
1340 .Sy userquota@ Ns Ar …
1341 properties are not displayed by
1342 .Nm zfs Cm get Sy all .
1343 The user's name must be appended after the
1344 .Sy @
1345 symbol, using one of the following forms:
1346 .Bl -bullet -compact -offset 4n
1347 .It
1348 POSIX name
1349 .Pq Qq joe
1350 .It
1351 POSIX numeric ID
1352 .Pq Qq 789
1353 .It
1354 SID name
1355 .Pq Qq joe.smith@mydomain
1356 .It
1357 SID numeric ID
1358 .Pq Qq S-1-123-456-789
1359 .El
1360 .Pp
1361 Files created on Linux always have POSIX owners.
1362 .It Sy userobjquota@ Ns Ar user Ns = Ns Ar size Ns | Ns Sy none
1363 The
1364 .Sy userobjquota
1365 is similar to
1366 .Sy userquota
1367 but it limits the number of objects a user can create.
1368 Please refer to
1369 .Sy userobjused
1370 for more information about how objects are counted.
1371 .It Sy groupquota@ Ns Ar group Ns = Ns Ar size Ns | Ns Sy none
1372 Limits the amount of space consumed by the specified group.
1373 Group space consumption is identified by the
1374 .Sy groupused@ Ns Ar group
1375 property.
1376 .Pp
1377 Unprivileged users can access only their own groups' space usage.
1378 The root user, or a user who has been granted the
1379 .Sy groupquota
1380 privilege with
1381 .Nm zfs Cm allow ,
1382 can get and set all groups' quotas.
1383 .It Sy groupobjquota@ Ns Ar group Ns = Ns Ar size Ns | Ns Sy none
1384 The
1385 .Sy groupobjquota
1386 is similar to
1387 .Sy groupquota
1388 but it limits number of objects a group can consume.
1389 Please refer to
1390 .Sy userobjused
1391 for more information about how objects are counted.
1392 .It Sy projectquota@ Ns Ar project Ns = Ns Ar size Ns | Ns Sy none
1393 Limits the amount of space consumed by the specified project.
1394 Project space consumption is identified by the
1395 .Sy projectused@ Ns Ar project
1396 property.
1397 Please refer to
1398 .Sy projectused
1399 for more information about how project is identified and set/changed.
1400 .Pp
1401 The root user, or a user who has been granted the
1402 .Sy projectquota
1403 privilege with
1404 .Nm zfs allow ,
1405 can access all projects' quota.
1406 .It Sy projectobjquota@ Ns Ar project Ns = Ns Ar size Ns | Ns Sy none
1407 The
1408 .Sy projectobjquota
1409 is similar to
1410 .Sy projectquota
1411 but it limits number of objects a project can consume.
1412 Please refer to
1413 .Sy userobjused
1414 for more information about how objects are counted.
1415 .It Sy readonly Ns = Ns Sy on Ns | Ns Sy off
1416 Controls whether this dataset can be modified.
1417 The default value is
1418 .Sy off .
1419 The values
1420 .Sy on
1421 and
1422 .Sy off
1423 are equivalent to the
1424 .Sy ro
1425 and
1426 .Sy rw
1427 mount options.
1428 .Pp
1429 This property can also be referred to by its shortened column name,
1430 .Sy rdonly .
1431 .It Sy recordsize Ns = Ns Ar size
1432 Specifies a suggested block size for files in the file system.
1433 This property is designed solely for use with database workloads that access
1434 files in fixed-size records.
1435 ZFS automatically tunes block sizes according to internal algorithms optimized
1436 for typical access patterns.
1437 .Pp
1438 For databases that create very large files but access them in small random
1439 chunks, these algorithms may be suboptimal.
1440 Specifying a
1441 .Sy recordsize
1442 greater than or equal to the record size of the database can result in
1443 significant performance gains.
1444 Use of this property for general purpose file systems is strongly discouraged,
1445 and may adversely affect performance.
1446 .Pp
1447 The size specified must be a power of two greater than or equal to
1448 .Ar 512 B
1449 and less than or equal to
1450 .Ar 128 KiB .
1451 If the
1452 .Sy large_blocks
1453 feature is enabled on the pool, the size may be up to
1454 .Ar 1 MiB .
1455 See
1456 .Xr zpool-features 7
1457 for details on ZFS feature flags.
1458 .Pp
1459 Changing the file system's
1460 .Sy recordsize
1461 affects only files created afterward; existing files are unaffected.
1462 .Pp
1463 This property can also be referred to by its shortened column name,
1464 .Sy recsize .
1465 .It Sy redundant_metadata Ns = Ns Sy all Ns | Ns Sy most Ns | Ns Sy some Ns | Ns Sy none
1466 Controls what types of metadata are stored redundantly.
1467 ZFS stores an extra copy of metadata, so that if a single block is corrupted,
1468 the amount of user data lost is limited.
1469 This extra copy is in addition to any redundancy provided at the pool level
1470 .Pq e.g. by mirroring or RAID-Z ,
1471 and is in addition to an extra copy specified by the
1472 .Sy copies
1473 property
1474 .Pq up to a total of 3 copies .
1475 For example if the pool is mirrored,
1476 .Sy copies Ns = Ns 2 ,
1477 and
1478 .Sy redundant_metadata Ns = Ns Sy most ,
1479 then ZFS stores 6 copies of most metadata, and 4 copies of data and some
1480 metadata.
1481 .Pp
1482 When set to
1483 .Sy all ,
1484 ZFS stores an extra copy of all metadata.
1485 If a single on-disk block is corrupt, at worst a single block of user data
1486 .Po which is
1487 .Sy recordsize
1488 bytes long
1489 .Pc
1490 can be lost.
1491 .Pp
1492 When set to
1493 .Sy most ,
1494 ZFS stores an extra copy of most types of metadata.
1495 This can improve performance of random writes, because less metadata must be
1496 written.
1497 In practice, at worst about 1000 blocks
1498 .Po of
1499 .Sy recordsize
1500 bytes each
1501 .Pc
1502 of user data can be lost if a single on-disk block is corrupt.
1503 The exact behavior of which metadata blocks are stored redundantly may change in
1504 future releases.
1505 .Pp
1506 When set to
1507 .Sy some ,
1508 ZFS stores an extra copy of only critical metadata.
1509 This can improve file create performance since less metadata
1510 needs to be written.
1511 If a single on-disk block is corrupt, at worst a single user file can be lost.
1512 .Pp
1513 When set to
1514 .Sy none ,
1515 ZFS does not store any copies of metadata redundantly.
1516 If a single on-disk block is corrupt, an entire dataset can be lost.
1517 .Pp
1518 The default value is
1519 .Sy all .
1520 .It Sy refquota Ns = Ns Ar size Ns | Ns Sy none
1521 Limits the amount of space a dataset can consume.
1522 This property enforces a hard limit on the amount of space used.
1523 This hard limit does not include space used by descendents, including file
1524 systems and snapshots.
1525 .It Sy refreservation Ns = Ns Ar size Ns | Ns Sy none Ns | Ns Sy auto
1526 The minimum amount of space guaranteed to a dataset, not including its
1527 descendents.
1528 When the amount of space used is below this value, the dataset is treated as if
1529 it were taking up the amount of space specified by
1530 .Sy refreservation .
1531 The
1532 .Sy refreservation
1533 reservation is accounted for in the parent datasets' space used, and counts
1534 against the parent datasets' quotas and reservations.
1535 .Pp
1536 If
1537 .Sy refreservation
1538 is set, a snapshot is only allowed if there is enough free pool space outside of
1539 this reservation to accommodate the current number of
1540 .Qq referenced
1541 bytes in the dataset.
1542 .Pp
1543 If
1544 .Sy refreservation
1545 is set to
1546 .Sy auto ,
1547 a volume is thick provisioned
1548 .Po or
1549 .Qq not sparse
1550 .Pc .
1551 .Sy refreservation Ns = Ns Sy auto
1552 is only supported on volumes.
1553 See
1554 .Sy volsize
1555 in the
1556 .Sx Native Properties
1557 section for more information about sparse volumes.
1558 .Pp
1559 This property can also be referred to by its shortened column name,
1560 .Sy refreserv .
1561 .It Sy relatime Ns = Ns Sy on Ns | Ns Sy off
1562 Controls the manner in which the access time is updated when
1563 .Sy atime Ns = Ns Sy on
1564 is set.
1565 Turning this property on causes the access time to be updated relative
1566 to the modify or change time.
1567 Access time is only updated if the previous
1568 access time was earlier than the current modify or change time or if the
1569 existing access time hasn't been updated within the past 24 hours.
1570 The default value is
1571 .Sy on .
1572 The values
1573 .Sy on
1574 and
1575 .Sy off
1576 are equivalent to the
1577 .Sy relatime
1578 and
1579 .Sy norelatime
1580 mount options.
1581 .It Sy reservation Ns = Ns Ar size Ns | Ns Sy none
1582 The minimum amount of space guaranteed to a dataset and its descendants.
1583 When the amount of space used is below this value, the dataset is treated as if
1584 it were taking up the amount of space specified by its reservation.
1585 Reservations are accounted for in the parent datasets' space used, and count
1586 against the parent datasets' quotas and reservations.
1587 .Pp
1588 This property can also be referred to by its shortened column name,
1589 .Sy reserv .
1590 .It Sy secondarycache Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata
1591 Controls what is cached in the secondary cache
1592 .Pq L2ARC .
1593 If this property is set to
1594 .Sy all ,
1595 then both user data and metadata is cached.
1596 If this property is set to
1597 .Sy none ,
1598 then neither user data nor metadata is cached.
1599 If this property is set to
1600 .Sy metadata ,
1601 then only metadata is cached.
1602 The default value is
1603 .Sy all .
1604 .It Sy setuid Ns = Ns Sy on Ns | Ns Sy off
1605 Controls whether the setuid bit is respected for the file system.
1606 The default value is
1607 .Sy on .
1608 The values
1609 .Sy on
1610 and
1611 .Sy off
1612 are equivalent to the
1613 .Sy suid
1614 and
1615 .Sy nosuid
1616 mount options.
1617 .It Sy sharesmb Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Ar opts
1618 Controls whether the file system is shared by using
1619 .Sy Samba USERSHARES
1620 and what options are to be used.
1621 Otherwise, the file system is automatically shared and unshared with the
1622 .Nm zfs Cm share
1623 and
1624 .Nm zfs Cm unshare
1625 commands.
1626 If the property is set to on, the
1627 .Xr net 8
1628 command is invoked to create a
1629 .Sy USERSHARE .
1630 .Pp
1631 Because SMB shares requires a resource name, a unique resource name is
1632 constructed from the dataset name.
1633 The constructed name is a copy of the
1634 dataset name except that the characters in the dataset name, which would be
1635 invalid in the resource name, are replaced with underscore (_) characters.
1636 Linux does not currently support additional options which might be available
1637 on Solaris.
1638 .Pp
1639 If the
1640 .Sy sharesmb
1641 property is set to
1642 .Sy off ,
1643 the file systems are unshared.
1644 .Pp
1645 The share is created with the ACL (Access Control List) "Everyone:F" ("F"
1646 stands for "full permissions", i.e. read and write permissions) and no guest
1647 access (which means Samba must be able to authenticate a real user \(em
1648 .Xr passwd 5 Ns / Ns Xr shadow 5 Ns - ,
1649 LDAP- or
1650 .Xr smbpasswd 5 Ns -based )
1651 by default.
1652 This means that any additional access control
1653 (disallow specific user specific access etc) must be done on the underlying file
1654 system.
1655 .It Sy sharenfs Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Ar opts
1656 Controls whether the file system is shared via NFS, and what options are to be
1657 used.
1658 A file system with a
1659 .Sy sharenfs
1660 property of
1661 .Sy off
1662 is managed with the
1663 .Xr exportfs 8
1664 command and entries in the
1665 .Pa /etc/exports
1666 file.
1667 Otherwise, the file system is automatically shared and unshared with the
1668 .Nm zfs Cm share
1669 and
1670 .Nm zfs Cm unshare
1671 commands.
1672 If the property is set to
1673 .Sy on ,
1674 the dataset is shared using the default options:
1675 .Dl sec=sys,rw,crossmnt,no_subtree_check
1676 .Pp
1677 Please note that the options are comma-separated, unlike those found in
1678 .Xr exports 5 .
1679 This is done to negate the need for quoting, as well as to make parsing
1680 with scripts easier.
1681 .Pp
1682 See
1683 .Xr exports 5
1684 for the meaning of the default options.
1685 Otherwise, the
1686 .Xr exportfs 8
1687 command is invoked with options equivalent to the contents of this property.
1688 .Pp
1689 When the
1690 .Sy sharenfs
1691 property is changed for a dataset, the dataset and any children inheriting the
1692 property are re-shared with the new options, only if the property was previously
1693 .Sy off ,
1694 or if they were shared before the property was changed.
1695 If the new property is
1696 .Sy off ,
1697 the file systems are unshared.
1698 .It Sy logbias Ns = Ns Sy latency Ns | Ns Sy throughput
1699 Provide a hint to ZFS about handling of synchronous requests in this dataset.
1700 If
1701 .Sy logbias
1702 is set to
1703 .Sy latency
1704 .Pq the default ,
1705 ZFS will use pool log devices
1706 .Pq if configured
1707 to handle the requests at low latency.
1708 If
1709 .Sy logbias
1710 is set to
1711 .Sy throughput ,
1712 ZFS will not use configured pool log devices.
1713 ZFS will instead optimize synchronous operations for global pool throughput and
1714 efficient use of resources.
1715 .It Sy snapdev Ns = Ns Sy hidden Ns | Ns Sy visible
1716 Controls whether the volume snapshot devices under
1717 .Pa /dev/zvol/ Ns Aq Ar pool
1718 are hidden or visible.
1719 The default value is
1720 .Sy hidden .
1721 .It Sy snapdir Ns = Ns Sy hidden Ns | Ns Sy visible
1722 Controls whether the
1723 .Pa .zfs
1724 directory is hidden or visible in the root of the file system as discussed in
1725 the
1726 .Sx Snapshots
1727 section of
1728 .Xr zfsconcepts 7 .
1729 The default value is
1730 .Sy hidden .
1731 .It Sy sync Ns = Ns Sy standard Ns | Ns Sy always Ns | Ns Sy disabled
1732 Controls the behavior of synchronous requests
1733 .Pq e.g. fsync, O_DSYNC .
1734 .Sy standard
1735 is the POSIX-specified behavior of ensuring all synchronous requests
1736 are written to stable storage and all devices are flushed to ensure
1737 data is not cached by device controllers
1738 .Pq this is the default .
1739 .Sy always
1740 causes every file system transaction to be written and flushed before its
1741 system call returns.
1742 This has a large performance penalty.
1743 .Sy disabled
1744 disables synchronous requests.
1745 File system transactions are only committed to stable storage periodically.
1746 This option will give the highest performance.
1747 However, it is very dangerous as ZFS would be ignoring the synchronous
1748 transaction demands of applications such as databases or NFS.
1749 Administrators should only use this option when the risks are understood.
1750 .It Sy version Ns = Ns Ar N Ns | Ns Sy current
1751 The on-disk version of this file system, which is independent of the pool
1752 version.
1753 This property can only be set to later supported versions.
1754 See the
1755 .Nm zfs Cm upgrade
1756 command.
1757 .It Sy volsize Ns = Ns Ar size
1758 For volumes, specifies the logical size of the volume.
1759 By default, creating a volume establishes a reservation of equal size.
1760 For storage pools with a version number of 9 or higher, a
1761 .Sy refreservation
1762 is set instead.
1763 Any changes to
1764 .Sy volsize
1765 are reflected in an equivalent change to the reservation
1766 .Pq or Sy refreservation .
1767 The
1768 .Sy volsize
1769 can only be set to a multiple of
1770 .Sy volblocksize ,
1771 and cannot be zero.
1772 .Pp
1773 The reservation is kept equal to the volume's logical size to prevent unexpected
1774 behavior for consumers.
1775 Without the reservation, the volume could run out of space, resulting in
1776 undefined behavior or data corruption, depending on how the volume is used.
1777 These effects can also occur when the volume size is changed while it is in use
1778 .Pq particularly when shrinking the size .
1779 Extreme care should be used when adjusting the volume size.
1780 .Pp
1781 Though not recommended, a
1782 .Qq sparse volume
1783 .Po also known as
1784 .Qq thin provisioned
1785 .Pc
1786 can be created by specifying the
1787 .Fl s
1788 option to the
1789 .Nm zfs Cm create Fl V
1790 command, or by changing the value of the
1791 .Sy refreservation
1792 property
1793 .Po or
1794 .Sy reservation
1795 property on pool version 8 or earlier
1796 .Pc
1797 after the volume has been created.
1798 A
1799 .Qq sparse volume
1800 is a volume where the value of
1801 .Sy refreservation
1802 is less than the size of the volume plus the space required to store its
1803 metadata.
1804 Consequently, writes to a sparse volume can fail with
1805 .Er ENOSPC
1806 when the pool is low on space.
1807 For a sparse volume, changes to
1808 .Sy volsize
1809 are not reflected in the
1810 .Sy refreservation .
1811 A volume that is not sparse is said to be
1812 .Qq thick provisioned .
1813 A sparse volume can become thick provisioned by setting
1814 .Sy refreservation
1815 to
1816 .Sy auto .
1817 .It Sy volmode Ns = Ns Sy default Ns | Ns Sy full Ns | Ns Sy geom Ns | Ns Sy dev Ns | Ns Sy none
1818 This property specifies how volumes should be exposed to the OS.
1819 Setting it to
1820 .Sy full
1821 exposes volumes as fully fledged block devices, providing maximal
1822 functionality.
1823 The value
1824 .Sy geom
1825 is just an alias for
1826 .Sy full
1827 and is kept for compatibility.
1828 Setting it to
1829 .Sy dev
1830 hides its partitions.
1831 Volumes with property set to
1832 .Sy none
1833 are not exposed outside ZFS, but can be snapshotted, cloned, replicated, etc,
1834 that can be suitable for backup purposes.
1835 Value
1836 .Sy default
1837 means that volumes exposition is controlled by system-wide tunable
1838 .Sy zvol_volmode ,
1839 where
1840 .Sy full ,
1841 .Sy dev
1842 and
1843 .Sy none
1844 are encoded as 1, 2 and 3 respectively.
1845 The default value is
1846 .Sy full .
1847 .It Sy vscan Ns = Ns Sy on Ns | Ns Sy off
1848 Controls whether regular files should be scanned for viruses when a file is
1849 opened and closed.
1850 In addition to enabling this property, the virus scan service must also be
1851 enabled for virus scanning to occur.
1852 The default value is
1853 .Sy off .
1854 This property is not used by OpenZFS.
1855 .It Sy xattr Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy sa
1856 Controls whether extended attributes are enabled for this file system.
1857 Two styles of extended attributes are supported: either directory-based
1858 or system-attribute-based.
1859 .Pp
1860 The default value of
1861 .Sy on
1862 enables directory-based extended attributes.
1863 This style of extended attribute imposes no practical limit
1864 on either the size or number of attributes which can be set on a file.
1865 Although under Linux the
1866 .Xr getxattr 2
1867 and
1868 .Xr setxattr 2
1869 system calls limit the maximum size to
1870 .Sy 64K .
1871 This is the most compatible
1872 style of extended attribute and is supported by all ZFS implementations.
1873 .Pp
1874 System-attribute-based xattrs can be enabled by setting the value to
1875 .Sy sa .
1876 The key advantage of this type of xattr is improved performance.
1877 Storing extended attributes as system attributes
1878 significantly decreases the amount of disk I/O required.
1879 Up to
1880 .Sy 64K
1881 of data may be stored per-file in the space reserved for system attributes.
1882 If there is not enough space available for an extended attribute
1883 then it will be automatically written as a directory-based xattr.
1884 System-attribute-based extended attributes are not accessible
1885 on platforms which do not support the
1886 .Sy xattr Ns = Ns Sy sa
1887 feature.
1888 OpenZFS supports
1889 .Sy xattr Ns = Ns Sy sa
1890 on both
1891 .Fx
1892 and Linux.
1893 .Pp
1894 The use of system-attribute-based xattrs is strongly encouraged for users of
1895 SELinux or POSIX ACLs.
1896 Both of these features heavily rely on extended
1897 attributes and benefit significantly from the reduced access time.
1898 .Pp
1899 The values
1900 .Sy on
1901 and
1902 .Sy off
1903 are equivalent to the
1904 .Sy xattr
1905 and
1906 .Sy noxattr
1907 mount options.
1908 .It Sy jailed Ns = Ns Sy off Ns | Ns Sy on
1909 Controls whether the dataset is managed from a jail.
1910 See
1911 .Xr zfs-jail 8
1912 for more information.
1913 Jails are a
1914 .Fx
1915 feature and are not relevant on other platforms.
1916 The default value is
1917 .Sy off .
1918 .It Sy zoned Ns = Ns Sy on Ns | Ns Sy off
1919 Controls whether the dataset is managed from a non-global zone or namespace.
1920 The default value is
1921 .Sy off .
1922 .El
1923 .Pp
1924 The following three properties cannot be changed after the file system is
1925 created, and therefore, should be set when the file system is created.
1926 If the properties are not set with the
1927 .Nm zfs Cm create
1928 or
1929 .Nm zpool Cm create
1930 commands, these properties are inherited from the parent dataset.
1931 If the parent dataset lacks these properties due to having been created prior to
1932 these features being supported, the new file system will have the default values
1933 for these properties.
1934 .Bl -tag -width ""
1935 .It Xo
1936 .Sy casesensitivity Ns = Ns Sy sensitive Ns | Ns
1937 .Sy insensitive Ns | Ns Sy mixed
1938 .Xc
1939 Indicates whether the file name matching algorithm used by the file system
1940 should be case-sensitive, case-insensitive, or allow a combination of both
1941 styles of matching.
1942 The default value for the
1943 .Sy casesensitivity
1944 property is
1945 .Sy sensitive .
1946 Traditionally,
1947 .Ux
1948 and POSIX file systems have case-sensitive file names.
1949 .Pp
1950 The
1951 .Sy mixed
1952 value for the
1953 .Sy casesensitivity
1954 property indicates that the file system can support requests for both
1955 case-sensitive and case-insensitive matching behavior.
1956 Currently, case-insensitive matching behavior on a file system that supports
1957 mixed behavior is limited to the SMB server product.
1958 For more information about the
1959 .Sy mixed
1960 value behavior, see the "ZFS Administration Guide".
1961 .It Xo
1962 .Sy normalization Ns = Ns Sy none Ns | Ns Sy formC Ns | Ns
1963 .Sy formD Ns | Ns Sy formKC Ns | Ns Sy formKD
1964 .Xc
1965 Indicates whether the file system should perform a
1966 .Sy unicode
1967 normalization of file names whenever two file names are compared, and which
1968 normalization algorithm should be used.
1969 File names are always stored unmodified, names are normalized as part of any
1970 comparison process.
1971 If this property is set to a legal value other than
1972 .Sy none ,
1973 and the
1974 .Sy utf8only
1975 property was left unspecified, the
1976 .Sy utf8only
1977 property is automatically set to
1978 .Sy on .
1979 The default value of the
1980 .Sy normalization
1981 property is
1982 .Sy none .
1983 This property cannot be changed after the file system is created.
1984 .It Sy utf8only Ns = Ns Sy on Ns | Ns Sy off
1985 Indicates whether the file system should reject file names that include
1986 characters that are not present in the
1987 .Sy UTF-8
1988 character code set.
1989 If this property is explicitly set to
1990 .Sy off ,
1991 the normalization property must either not be explicitly set or be set to
1992 .Sy none .
1993 The default value for the
1994 .Sy utf8only
1995 property is
1996 .Sy off .
1997 This property cannot be changed after the file system is created.
1998 .El
1999 .Pp
2000 The
2001 .Sy casesensitivity ,
2002 .Sy normalization ,
2003 and
2004 .Sy utf8only
2005 properties are also new permissions that can be assigned to non-privileged users
2006 by using the ZFS delegated administration feature.
2007 .
2008 .Ss Temporary Mount Point Properties
2009 When a file system is mounted, either through
2010 .Xr mount 8
2011 for legacy mounts or the
2012 .Nm zfs Cm mount
2013 command for normal file systems, its mount options are set according to its
2014 properties.
2015 The correlation between properties and mount options is as follows:
2016 .Bl -tag -compact -offset Ds -width "rootcontext="
2017 .It Sy atime
2018 atime/noatime
2019 .It Sy canmount
2020 auto/noauto
2021 .It Sy devices
2022 dev/nodev
2023 .It Sy exec
2024 exec/noexec
2025 .It Sy readonly
2026 ro/rw
2027 .It Sy relatime
2028 relatime/norelatime
2029 .It Sy setuid
2030 suid/nosuid
2031 .It Sy xattr
2032 xattr/noxattr
2033 .It Sy nbmand
2034 mand/nomand
2035 .It Sy context Ns =
2036 context=
2037 .It Sy fscontext Ns =
2038 fscontext=
2039 .It Sy defcontext Ns =
2040 defcontext=
2041 .It Sy rootcontext Ns =
2042 rootcontext=
2043 .El
2044 .Pp
2045 In addition, these options can be set on a per-mount basis using the
2046 .Fl o
2047 option, without affecting the property that is stored on disk.
2048 The values specified on the command line override the values stored in the
2049 dataset.
2050 The
2051 .Sy nosuid
2052 option is an alias for
2053 .Sy nodevices , Ns Sy nosetuid .
2054 These properties are reported as
2055 .Qq temporary
2056 by the
2057 .Nm zfs Cm get
2058 command.
2059 If the properties are changed while the dataset is mounted, the new setting
2060 overrides any temporary settings.
2061 .
2062 .Ss User Properties
2063 In addition to the standard native properties, ZFS supports arbitrary user
2064 properties.
2065 User properties have no effect on ZFS behavior, but applications or
2066 administrators can use them to annotate datasets
2067 .Pq file systems, volumes, and snapshots .
2068 .Pp
2069 User property names must contain a colon
2070 .Pq Qq Sy \&:
2071 character to distinguish them from native properties.
2072 They may contain lowercase letters, numbers, and the following punctuation
2073 characters: colon
2074 .Pq Qq Sy \&: ,
2075 dash
2076 .Pq Qq Sy - ,
2077 period
2078 .Pq Qq Sy \&. ,
2079 and underscore
2080 .Pq Qq Sy _ .
2081 The expected convention is that the property name is divided into two portions
2082 such as
2083 .Ar module : Ns Ar property ,
2084 but this namespace is not enforced by ZFS.
2085 User property names can be at most 256 characters, and cannot begin with a dash
2086 .Pq Qq Sy - .
2087 .Pp
2088 When making programmatic use of user properties, it is strongly suggested to use
2089 a reversed DNS domain name for the
2090 .Ar module
2091 component of property names to reduce the chance that two
2092 independently-developed packages use the same property name for different
2093 purposes.
2094 .Pp
2095 The values of user properties are arbitrary strings, are always inherited, and
2096 are never validated.
2097 All of the commands that operate on properties
2098 .Po Nm zfs Cm list ,
2099 .Nm zfs Cm get ,
2100 .Nm zfs Cm set ,
2101 and so forth
2102 .Pc
2103 can be used to manipulate both native properties and user properties.
2104 Use the
2105 .Nm zfs Cm inherit
2106 command to clear a user property.
2107 If the property is not defined in any parent dataset, it is removed entirely.
2108 Property values are limited to 8192 bytes.
Cache object: f111c48a7d25913d6fb42132da2b6166
|