xref: /freebsd/sys/contrib/openzfs/man/man7/zfsprops.7 (revision b670c9bafc0e31c7609969bf374b2e80bdc00211)
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 June 29, 2024
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 default
545.Sy blocksize
546for volumes is 16 KiB.
547Any power of 2 from 512 bytes to 128 KiB is valid.
548.Pp
549This property can also be referred to by its shortened column name,
550.Sy volblock .
551.It Sy written
552The amount of space
553.Sy referenced
554by this dataset, that was written since the previous snapshot
555.Pq i.e. that is not referenced by the previous snapshot .
556.It Sy written Ns @ Ns Ar snapshot
557The amount of
558.Sy referenced
559space written to this dataset since the specified snapshot.
560This is the space that is referenced by this dataset but was not referenced by
561the specified snapshot.
562.Pp
563The
564.Ar snapshot
565may be specified as a short snapshot name
566.Pq just the part after the Sy @ ,
567in which case it will be interpreted as a snapshot in the same filesystem as
568this dataset.
569The
570.Ar snapshot
571may be a full snapshot name
572.Pq Ar filesystem Ns @ Ns Ar snapshot ,
573which for clones may be a snapshot in the origin's filesystem
574.Pq or the origin of the origin's filesystem, etc.
575.El
576.Pp
577The following native properties can be used to change the behavior of a ZFS
578dataset.
579.Bl -tag -width ""
580.It Xo
581.Sy aclinherit Ns = Ns Sy discard Ns | Ns Sy noallow Ns | Ns
582.Sy restricted Ns | Ns Sy passthrough Ns | Ns Sy passthrough-x
583.Xc
584Controls how ACEs are inherited when files and directories are created.
585.Bl -tag -compact -offset 4n -width "passthrough-x"
586.It Sy discard
587does not inherit any ACEs.
588.It Sy noallow
589only inherits inheritable ACEs that specify
590.Qq deny
591permissions.
592.It Sy restricted
593default, removes the
594.Sy write_acl
595and
596.Sy write_owner
597permissions when the ACE is inherited.
598.It Sy passthrough
599inherits all inheritable ACEs without any modifications.
600.It Sy passthrough-x
601same meaning as
602.Sy passthrough ,
603except that the
604.Sy owner@ , group@ , No and Sy everyone@
605ACEs inherit the execute permission only if the file creation mode also requests
606the execute bit.
607.El
608.Pp
609When the property value is set to
610.Sy passthrough ,
611files are created with a mode determined by the inheritable ACEs.
612If no inheritable ACEs exist that affect the mode, then the mode is set in
613accordance to the requested mode from the application.
614.Pp
615The
616.Sy aclinherit
617property does not apply to POSIX ACLs.
618.It Xo
619.Sy aclmode Ns = Ns Sy discard Ns | Ns Sy groupmask Ns | Ns
620.Sy passthrough Ns | Ns Sy restricted Ns
621.Xc
622Controls how an ACL is modified during chmod(2) and how inherited ACEs
623are modified by the file creation mode:
624.Bl -tag -compact -offset 4n -width "passthrough"
625.It Sy discard
626default, deletes all
627.Sy ACEs
628except for those representing
629the mode of the file or directory requested by
630.Xr chmod 2 .
631.It Sy groupmask
632reduces permissions granted in all
633.Sy ALLOW
634entries found in the
635.Sy ACL
636such that they are no greater than the group permissions specified by
637.Xr chmod 2 .
638.It Sy passthrough
639indicates that no changes are made to the ACL other than creating or updating
640the necessary ACL entries to represent the new mode of the file or directory.
641.It Sy restricted
642will cause the
643.Xr chmod 2
644operation to return an error when used on any file or directory which has
645a non-trivial ACL whose entries can not be represented by a mode.
646.Xr chmod 2
647is required to change the set user ID, set group ID, or sticky bits on a file
648or directory, as they do not have equivalent ACL entries.
649In order to use
650.Xr chmod 2
651on a file or directory with a non-trivial ACL when
652.Sy aclmode
653is set to
654.Sy restricted ,
655you must first remove all ACL entries which do not represent the current mode.
656.El
657.It Sy acltype Ns = Ns Sy off Ns | Ns Sy nfsv4 Ns | Ns Sy posix
658Controls whether ACLs are enabled and if so what type of ACL to use.
659When this property is set to a type of ACL not supported by the current
660platform, the behavior is the same as if it were set to
661.Sy off .
662.Bl -tag -compact -offset 4n -width "posixacl"
663.It Sy off
664default on Linux, when a file system has the
665.Sy acltype
666property set to off then ACLs are disabled.
667.It Sy noacl
668an alias for
669.Sy off
670.It Sy nfsv4
671default on
672.Fx ,
673indicates that NFSv4-style ZFS ACLs should be used.
674These ACLs can be managed with the
675.Xr getfacl 1
676and
677.Xr setfacl 1 .
678The
679.Sy nfsv4
680ZFS ACL type is not yet supported on Linux.
681.It Sy posix
682indicates POSIX ACLs should be used.
683POSIX ACLs are specific to Linux and are not functional on other platforms.
684POSIX ACLs are stored as an extended
685attribute and therefore will not overwrite any existing NFSv4 ACLs which
686may be set.
687.It Sy posixacl
688an alias for
689.Sy posix
690.El
691.Pp
692To obtain the best performance when setting
693.Sy posix
694users are strongly encouraged to set the
695.Sy xattr Ns = Ns Sy sa
696property.
697This will result in the POSIX ACL being stored more efficiently on disk.
698But as a consequence, all new extended attributes will only be
699accessible from OpenZFS implementations which support the
700.Sy xattr Ns = Ns Sy sa
701property.
702See the
703.Sy xattr
704property for more details.
705.It Sy atime Ns = Ns Sy on Ns | Ns Sy off
706Controls whether the access time for files is updated when they are read.
707Turning this property off avoids producing write traffic when reading files and
708can result in significant performance gains, though it might confuse mailers
709and other similar utilities.
710The values
711.Sy on
712and
713.Sy off
714are equivalent to the
715.Sy atime
716and
717.Sy noatime
718mount options.
719The default value is
720.Sy on .
721See also
722.Sy relatime
723below.
724.It Sy canmount Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy noauto
725If this property is set to
726.Sy off ,
727the file system cannot be mounted, and is ignored by
728.Nm zfs Cm mount Fl a .
729Setting this property to
730.Sy off
731is similar to setting the
732.Sy mountpoint
733property to
734.Sy none ,
735except that the dataset still has a normal
736.Sy mountpoint
737property, which can be inherited.
738Setting this property to
739.Sy off
740allows datasets to be used solely as a mechanism to inherit properties.
741One example of setting
742.Sy canmount Ns = Ns Sy off
743is to have two datasets with the same
744.Sy mountpoint ,
745so that the children of both datasets appear in the same directory, but might
746have different inherited characteristics.
747.Pp
748When set to
749.Sy noauto ,
750a dataset can only be mounted and unmounted explicitly.
751The dataset is not mounted automatically when the dataset is created or
752imported, nor is it mounted by the
753.Nm zfs Cm mount Fl a
754command or unmounted by the
755.Nm zfs Cm unmount Fl a
756command.
757.Pp
758This property is not inherited.
759.It Xo
760.Sy checksum Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy fletcher2 Ns | Ns
761.Sy fletcher4 Ns | Ns Sy sha256 Ns | Ns Sy noparity Ns | Ns
762.Sy sha512 Ns | Ns Sy skein Ns | Ns Sy edonr Ns | Ns Sy blake3
763.Xc
764Controls the checksum used to verify data integrity.
765The default value is
766.Sy on ,
767which automatically selects an appropriate algorithm
768.Po currently,
769.Sy fletcher4 ,
770but this may change in future releases
771.Pc .
772The value
773.Sy off
774disables integrity checking on user data.
775The value
776.Sy noparity
777not only disables integrity but also disables maintaining parity for user data.
778This setting is used internally by a dump device residing on a RAID-Z pool and
779should not be used by any other dataset.
780Disabling checksums is
781.Em NOT
782a recommended practice.
783.Pp
784The
785.Sy sha512 ,
786.Sy skein ,
787.Sy edonr ,
788and
789.Sy blake3
790checksum algorithms require enabling the appropriate features on the pool.
791.Pp
792Please see
793.Xr zpool-features 7
794for more information on these algorithms.
795.Pp
796Changing this property affects only newly-written data.
797.It Xo
798.Sy compression Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy gzip Ns | Ns
799.Sy gzip- Ns Ar N Ns | Ns Sy lz4 Ns | Ns Sy lzjb Ns | Ns Sy zle Ns | Ns Sy zstd Ns | Ns
800.Sy zstd- Ns Ar N Ns | Ns Sy zstd-fast Ns | Ns Sy zstd-fast- Ns Ar N
801.Xc
802Controls the compression algorithm used for this dataset.
803.Pp
804When set to
805.Sy on
806(the default), indicates that the current default compression algorithm should
807be used.
808The default balances compression and decompression speed, with compression ratio
809and is expected to work well on a wide variety of workloads.
810Unlike all other settings for this property,
811.Sy on
812does not select a fixed compression type.
813As new compression algorithms are added to ZFS and enabled on a pool, the
814default compression algorithm may change.
815The current default compression algorithm is either
816.Sy lzjb
817or, if the
818.Sy lz4_compress
819feature is enabled,
820.Sy lz4 .
821.Pp
822The
823.Sy lz4
824compression algorithm is a high-performance replacement for the
825.Sy lzjb
826algorithm.
827It features significantly faster compression and decompression, as well as a
828moderately higher compression ratio than
829.Sy lzjb ,
830but can only be used on pools with the
831.Sy lz4_compress
832feature set to
833.Sy enabled .
834See
835.Xr zpool-features 7
836for details on ZFS feature flags and the
837.Sy lz4_compress
838feature.
839.Pp
840The
841.Sy lzjb
842compression algorithm is optimized for performance while providing decent data
843compression.
844.Pp
845The
846.Sy gzip
847compression algorithm uses the same compression as the
848.Xr gzip 1
849command.
850You can specify the
851.Sy gzip
852level by using the value
853.Sy gzip- Ns Ar N ,
854where
855.Ar N
856is an integer from 1
857.Pq fastest
858to 9
859.Pq best compression ratio .
860Currently,
861.Sy gzip
862is equivalent to
863.Sy gzip-6
864.Po which is also the default for
865.Xr gzip 1
866.Pc .
867.Pp
868The
869.Sy zstd
870compression algorithm provides both high compression ratios and good
871performance.
872You can specify the
873.Sy zstd
874level by using the value
875.Sy zstd- Ns Ar N ,
876where
877.Ar N
878is an integer from 1
879.Pq fastest
880to 19
881.Pq best compression ratio .
882.Sy zstd
883is equivalent to
884.Sy zstd-3 .
885.Pp
886Faster speeds at the cost of the compression ratio can be requested by
887setting a negative
888.Sy zstd
889level.
890This is done using
891.Sy zstd-fast- Ns Ar N ,
892where
893.Ar N
894is an integer in
895.Bq Sy 1 Ns - Ns Sy 10 , 20 , 30 , No … , Sy 100 , 500 , 1000
896which maps to a negative
897.Sy zstd
898level.
899The lower the level the faster the compression \(em
900.Sy 1000
901provides the fastest compression and lowest compression ratio.
902.Sy zstd-fast
903is equivalent to
904.Sy zstd-fast- Ns Ar 1 .
905.Pp
906The
907.Sy zle
908compression algorithm compresses runs of zeros.
909.Pp
910This property can also be referred to by its shortened column name
911.Sy compress .
912Changing this property affects only newly-written data.
913.Pp
914When any setting except
915.Sy off
916is selected, compression will explicitly check for blocks consisting of only
917zeroes (the NUL byte).
918When a zero-filled block is detected, it is stored as
919a hole and not compressed using the indicated compression algorithm.
920.Pp
921All blocks are allocated as a whole number of sectors
922.Pq chunks of 2^ Ns Sy ashift No bytes , e.g . Sy 512B No or Sy 4KB .
923Compression may result in a non-sector-aligned size, which will be rounded up
924to a whole number of sectors.
925If compression saves less than one whole sector,
926the block will be stored uncompressed.
927Therefore, blocks whose logical size is a small number of sectors will
928experience less compression
929(e.g. for
930.Sy recordsize Ns = Ns Sy 16K
931with
932.Sy 4K
933sectors, which have 4 sectors per block,
934compression needs to save at least 25% to actually save space on disk).
935.Pp
936There is
937.Sy 12.5%
938default compression threshold in addition to sector rounding.
939.It Xo
940.Sy context Ns = Ns Sy none Ns | Ns
941.Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
942.Xc
943This flag sets the SELinux context for all files in the file system under
944a mount point for that file system.
945See
946.Xr selinux 8
947for more information.
948.It Xo
949.Sy fscontext Ns = Ns Sy none Ns | Ns
950.Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
951.Xc
952This flag sets the SELinux context for the file system file system being
953mounted.
954See
955.Xr selinux 8
956for more information.
957.It Xo
958.Sy defcontext Ns = Ns Sy none Ns | Ns
959.Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
960.Xc
961This flag sets the SELinux default context for unlabeled files.
962See
963.Xr selinux 8
964for more information.
965.It Xo
966.Sy rootcontext Ns = Ns Sy none Ns | Ns
967.Ar SELinux-User : Ns Ar SELinux-Role : Ns Ar SELinux-Type : Ns Ar Sensitivity-Level
968.Xc
969This flag sets the SELinux context for the root inode of the file system.
970See
971.Xr selinux 8
972for more information.
973.It Sy copies Ns = Ns Sy 1 Ns | Ns Sy 2 Ns | Ns Sy 3
974Controls the number of copies of data stored for this dataset.
975These copies are in addition to any redundancy provided by the pool, for
976example, mirroring or RAID-Z.
977The copies are stored on different disks, if possible.
978The space used by multiple copies is charged to the associated file and dataset,
979changing the
980.Sy used
981property and counting against quotas and reservations.
982.Pp
983Changing this property only affects newly-written data.
984Therefore, set this property at file system creation time by using the
985.Fl o Sy copies Ns = Ns Ar N
986option.
987.Pp
988Remember that ZFS will not import a pool with a missing top-level vdev.
989Do
990.Em NOT
991create, for example a two-disk striped pool and set
992.Sy copies Ns = Ns Ar 2
993on some datasets thinking you have setup redundancy for them.
994When a disk fails you will not be able to import the pool
995and will have lost all of your data.
996.Pp
997Encrypted datasets may not have
998.Sy copies Ns = Ns Ar 3
999since the implementation stores some encryption metadata where the third copy
1000would normally be.
1001.It Sy devices Ns = Ns Sy on Ns | Ns Sy off
1002Controls whether device nodes can be opened on this file system.
1003The default value is
1004.Sy on .
1005The values
1006.Sy on
1007and
1008.Sy off
1009are equivalent to the
1010.Sy dev
1011and
1012.Sy nodev
1013mount options.
1014.It Xo
1015.Sy dedup Ns = Ns Sy off Ns | Ns Sy on Ns | Ns Sy verify Ns | Ns
1016.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
1017.Sy edonr , Ns Sy verify Ns | Ns Sy blake3 Ns Oo , Ns Sy verify Oc Ns
1018.Xc
1019Configures deduplication for a dataset.
1020The default value is
1021.Sy off .
1022The default deduplication checksum is
1023.Sy sha256
1024(this may change in the future).
1025When
1026.Sy dedup
1027is enabled, the checksum defined here overrides the
1028.Sy checksum
1029property.
1030Setting the value to
1031.Sy verify
1032has the same effect as the setting
1033.Sy sha256 , Ns Sy verify .
1034.Pp
1035If set to
1036.Sy verify ,
1037ZFS will do a byte-to-byte comparison in case of two blocks having the same
1038signature to make sure the block contents are identical.
1039Specifying
1040.Sy verify
1041is mandatory for the
1042.Sy edonr
1043algorithm.
1044.Pp
1045Unless necessary, deduplication should
1046.Em not
1047be enabled on a system.
1048See the
1049.Sx Deduplication
1050section of
1051.Xr zfsconcepts 7 .
1052.It Xo
1053.Sy direct Ns = Ns Sy disabled Ns | Ns Sy standard Ns | Ns Sy always
1054.Xc
1055Controls the behavior of Direct I/O requests
1056.Pq e.g. Dv O_DIRECT .
1057The
1058.Sy standard
1059behavior for Direct I/O requests is to bypass the ARC when possible.
1060These requests will not be cached and performance will be limited by the
1061raw speed of the underlying disks
1062.Pq Dv this is the default .
1063.Sy always
1064causes every properly aligned read or write to be treated as a direct request.
1065.Sy disabled
1066causes the O_DIRECT flag to be silently ignored and all direct requests will
1067be handled by the ARC.
1068This is the default behavior for OpenZFS 2.2 and prior releases.
1069.Pp
1070Bypassing the ARC requires that a direct request be correctly aligned.
1071For write requests the starting offset and size of the request must be
1072.Sy recordsize Ns
1073-aligned, if not then the unaligned portion of the request will be silently
1074redirected through the ARC.
1075For read requests there is no
1076.Sy recordsize
1077alignment restriction on either the starting offset or size.
1078All direct requests must use a page-aligned memory buffer and the request
1079size must be a multiple of the page size or an error is returned.
1080.Pp
1081Concurrently mixing buffered and direct requests to overlapping regions of
1082a file can decrease performance.
1083However, the resulting file will always be coherent.
1084For example, a direct read after a buffered write will return the data
1085from the buffered write.
1086Furthermore, if an application uses
1087.Xr mmap 2
1088based file access then in order to maintain coherency all direct requests
1089are converted to buffered requests while the file is mapped.
1090Currently Direct I/O is not supported with zvols.
1091If dedup is enabled on a dataset, Direct I/O writes will not check for
1092deduplication.
1093Deduplication and Direct I/O writes are currently incompatible.
1094.It Xo
1095.Sy dnodesize Ns = Ns Sy legacy Ns | Ns Sy auto Ns | Ns Sy 1k Ns | Ns
1096.Sy 2k Ns | Ns Sy 4k Ns | Ns Sy 8k Ns | Ns Sy 16k
1097.Xc
1098Specifies a compatibility mode or literal value for the size of dnodes in the
1099file system.
1100The default value is
1101.Sy legacy .
1102Setting this property to a value other than
1103.Sy legacy No requires the Sy large_dnode No pool feature to be enabled .
1104.Pp
1105Consider setting
1106.Sy dnodesize
1107to
1108.Sy auto
1109if the dataset uses the
1110.Sy xattr Ns = Ns Sy sa
1111property setting and the workload makes heavy use of extended attributes.
1112This
1113may be applicable to SELinux-enabled systems, Lustre servers, and Samba
1114servers, for example.
1115Literal values are supported for cases where the optimal
1116size is known in advance and for performance testing.
1117.Pp
1118Leave
1119.Sy dnodesize
1120set to
1121.Sy legacy
1122if you need to receive a send stream of this dataset on a pool that doesn't
1123enable the
1124.Sy large_dnode
1125feature, or if you need to import this pool on a system that doesn't support the
1126.Sy large_dnode No feature .
1127.Pp
1128This property can also be referred to by its shortened column name,
1129.Sy dnsize .
1130.It Xo
1131.Sy encryption Ns = Ns Sy off Ns | Ns Sy on Ns | Ns Sy aes-128-ccm Ns | Ns
1132.Sy aes-192-ccm Ns | Ns Sy aes-256-ccm Ns | Ns Sy aes-128-gcm Ns | Ns
1133.Sy aes-192-gcm Ns | Ns Sy aes-256-gcm
1134.Xc
1135Controls the encryption cipher suite (block cipher, key length, and mode) used
1136for this dataset.
1137Requires the
1138.Sy encryption
1139feature to be enabled on the pool.
1140Requires a
1141.Sy keyformat
1142to be set at dataset creation time.
1143.Pp
1144Selecting
1145.Sy encryption Ns = Ns Sy on
1146when creating a dataset indicates that the default encryption suite will be
1147selected, which is currently
1148.Sy aes-256-gcm .
1149In order to provide consistent data protection, encryption must be specified at
1150dataset creation time and it cannot be changed afterwards.
1151.Pp
1152For more details and caveats about encryption see the
1153.Sx Encryption
1154section of
1155.Xr zfs-load-key 8 .
1156.It Sy keyformat Ns = Ns Sy raw Ns | Ns Sy hex Ns | Ns Sy passphrase
1157Controls what format the user's encryption key will be provided as.
1158This property is only set when the dataset is encrypted.
1159.Pp
1160Raw keys and hex keys must be 32 bytes long (regardless of the chosen
1161encryption suite) and must be randomly generated.
1162A raw key can be generated with the following command:
1163.Dl # Nm dd Sy if=/dev/urandom bs=32 count=1 Sy of= Ns Pa /path/to/output/key
1164.Pp
1165Passphrases must be between 8 and 512 bytes long and will be processed through
1166PBKDF2 before being used (see the
1167.Sy pbkdf2iters
1168property).
1169Even though the encryption suite cannot be changed after dataset creation,
1170the keyformat can be with
1171.Nm zfs Cm change-key .
1172.It Xo
1173.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
1174.Xc
1175Controls where the user's encryption key will be loaded from by default for
1176commands such as
1177.Nm zfs Cm load-key
1178and
1179.Nm zfs Cm mount Fl l .
1180This property is only set for encrypted datasets which are encryption roots.
1181If unspecified, the default is
1182.Sy prompt .
1183.Pp
1184Even though the encryption suite cannot be changed after dataset creation, the
1185keylocation can be with either
1186.Nm zfs Cm set
1187or
1188.Nm zfs Cm change-key .
1189If
1190.Sy prompt
1191is selected ZFS will ask for the key at the command prompt when it is required
1192to access the encrypted data (see
1193.Nm zfs Cm load-key
1194for details).
1195This setting will also allow the key to be passed in via the standard input
1196stream,
1197but users should be careful not to place keys which should be kept secret on
1198the command line.
1199If a file URI is selected, the key will be loaded from the
1200specified absolute file path.
1201If an HTTPS or HTTP URL is selected, it will be GETted using
1202.Xr fetch 3 ,
1203libcurl, or nothing, depending on compile-time configuration and run-time
1204availability.
1205The
1206.Sy SSL_CA_CERT_FILE
1207environment variable can be set to set the location
1208of the concatenated certificate store.
1209The
1210.Sy SSL_CA_CERT_PATH
1211environment variable can be set to override the location
1212of the directory containing the certificate authority bundle.
1213The
1214.Sy SSL_CLIENT_CERT_FILE
1215and
1216.Sy SSL_CLIENT_KEY_FILE
1217environment variables can be set to configure the path
1218to the client certificate and its key.
1219.It Sy pbkdf2iters Ns = Ns Ar iterations
1220Controls the number of PBKDF2 iterations that a
1221.Sy passphrase
1222encryption key should be run through when processing it into an encryption key.
1223This property is only defined when encryption is enabled and a keyformat of
1224.Sy passphrase
1225is selected.
1226The goal of PBKDF2 is to significantly increase the
1227computational difficulty needed to brute force a user's passphrase.
1228This is accomplished by forcing the attacker to run each passphrase through a
1229computationally expensive hashing function many times before they arrive at the
1230resulting key.
1231A user who actually knows the passphrase will only have to pay this cost once.
1232As CPUs become better at processing, this number should be
1233raised to ensure that a brute force attack is still not possible.
1234The current default is
1235.Sy 350000
1236and the minimum is
1237.Sy 100000 .
1238This property may be changed with
1239.Nm zfs Cm change-key .
1240.It Sy exec Ns = Ns Sy on Ns | Ns Sy off
1241Controls whether processes can be executed from within this file system.
1242The default value is
1243.Sy on .
1244The values
1245.Sy on
1246and
1247.Sy off
1248are equivalent to the
1249.Sy exec
1250and
1251.Sy noexec
1252mount options.
1253.It Sy volthreading Ns = Ns Sy on Ns | Ns Sy off
1254Controls internal zvol threading.
1255The value
1256.Sy off
1257disables zvol threading, and zvol relies on application threads.
1258The default value is
1259.Sy on ,
1260which enables threading within a zvol.
1261Please note that this property will be overridden by
1262.Sy zvol_request_sync
1263module parameter.
1264This property is only applicable to Linux.
1265.It Sy filesystem_limit Ns = Ns Ar count Ns | Ns Sy none
1266Limits the number of filesystems and volumes that can exist under this point in
1267the dataset tree.
1268The limit is not enforced if the user is allowed to change the limit.
1269Setting a
1270.Sy filesystem_limit
1271to
1272.Sy on
1273a descendant of a filesystem that already has a
1274.Sy filesystem_limit
1275does not override the ancestor's
1276.Sy filesystem_limit ,
1277but rather imposes an additional limit.
1278This feature must be enabled to be used
1279.Po see
1280.Xr zpool-features 7
1281.Pc .
1282.It Sy special_small_blocks Ns = Ns Ar size
1283This value represents the threshold block size for including small file
1284or zvol blocks into the special allocation class.
1285Blocks smaller than or equal to this
1286value will be assigned to the special allocation class while greater blocks
1287will be assigned to the regular class.
1288Valid values are zero or a power of two from 512 up to 1048576 (1 MiB).
1289The default size is 0 which means no small file or zvol blocks
1290will be allocated in the special class.
1291.Pp
1292Before setting this property, a special class vdev must be added to the
1293pool.
1294See
1295.Xr zpoolconcepts 7
1296for more details on the special allocation class.
1297.It Sy mountpoint Ns = Ns Pa path Ns | Ns Sy none Ns | Ns Sy legacy
1298Controls the mount point used for this file system.
1299See the
1300.Sx Mount Points
1301section of
1302.Xr zfsconcepts 7
1303for more information on how this property is used.
1304.Pp
1305When the
1306.Sy mountpoint
1307property is changed for a file system, the file system and any children that
1308inherit the mount point are unmounted.
1309If the new value is
1310.Sy legacy ,
1311then they remain unmounted.
1312Otherwise, they are automatically remounted in the new location if the property
1313was previously
1314.Sy legacy
1315or
1316.Sy none .
1317In addition, any shared file systems are unshared and shared in the new
1318location.
1319.Pp
1320When the
1321.Sy mountpoint
1322property is set with
1323.Nm zfs Cm set Fl u
1324, the
1325.Sy mountpoint
1326property is updated but dataset is not mounted or unmounted and remains
1327as it was before.
1328.It Sy nbmand Ns = Ns Sy on Ns | Ns Sy off
1329Controls whether the file system should be mounted with
1330.Sy nbmand
1331.Pq Non-blocking mandatory locks .
1332Changes to this property only take effect when the file system is unmounted and
1333remounted.
1334This was only supported by Linux prior to 5.15, and was buggy there,
1335and is not supported by
1336.Fx .
1337On Solaris it's used for SMB clients.
1338.It Sy overlay Ns = Ns Sy on Ns | Ns Sy off
1339Allow mounting on a busy directory or a directory which already contains
1340files or directories.
1341This is the default mount behavior for Linux and
1342.Fx
1343file systems.
1344On these platforms the property is
1345.Sy on
1346by default.
1347Set to
1348.Sy off
1349to disable overlay mounts for consistency with OpenZFS on other platforms.
1350.It Sy primarycache Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata
1351Controls what is cached in the primary cache
1352.Pq ARC .
1353If this property is set to
1354.Sy all ,
1355then both user data and metadata is cached.
1356If this property is set to
1357.Sy none ,
1358then neither user data nor metadata is cached.
1359If this property is set to
1360.Sy metadata ,
1361then only metadata is cached.
1362The default value is
1363.Sy all .
1364.It Sy quota Ns = Ns Ar size Ns | Ns Sy none
1365Limits the amount of space a dataset and its descendants can consume.
1366This property enforces a hard limit on the amount of space used.
1367This includes all space consumed by descendants, including file systems and
1368snapshots.
1369Setting a quota on a descendant of a dataset that already has a quota does not
1370override the ancestor's quota, but rather imposes an additional limit.
1371.Pp
1372Quotas cannot be set on volumes, as the
1373.Sy volsize
1374property acts as an implicit quota.
1375.It Sy snapshot_limit Ns = Ns Ar count Ns | Ns Sy none
1376Limits the number of snapshots that can be created on a dataset and its
1377descendants.
1378Setting a
1379.Sy snapshot_limit
1380on a descendant of a dataset that already has a
1381.Sy snapshot_limit
1382does not override the ancestor's
1383.Sy snapshot_limit ,
1384but rather imposes an additional limit.
1385The limit is not enforced if the user is allowed to change the limit.
1386For example, this means that recursive snapshots taken from the global zone are
1387counted against each delegated dataset within a zone.
1388This feature must be enabled to be used
1389.Po see
1390.Xr zpool-features 7
1391.Pc .
1392.It Sy userquota@ Ns Ar user Ns = Ns Ar size Ns | Ns Sy none
1393Limits the amount of space consumed by the specified user.
1394User space consumption is identified by the
1395.Sy userspace@ Ns Ar user
1396property.
1397.Pp
1398Enforcement of user quotas may be delayed by several seconds.
1399This delay means that a user might exceed their quota before the system notices
1400that they are over quota and begins to refuse additional writes with the
1401.Er EDQUOT
1402error message.
1403See the
1404.Nm zfs Cm userspace
1405command for more information.
1406.Pp
1407Unprivileged users can only access their own groups' space usage.
1408The root user, or a user who has been granted the
1409.Sy userquota
1410privilege with
1411.Nm zfs Cm allow ,
1412can get and set everyone's quota.
1413.Pp
1414This property is not available on volumes, on file systems before version 4, or
1415on pools before version 15.
1416The
1417.Sy userquota@ Ns Ar …
1418properties are not displayed by
1419.Nm zfs Cm get Sy all .
1420The user's name must be appended after the
1421.Sy @
1422symbol, using one of the following forms:
1423.Bl -bullet -compact -offset 4n
1424.It
1425POSIX name
1426.Pq Qq joe
1427.It
1428POSIX numeric ID
1429.Pq Qq 789
1430.It
1431SID name
1432.Pq Qq joe.smith@mydomain
1433.It
1434SID numeric ID
1435.Pq Qq S-1-123-456-789
1436.El
1437.Pp
1438Files created on Linux always have POSIX owners.
1439.It Sy defaultuserquota Ns = Ns Ar size Ns | Ns Sy none
1440Sets a default user quota to be applied to each user for whom no
1441user-specific quota is set.
1442The value
1443.Sy 0
1444disables defaultuserquota.
1445.It Sy userobjquota@ Ns Ar user Ns = Ns Ar size Ns | Ns Sy none
1446The
1447.Sy userobjquota
1448is similar to
1449.Sy userquota
1450but it limits the number of objects a user can create.
1451Please refer to
1452.Sy userobjused
1453for more information about how objects are counted.
1454.It Sy defaultuserobjquota Ns = Ns Ar size Ns | Ns Sy none
1455Sets a default user object quota to be applied to each user for
1456whom no userobj-specific quota is set.
1457The value
1458.Sy 0
1459disables defaultuserobjquota.
1460.It Sy groupquota@ Ns Ar group Ns = Ns Ar size Ns | Ns Sy none
1461Limits the amount of space consumed by the specified group.
1462Group space consumption is identified by the
1463.Sy groupused@ Ns Ar group
1464property.
1465.Pp
1466Unprivileged users can access only their own groups' space usage.
1467The root user, or a user who has been granted the
1468.Sy groupquota
1469privilege with
1470.Nm zfs Cm allow ,
1471can get and set all groups' quotas.
1472.It Sy defaultgroupquota Ns = Ns Ar size Ns | Ns Sy none
1473Sets a default group quota to be applied to each group for whom no
1474group-specific quota is set.
1475The value
1476.Sy 0
1477disables defaultgroupquota.
1478.It Sy groupobjquota@ Ns Ar group Ns = Ns Ar size Ns | Ns Sy none
1479The
1480.Sy groupobjquota
1481is similar to
1482.Sy groupquota
1483but it limits number of objects a group can consume.
1484Please refer to
1485.Sy userobjused
1486for more information about how objects are counted.
1487.It Sy defaultgroupobjquota Ns = Ns Ar size Ns | Ns Sy none
1488Sets a default group object quota to be applied to each group for
1489whom no groupobj-specific quota is set.
1490The value
1491.Sy 0
1492disables defaultgroupobjquota.
1493.It Sy projectquota@ Ns Ar project Ns = Ns Ar size Ns | Ns Sy none
1494Limits the amount of space consumed by the specified project.
1495Project space consumption is identified by the
1496.Sy projectused@ Ns Ar project
1497property.
1498Please refer to
1499.Sy projectused
1500for more information about how project is identified and set/changed.
1501.Pp
1502The root user, or a user who has been granted the
1503.Sy projectquota
1504privilege with
1505.Nm zfs allow ,
1506can access all projects' quota.
1507.It Sy defaultprojectquota Ns = Ns Ar size Ns | Ns Sy none
1508Sets a default project quota to be applied to each project for whom no
1509project-specific quota is set.
1510The value
1511.Sy 0
1512disables defaultprojectquota.
1513.It Sy projectobjquota@ Ns Ar project Ns = Ns Ar size Ns | Ns Sy none
1514The
1515.Sy projectobjquota
1516is similar to
1517.Sy projectquota
1518but it limits number of objects a project can consume.
1519Please refer to
1520.Sy userobjused
1521for more information about how objects are counted.
1522.It Sy defaultprojectobjquota Ns = Ns Ar size Ns | Ns Sy none
1523Sets a default project object quota to be applied to each project for
1524whom no projectobj-specific quota is set.
1525The value
1526.Sy 0
1527disables defaultprojectobjquota.
1528.It Sy readonly Ns = Ns Sy on Ns | Ns Sy off
1529Controls whether this dataset can be modified.
1530The default value is
1531.Sy off .
1532The values
1533.Sy on
1534and
1535.Sy off
1536are equivalent to the
1537.Sy ro
1538and
1539.Sy rw
1540mount options.
1541.Pp
1542This property can also be referred to by its shortened column name,
1543.Sy rdonly .
1544.It Sy recordsize Ns = Ns Ar size
1545Specifies a suggested block size for files in the file system.
1546This property is designed solely for use with database workloads that access
1547files in fixed-size records.
1548ZFS automatically tunes block sizes according to internal algorithms optimized
1549for typical access patterns.
1550.Pp
1551For databases that create very large files but access them in small random
1552chunks, these algorithms may be suboptimal.
1553Specifying a
1554.Sy recordsize
1555greater than or equal to the record size of the database can result in
1556significant performance gains.
1557Use of this property for general purpose file systems is strongly discouraged,
1558and may adversely affect performance.
1559.Pp
1560The size specified must be a power of two greater than or equal to
1561.Ar 512 B
1562and less than or equal to
1563.Ar 128 KiB .
1564If the
1565.Sy large_blocks
1566feature is enabled on the pool, the size may be up to
1567.Ar 16 MiB .
1568See
1569.Xr zpool-features 7
1570for details on ZFS feature flags.
1571.Pp
1572However, blocks larger than
1573.Ar 1 MiB
1574can have an impact on i/o latency (e.g. tying up a spinning disk for
1575~300ms), and also potentially on the memory allocator.
1576.Pp
1577Note that maximum size is still limited by default to
1578.Ar 1 MiB
1579on x86_32, see
1580.Sy zfs_max_recordsize
1581module parameter.
1582.Pp
1583Changing the file system's
1584.Sy recordsize
1585affects only files created afterward; existing files are unaffected.
1586.Pp
1587This property can also be referred to by its shortened column name,
1588.Sy recsize .
1589.It Sy redundant_metadata Ns = Ns Sy all Ns | Ns Sy most Ns | Ns Sy some Ns | Ns Sy none
1590Controls what types of metadata are stored redundantly.
1591ZFS stores an extra copy of metadata, so that if a single block is corrupted,
1592the amount of user data lost is limited.
1593This extra copy is in addition to any redundancy provided at the pool level
1594.Pq e.g. by mirroring or RAID-Z ,
1595and is in addition to an extra copy specified by the
1596.Sy copies
1597property
1598.Pq up to a total of 3 copies .
1599For example if the pool is mirrored,
1600.Sy copies Ns = Ns 2 ,
1601and
1602.Sy redundant_metadata Ns = Ns Sy most ,
1603then ZFS stores 6 copies of most metadata, and 4 copies of data and some
1604metadata.
1605.Pp
1606When set to
1607.Sy all ,
1608ZFS stores an extra copy of all metadata.
1609If a single on-disk block is corrupt, at worst a single block of user data
1610.Po which is
1611.Sy recordsize
1612bytes long
1613.Pc
1614can be lost.
1615.Pp
1616When set to
1617.Sy most ,
1618ZFS stores an extra copy of most types of metadata.
1619This can improve performance of random writes, because less metadata must be
1620written.
1621In practice, at worst about 1000 blocks
1622.Po of
1623.Sy recordsize
1624bytes each
1625.Pc
1626of user data can be lost if a single on-disk block is corrupt.
1627The exact behavior of which metadata blocks are stored redundantly may change in
1628future releases.
1629.Pp
1630When set to
1631.Sy some ,
1632ZFS stores an extra copy of only critical metadata.
1633This can improve file create performance since less metadata
1634needs to be written.
1635If a single on-disk block is corrupt, multiple user files or directories
1636can be lost.
1637.Pp
1638When set to
1639.Sy none ,
1640ZFS does not store any copies of metadata redundantly.
1641If a single on-disk block is corrupt, an entire dataset can be lost.
1642.Pp
1643The default value is
1644.Sy all .
1645.It Sy refquota Ns = Ns Ar size Ns | Ns Sy none
1646Limits the amount of space a dataset can consume.
1647This property enforces a hard limit on the amount of space used.
1648This hard limit does not include space used by descendants, including file
1649systems and snapshots.
1650.It Sy refreservation Ns = Ns Ar size Ns | Ns Sy none Ns | Ns Sy auto
1651The minimum amount of space guaranteed to a dataset, not including its
1652descendants.
1653When the amount of space used is below this value, the dataset is treated as if
1654it were taking up the amount of space specified by
1655.Sy refreservation .
1656The
1657.Sy refreservation
1658reservation is accounted for in the parent datasets' space used, and counts
1659against the parent datasets' quotas and reservations.
1660.Pp
1661If
1662.Sy refreservation
1663is set, a snapshot is only allowed if there is enough free pool space outside of
1664this reservation to accommodate the current number of
1665.Qq referenced
1666bytes in the dataset.
1667.Pp
1668If
1669.Sy refreservation
1670is set to
1671.Sy auto ,
1672a volume is thick provisioned
1673.Po or
1674.Qq not sparse
1675.Pc .
1676.Sy refreservation Ns = Ns Sy auto
1677is only supported on volumes.
1678See
1679.Sy volsize
1680in the
1681.Sx Native Properties
1682section for more information about sparse volumes.
1683.Pp
1684This property can also be referred to by its shortened column name,
1685.Sy refreserv .
1686.It Sy relatime Ns = Ns Sy on Ns | Ns Sy off
1687Controls the manner in which the access time is updated when
1688.Sy atime Ns = Ns Sy on
1689is set.
1690Turning this property on causes the access time to be updated relative
1691to the modify or change time.
1692Access time is only updated if the previous
1693access time was earlier than the current modify or change time or if the
1694existing access time hasn't been updated within the past 24 hours.
1695The default value is
1696.Sy on .
1697The values
1698.Sy on
1699and
1700.Sy off
1701are equivalent to the
1702.Sy relatime
1703and
1704.Sy norelatime
1705mount options.
1706.It Sy reservation Ns = Ns Ar size Ns | Ns Sy none
1707The minimum amount of space guaranteed to a dataset and its descendants.
1708When the amount of space used is below this value, the dataset is treated as if
1709it were taking up the amount of space specified by its reservation.
1710Reservations are accounted for in the parent datasets' space used, and count
1711against the parent datasets' quotas and reservations.
1712.Pp
1713This property can also be referred to by its shortened column name,
1714.Sy reserv .
1715.It Sy secondarycache Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata
1716Controls what is cached in the secondary cache
1717.Pq L2ARC .
1718If this property is set to
1719.Sy all ,
1720then both user data and metadata is cached.
1721If this property is set to
1722.Sy none ,
1723then neither user data nor metadata is cached.
1724If this property is set to
1725.Sy metadata ,
1726then only metadata is cached.
1727The default value is
1728.Sy all .
1729.It Sy prefetch Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata
1730Controls what speculative prefetch does.
1731If this property is set to
1732.Sy all ,
1733then both user data and metadata are prefetched.
1734If this property is set to
1735.Sy none ,
1736then neither user data nor metadata are prefetched.
1737If this property is set to
1738.Sy metadata ,
1739then only metadata are prefetched.
1740The default value is
1741.Sy all .
1742.Pp
1743Please note that the module parameter zfs_prefetch_disable=1 can
1744be used to totally disable speculative prefetch, bypassing anything
1745this property does.
1746.It Sy setuid Ns = Ns Sy on Ns | Ns Sy off
1747Controls whether the setuid bit is respected for the file system.
1748The default value is
1749.Sy on .
1750The values
1751.Sy on
1752and
1753.Sy off
1754are equivalent to the
1755.Sy suid
1756and
1757.Sy nosuid
1758mount options.
1759.It Sy sharesmb Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Ar opts
1760Controls whether the file system is shared by using
1761.Sy Samba USERSHARES
1762and what options are to be used.
1763Otherwise, the file system is automatically shared and unshared with the
1764.Nm zfs Cm share
1765and
1766.Nm zfs Cm unshare
1767commands.
1768If the property is set to on, the
1769.Xr net 8
1770command is invoked to create a
1771.Sy USERSHARE .
1772.Pp
1773Because SMB shares requires a resource name, a unique resource name is
1774constructed from the dataset name.
1775The constructed name is a copy of the
1776dataset name except that the characters in the dataset name, which would be
1777invalid in the resource name, are replaced with underscore (_) characters.
1778Linux does not currently support additional options which might be available
1779on Solaris.
1780.Pp
1781If the
1782.Sy sharesmb
1783property is set to
1784.Sy off ,
1785the file systems are unshared.
1786.Pp
1787The share is created with the ACL (Access Control List) "Everyone:F" ("F"
1788stands for "full permissions", i.e. read and write permissions) and no guest
1789access (which means Samba must be able to authenticate a real user \(em
1790.Xr passwd 5 Ns / Ns Xr shadow 5 Ns - ,
1791LDAP- or
1792.Xr smbpasswd 5 Ns -based )
1793by default.
1794This means that any additional access control
1795(disallow specific user specific access etc) must be done on the underlying file
1796system.
1797.Pp
1798When the
1799.Sy sharesmb
1800property is updated with
1801.Nm zfs Cm set Fl u
1802, the property is set to desired value, but the operation to share, reshare
1803or unshare the the dataset is not performed.
1804.It Sy sharenfs Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Ar opts
1805Controls whether the file system is shared via NFS, and what options are to be
1806used.
1807A file system with a
1808.Sy sharenfs
1809property of
1810.Sy off
1811is managed with the
1812.Xr exportfs 8
1813command and entries in the
1814.Pa /etc/exports
1815file.
1816Otherwise, the file system is automatically shared and unshared with the
1817.Nm zfs Cm share
1818and
1819.Nm zfs Cm unshare
1820commands.
1821If the property is set to
1822.Sy on ,
1823the dataset is shared using the default options:
1824.Dl sec=sys,rw,crossmnt,no_subtree_check
1825.Pp
1826Please note that the options are comma-separated, unlike those found in
1827.Xr exports 5 .
1828This is done to negate the need for quoting, as well as to make parsing
1829with scripts easier.
1830.Pp
1831For
1832.Fx ,
1833there may be multiple sets of options separated by semicolon(s).
1834Each set of options must apply to different hosts or networks and each
1835set of options will create a separate line for
1836.Xr exports 5 .
1837Any semicolon separated option set that consists entirely of whitespace
1838will be ignored.
1839This use of semicolons is only for
1840.Fx
1841at this time.
1842.Pp
1843See
1844.Xr exports 5
1845for the meaning of the default options.
1846Otherwise, the
1847.Xr exportfs 8
1848command is invoked with options equivalent to the contents of this property.
1849.Pp
1850When the
1851.Sy sharenfs
1852property is changed for a dataset, the dataset and any children inheriting the
1853property are re-shared with the new options, only if the property was previously
1854.Sy off ,
1855or if they were shared before the property was changed.
1856If the new property is
1857.Sy off ,
1858the file systems are unshared.
1859.Pp
1860When the
1861.Sy sharenfs
1862property is updated with
1863.Nm zfs Cm set Fl u
1864, the property is set to desired value, but the operation to share, reshare
1865or unshare the the dataset is not performed.
1866.It Sy logbias Ns = Ns Sy latency Ns | Ns Sy throughput
1867Provide a hint to ZFS about handling of synchronous requests in this dataset.
1868If
1869.Sy logbias
1870is set to
1871.Sy latency
1872.Pq the default ,
1873ZFS will use pool log devices
1874.Pq if configured
1875to handle the requests at low latency.
1876If
1877.Sy logbias
1878is set to
1879.Sy throughput ,
1880ZFS will not use configured pool log devices.
1881ZFS will instead optimize synchronous operations for global pool throughput and
1882efficient use of resources.
1883.It Sy snapdev Ns = Ns Sy hidden Ns | Ns Sy visible
1884Controls whether the volume snapshot devices under
1885.Pa /dev/zvol/ Ns Aq Ar pool
1886are hidden or visible.
1887The default value is
1888.Sy hidden .
1889.It Sy snapdir Ns = Ns Sy disabled Ns | Ns Sy hidden Ns | Ns Sy visible
1890Controls whether the
1891.Pa .zfs
1892directory is disabled, hidden or visible in the root of the file system as
1893discussed in the
1894.Sx Snapshots
1895section of
1896.Xr zfsconcepts 7 .
1897The default value is
1898.Sy hidden .
1899.It Sy sync Ns = Ns Sy standard Ns | Ns Sy always Ns | Ns Sy disabled
1900Controls the behavior of synchronous requests
1901.Pq e.g. fsync, O_DSYNC .
1902.Sy standard
1903is the POSIX-specified behavior of ensuring all synchronous requests
1904are written to stable storage and all devices are flushed to ensure
1905data is not cached by device controllers
1906.Pq this is the default .
1907.Sy always
1908causes every file system transaction to be written and flushed before its
1909system call returns.
1910This has a large performance penalty.
1911.Sy disabled
1912disables synchronous requests.
1913File system transactions are only committed to stable storage periodically.
1914This option will give the highest performance.
1915However, it is very dangerous as ZFS would be ignoring the synchronous
1916transaction demands of applications such as databases or NFS.
1917Administrators should only use this option when the risks are understood.
1918.It Sy version Ns = Ns Ar N Ns | Ns Sy current
1919The on-disk version of this file system, which is independent of the pool
1920version.
1921This property can only be set to later supported versions.
1922See the
1923.Nm zfs Cm upgrade
1924command.
1925.It Sy volsize Ns = Ns Ar size
1926For volumes, specifies the logical size of the volume.
1927By default, creating a volume establishes a reservation of equal size.
1928For storage pools with a version number of 9 or higher, a
1929.Sy refreservation
1930is set instead.
1931Any changes to
1932.Sy volsize
1933are reflected in an equivalent change to the reservation
1934.Pq or Sy refreservation .
1935The
1936.Sy volsize
1937can only be set to a multiple of
1938.Sy volblocksize ,
1939and cannot be zero.
1940.Pp
1941The reservation is kept equal to the volume's logical size to prevent unexpected
1942behavior for consumers.
1943Without the reservation, the volume could run out of space, resulting in
1944undefined behavior or data corruption, depending on how the volume is used.
1945These effects can also occur when the volume size is changed while it is in use
1946.Pq particularly when shrinking the size .
1947Extreme care should be used when adjusting the volume size.
1948.Pp
1949Though not recommended, a
1950.Qq sparse volume
1951.Po also known as
1952.Qq thin provisioned
1953.Pc
1954can be created by specifying the
1955.Fl s
1956option to the
1957.Nm zfs Cm create Fl V
1958command, or by changing the value of the
1959.Sy refreservation
1960property
1961.Po or
1962.Sy reservation
1963property on pool version 8 or earlier
1964.Pc
1965after the volume has been created.
1966A
1967.Qq sparse volume
1968is a volume where the value of
1969.Sy refreservation
1970is less than the size of the volume plus the space required to store its
1971metadata.
1972Consequently, writes to a sparse volume can fail with
1973.Er ENOSPC
1974when the pool is low on space.
1975For a sparse volume, changes to
1976.Sy volsize
1977are not reflected in the
1978.Sy refreservation .
1979A volume that is not sparse is said to be
1980.Qq thick provisioned .
1981A sparse volume can become thick provisioned by setting
1982.Sy refreservation
1983to
1984.Sy auto .
1985.It Sy volmode Ns = Ns Sy default Ns | Ns Sy full Ns | Ns Sy geom Ns | Ns Sy dev Ns | Ns Sy none
1986This property specifies how volumes should be exposed to the OS.
1987Setting it to
1988.Sy full
1989exposes volumes as fully fledged block devices, providing maximal
1990functionality.
1991The value
1992.Sy geom
1993is just an alias for
1994.Sy full
1995and is kept for compatibility.
1996Setting it to
1997.Sy dev
1998hides its partitions.
1999Volumes with property set to
2000.Sy none
2001are not exposed outside ZFS, but can be snapshotted, cloned, replicated, etc,
2002that can be suitable for backup purposes.
2003Value
2004.Sy default
2005means that volumes exposition is controlled by system-wide tunable
2006.Sy zvol_volmode ,
2007where
2008.Sy full ,
2009.Sy dev
2010and
2011.Sy none
2012are encoded as 1, 2 and 3 respectively.
2013The default value is
2014.Sy full .
2015.It Sy vscan Ns = Ns Sy on Ns | Ns Sy off
2016Controls whether regular files should be scanned for viruses when a file is
2017opened and closed.
2018In addition to enabling this property, the virus scan service must also be
2019enabled for virus scanning to occur.
2020The default value is
2021.Sy off .
2022This property is not used by OpenZFS.
2023.It Sy xattr Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy dir Ns | Ns Sy sa
2024Controls whether extended attributes are enabled for this file system.
2025Two styles of extended attributes are supported: either directory-based
2026or system-attribute-based.
2027.Pp
2028Directory-based extended attributes can be enabled by setting the value to
2029.Sy dir .
2030This style of extended attribute imposes no practical limit
2031on either the size or number of attributes which can be set on a file.
2032Although under Linux the
2033.Xr getxattr 2
2034and
2035.Xr setxattr 2
2036system calls limit the maximum size to
2037.Sy 64K .
2038This is the most compatible
2039style of extended attribute and is supported by all ZFS implementations.
2040.Pp
2041System-attribute-based xattrs can be enabled by setting the value to
2042.Sy sa
2043(default and equal to
2044.Sy on
2045) .
2046The key advantage of this type of xattr is improved performance.
2047Storing extended attributes as system attributes
2048significantly decreases the amount of disk I/O required.
2049Up to
2050.Sy 64K
2051of data may be stored per-file in the space reserved for system attributes.
2052If there is not enough space available for an extended attribute
2053then it will be automatically written as a directory-based xattr.
2054System-attribute-based extended attributes are not accessible
2055on platforms which do not support the
2056.Sy xattr Ns = Ns Sy sa
2057feature.
2058OpenZFS supports
2059.Sy xattr Ns = Ns Sy sa
2060on both
2061.Fx
2062and Linux.
2063.Pp
2064The use of system-attribute-based xattrs is strongly encouraged for users of
2065SELinux or POSIX ACLs.
2066Both of these features heavily rely on extended
2067attributes and benefit significantly from the reduced access time.
2068.Pp
2069The values
2070.Sy on
2071and
2072.Sy off
2073are equivalent to the
2074.Sy xattr
2075and
2076.Sy noxattr
2077mount options.
2078.It Sy jailed Ns = Ns Sy off Ns | Ns Sy on
2079Controls whether the dataset is managed from a jail.
2080See
2081.Xr zfs-jail 8
2082for more information.
2083Jails are a
2084.Fx
2085feature and this property is not available on other platforms.
2086.It Sy zoned Ns = Ns Sy off Ns | Ns Sy on
2087Controls whether the dataset is managed from a non-global zone or namespace.
2088See
2089.Xr zfs-zone 8
2090for more information.
2091Zoning is a
2092Linux
2093feature and this property is not available on other platforms.
2094.El
2095.Pp
2096The following three properties cannot be changed after the file system is
2097created, and therefore, should be set when the file system is created.
2098If the properties are not set with the
2099.Nm zfs Cm create
2100or
2101.Nm zpool Cm create
2102commands, these properties are inherited from the parent dataset.
2103If the parent dataset lacks these properties due to having been created prior to
2104these features being supported, the new file system will have the default values
2105for these properties.
2106.Bl -tag -width ""
2107.It Xo
2108.Sy casesensitivity Ns = Ns Sy sensitive Ns | Ns
2109.Sy insensitive Ns | Ns Sy mixed
2110.Xc
2111Indicates whether the file name matching algorithm used by the file system
2112should be case-sensitive, case-insensitive, or allow a combination of both
2113styles of matching.
2114The default value for the
2115.Sy casesensitivity
2116property is
2117.Sy sensitive .
2118Traditionally,
2119.Ux
2120and POSIX file systems have case-sensitive file names.
2121.Pp
2122The
2123.Sy mixed
2124value for the
2125.Sy casesensitivity
2126property indicates that the file system can support requests for both
2127case-sensitive and case-insensitive matching behavior.
2128Currently, case-insensitive matching behavior on a file system that supports
2129mixed behavior is limited to the SMB server product.
2130For more information about the
2131.Sy mixed
2132value behavior, see the "ZFS Administration Guide".
2133.It Xo
2134.Sy normalization Ns = Ns Sy none Ns | Ns Sy formC Ns | Ns
2135.Sy formD Ns | Ns Sy formKC Ns | Ns Sy formKD
2136.Xc
2137Indicates whether the file system should perform a
2138.Sy Unicode
2139normalization of file names whenever two file names are compared, and which
2140normalization algorithm should be used.
2141File names are always stored unmodified, names are normalized as part of any
2142comparison process.
2143If this property is set to a legal value other than
2144.Sy none ,
2145and the
2146.Sy utf8only
2147property was left unspecified, the
2148.Sy utf8only
2149property is automatically set to
2150.Sy on .
2151The default value of the
2152.Sy normalization
2153property is
2154.Sy none .
2155This property cannot be changed after the file system is created.
2156.It Sy utf8only Ns = Ns Sy on Ns | Ns Sy off
2157Indicates whether the file system should reject file names that include
2158characters that are not present in the
2159.Sy UTF-8
2160character code set.
2161If this property is explicitly set to
2162.Sy off ,
2163the normalization property must either not be explicitly set or be set to
2164.Sy none .
2165The default value for the
2166.Sy utf8only
2167property is
2168.Sy off .
2169This property cannot be changed after the file system is created.
2170.El
2171.Pp
2172The
2173.Sy casesensitivity ,
2174.Sy normalization ,
2175and
2176.Sy utf8only
2177properties are also new permissions that can be assigned to non-privileged users
2178by using the ZFS delegated administration feature.
2179.
2180.Ss Temporary Mount Point Properties
2181When a file system is mounted, either through
2182.Xr mount 8
2183for legacy mounts or the
2184.Nm zfs Cm mount
2185command for normal file systems, its mount options are set according to its
2186properties.
2187The correlation between properties and mount options is as follows:
2188.Bl -tag -compact -offset Ds -width "rootcontext="
2189.It Sy atime
2190atime/noatime
2191.It Sy canmount
2192auto/noauto
2193.It Sy devices
2194dev/nodev
2195.It Sy exec
2196exec/noexec
2197.It Sy readonly
2198ro/rw
2199.It Sy relatime
2200relatime/norelatime
2201.It Sy setuid
2202suid/nosuid
2203.It Sy xattr
2204xattr/noxattr
2205.It Sy nbmand
2206mand/nomand
2207.It Sy context Ns =
2208context=
2209.It Sy fscontext Ns =
2210fscontext=
2211.It Sy defcontext Ns =
2212defcontext=
2213.It Sy rootcontext Ns =
2214rootcontext=
2215.El
2216.Pp
2217In addition, these options can be set on a per-mount basis using the
2218.Fl o
2219option, without affecting the property that is stored on disk.
2220The values specified on the command line override the values stored in the
2221dataset.
2222The
2223.Sy nosuid
2224option is an alias for
2225.Sy nodevices , Ns Sy nosetuid .
2226These properties are reported as
2227.Qq temporary
2228by the
2229.Nm zfs Cm get
2230command.
2231If the properties are changed while the dataset is mounted, the new setting
2232overrides any temporary settings.
2233.
2234.Ss User Properties
2235In addition to the standard native properties, ZFS supports arbitrary user
2236properties.
2237User properties have no effect on ZFS behavior, but applications or
2238administrators can use them to annotate datasets
2239.Pq file systems, volumes, and snapshots .
2240.Pp
2241User property names must contain a colon
2242.Pq Qq Sy \&:
2243character to distinguish them from native properties.
2244They may contain lowercase letters, numbers, and the following punctuation
2245characters: colon
2246.Pq Qq Sy \&: ,
2247dash
2248.Pq Qq Sy - ,
2249period
2250.Pq Qq Sy \&. ,
2251and underscore
2252.Pq Qq Sy _ .
2253The expected convention is that the property name is divided into two portions
2254such as
2255.Ar module : Ns Ar property ,
2256but this namespace is not enforced by ZFS.
2257User property names can be at most 256 characters, and cannot begin with a dash
2258.Pq Qq Sy - .
2259.Pp
2260When making programmatic use of user properties, it is strongly suggested to use
2261a reversed DNS domain name for the
2262.Ar module
2263component of property names to reduce the chance that two
2264independently-developed packages use the same property name for different
2265purposes.
2266.Pp
2267The values of user properties are arbitrary strings, are always inherited, and
2268are never validated.
2269All of the commands that operate on properties
2270.Po Nm zfs Cm list ,
2271.Nm zfs Cm get ,
2272.Nm zfs Cm set ,
2273and so forth
2274.Pc
2275can be used to manipulate both native properties and user properties.
2276Use the
2277.Nm zfs Cm inherit
2278command to clear a user property.
2279If the property is not defined in any parent dataset, it is removed entirely.
2280Property values are limited to 8192 bytes.
2281