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