The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/man/man7/zfsprops.7

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: f111c48a7d25913d6fb42132da2b6166


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.