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