1.\" SPDX-License-Identifier: CDDL-1.0 2.\" 3.\" CDDL HEADER START 4.\" 5.\" The contents of this file are subject to the terms of the 6.\" Common Development and Distribution License (the "License"). 7.\" You may not use this file except in compliance with the License. 8.\" 9.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10.\" or https://opensource.org/licenses/CDDL-1.0. 11.\" See the License for the specific language governing permissions 12.\" and limitations under the License. 13.\" 14.\" When distributing Covered Code, include this CDDL HEADER in each 15.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16.\" If applicable, add the following below this CDDL HEADER, with the 17.\" fields enclosed by brackets "[]" replaced with your own identifying 18.\" information: Portions Copyright [yyyy] [name of copyright owner] 19.\" 20.\" CDDL HEADER END 21.\" 22.\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. 23.\" Copyright 2011 Joshua M. Clulow <josh@sysmgr.org> 24.\" Copyright (c) 2011, 2019 by Delphix. All rights reserved. 25.\" Copyright (c) 2011, Pawel Jakub Dawidek <pjd@FreeBSD.org> 26.\" Copyright (c) 2012, Glen Barber <gjb@FreeBSD.org> 27.\" Copyright (c) 2012, Bryan Drewery <bdrewery@FreeBSD.org> 28.\" Copyright (c) 2013, Steven Hartland <smh@FreeBSD.org> 29.\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved. 30.\" Copyright (c) 2014, Joyent, Inc. All rights reserved. 31.\" Copyright (c) 2014 by Adam Stevko. All rights reserved. 32.\" Copyright (c) 2014 Integros [integros.com] 33.\" Copyright (c) 2016 Nexenta Systems, Inc. All Rights Reserved. 34.\" Copyright (c) 2014, Xin LI <delphij@FreeBSD.org> 35.\" Copyright (c) 2014-2015, The FreeBSD Foundation, All Rights Reserved. 36.\" Copyright 2019 Richard Laager. All rights reserved. 37.\" Copyright 2018 Nexenta Systems, Inc. 38.\" Copyright 2019 Joyent, Inc. 39.\" Copyright (c) 2019, Kjeld Schouten-Lebbing 40.\" Copyright (c) 2022 Hewlett Packard Enterprise Development LP. 41.\" 42.Dd June 29, 2024 43.Dt ZFSPROPS 7 44.Os 45. 46.Sh NAME 47.Nm zfsprops 48.Nd native and user-defined properties of ZFS datasets 49. 50.Sh DESCRIPTION 51Properties are divided into two types, native properties and user-defined 52.Po or 53.Qq user 54.Pc 55properties. 56Native properties either export internal statistics or control ZFS behavior. 57In addition, native properties are either editable or read-only. 58User properties have no effect on ZFS behavior, but you can use them to annotate 59datasets in a way that is meaningful in your environment. 60For more information about user properties, see the 61.Sx User Properties 62section, below. 63. 64.Ss Native Properties 65Every dataset has a set of properties that export statistics about the dataset 66as well as control various behaviors. 67Properties are inherited from the parent unless overridden by the child. 68Some properties apply only to certain types of datasets 69.Pq file systems, volumes, or snapshots . 70.Pp 71The values of numeric properties can be specified using human-readable suffixes 72.Po for example, 73.Sy k , 74.Sy KB , 75.Sy M , 76.Sy Gb , 77and so forth, up to 78.Sy Z 79for zettabyte 80.Pc . 81The following are all valid 82.Pq and equal 83specifications: 84.Li 1536M , 85.Li 1.5g , 86.Li 1.50GB . 87.Pp 88The values of non-numeric properties are case sensitive and must be lowercase, 89except for 90.Sy mountpoint , 91.Sy sharenfs , 92and 93.Sy sharesmb . 94.Pp 95The following native properties consist of read-only statistics about the 96dataset. 97These properties can be neither set, nor inherited. 98Native properties apply to all dataset types unless otherwise noted. 99.Bl -tag -width "usedbyrefreservation" 100.It Sy available 101The amount of space available to the dataset and all its children, assuming that 102there is no other activity in the pool. 103Because space is shared within a pool, availability can be limited by any number 104of factors, including physical pool size, quotas, reservations, or other 105datasets within the pool. 106.Pp 107This property can also be referred to by its shortened column name, 108.Sy avail . 109.It Sy compressratio 110For non-snapshots, the compression ratio achieved for the 111.Sy used 112space of this dataset, expressed as a multiplier. 113The 114.Sy used 115property includes descendant datasets, and, for clones, does not include the 116space shared with the origin snapshot. 117For snapshots, the 118.Sy compressratio 119is the same as the 120.Sy refcompressratio 121property. 122Compression can be turned on by running: 123.Nm zfs Cm set Sy compression Ns = Ns Sy on Ar dataset . 124The default value is 125.Sy off . 126.It Sy createtxg 127The transaction group (txg) in which the dataset was created. 128Bookmarks have the same 129.Sy createtxg 130as the snapshot they are initially tied to. 131This property is suitable for ordering a list of snapshots, 132e.g. for incremental send and receive. 133.It Sy creation 134The time this dataset was created. 135.It Sy clones 136For snapshots, this property is a comma-separated list of filesystems or volumes 137which are clones of this snapshot. 138The clones' 139.Sy origin 140property is this snapshot. 141If the 142.Sy clones 143property is not empty, then this snapshot can not be destroyed 144.Po even with the 145.Fl r 146or 147.Fl f 148options 149.Pc . 150The roles of origin and clone can be swapped by promoting the clone with the 151.Nm zfs Cm promote 152command. 153.It Sy defer_destroy 154This property is 155.Sy on 156if the snapshot has been marked for deferred destroy by using the 157.Nm zfs Cm destroy Fl d 158command. 159Otherwise, the property is 160.Sy off . 161.It Sy encryptionroot 162For encrypted datasets, indicates where the dataset is currently inheriting its 163encryption key from. 164Loading or unloading a key for the 165.Sy encryptionroot 166will implicitly load / unload the key for any inheriting datasets (see 167.Nm zfs Cm load-key 168and 169.Nm zfs Cm unload-key 170for details). 171Clones will always share an 172encryption key with their origin. 173See the 174.Sx Encryption 175section of 176.Xr zfs-load-key 8 177for details. 178.It Sy filesystem_count 179The total number of filesystems and volumes that exist under this location in 180the dataset tree. 181This value is only available when a 182.Sy filesystem_limit 183has been set somewhere in the tree under which the dataset resides. 184.It Sy keystatus 185Indicates if an encryption key is currently loaded into ZFS. 186The possible values are 187.Sy none , 188.Sy available , 189and 190.Sy unavailable . 191See 192.Nm zfs Cm load-key 193and 194.Nm zfs Cm unload-key . 195.It Sy guid 196The 64 bit GUID of this dataset or bookmark which does not change over its 197entire lifetime. 198When a snapshot is sent to another pool, the received snapshot has the same 199GUID. 200Thus, the 201.Sy guid 202is suitable to identify a snapshot across pools. 203.It Sy logicalreferenced 204The amount of space that is 205.Qq logically 206accessible by this dataset. 207See the 208.Sy referenced 209property. 210The logical space ignores the effect of the 211.Sy compression 212and 213.Sy copies 214properties, giving a quantity closer to the amount of data that applications 215see. 216However, it does include space consumed by metadata. 217.Pp 218This property can also be referred to by its shortened column name, 219.Sy lrefer . 220.It Sy logicalused 221The amount of space that is 222.Qq logically 223consumed by this dataset and all its descendants. 224See the 225.Sy used 226property. 227The logical space ignores the effect of the 228.Sy compression 229and 230.Sy copies 231properties, giving a quantity closer to the amount of data that applications 232see. 233However, it does include space consumed by metadata. 234.Pp 235This property can also be referred to by its shortened column name, 236.Sy lused . 237.It Sy mounted 238For file systems, indicates whether the file system is currently mounted. 239This property can be either 240.Sy yes 241or 242.Sy no . 243.It Sy objsetid 244A unique identifier for this dataset within the pool. 245Unlike the dataset's 246.Sy guid , No the Sy objsetid 247of a dataset is not transferred to other pools when the snapshot is copied 248with a send/receive operation. 249The 250.Sy objsetid 251can be reused (for a new dataset) after the dataset is deleted. 252.It Sy origin 253For cloned file systems or volumes, the snapshot from which the clone was 254created. 255See also the 256.Sy clones 257property. 258.It Sy receive_resume_token 259For filesystems or volumes which have saved partially-completed state from 260.Nm zfs Cm receive Fl s , 261this opaque token can be provided to 262.Nm zfs Cm send Fl t 263to resume and complete the 264.Nm zfs Cm receive . 265.It Sy redact_snaps 266For bookmarks, this is the list of snapshot GUIDs the bookmark contains a 267redaction 268list for. 269For snapshots, this is the list of snapshot GUIDs the snapshot is redacted with 270respect to. 271.It Sy referenced 272The amount of data that is accessible by this dataset, which may or may not be 273shared with other datasets in the pool. 274When a snapshot or clone is created, it initially references the same amount of 275space as the file system or snapshot it was created from, since its contents are 276identical. 277.Pp 278This property can also be referred to by its shortened column name, 279.Sy refer . 280.It Sy refcompressratio 281The compression ratio achieved for the 282.Sy referenced 283space of this dataset, expressed as a multiplier. 284See also the 285.Sy compressratio 286property. 287.It Sy snapshot_count 288The total number of snapshots that exist under this location in the dataset 289tree. 290This value is only available when a 291.Sy snapshot_limit 292has been set somewhere in the tree under which the dataset resides. 293.It Sy type 294The type of dataset: 295.Sy filesystem , 296.Sy volume , 297.Sy snapshot , 298or 299.Sy bookmark . 300.It Sy used 301The amount of space consumed by this dataset and all its descendants. 302This is the value that is checked against this dataset's quota and reservation. 303The space used does not include this dataset's reservation, but does take into 304account the reservations of any descendent datasets. 305The amount of space that a dataset consumes from its parent, as well as the 306amount of space that is freed if this dataset is recursively destroyed, is the 307greater of its space used and its reservation. 308.Pp 309The used space of a snapshot 310.Po see the 311.Sx Snapshots 312section of 313.Xr zfsconcepts 7 314.Pc 315is space that is referenced exclusively by this snapshot. 316If this snapshot is destroyed, the amount of 317.Sy used 318space will be freed. 319Space that is shared by multiple snapshots isn't accounted for in this metric. 320When a snapshot is destroyed, space that was previously shared with this 321snapshot can become unique to snapshots adjacent to it, thus changing the used 322space of those snapshots. 323The used space of the latest snapshot can also be affected by changes in the 324file system. 325Note that the 326.Sy used 327space of a snapshot is a subset of the 328.Sy written 329space of the snapshot. 330.Pp 331The amount of space used, available, or referenced does not take into account 332pending changes. 333Pending changes are generally accounted for within a few seconds. 334Committing a change to a disk using 335.Xr fsync 2 336or 337.Sy O_SYNC 338does not necessarily guarantee that the space usage information is updated 339immediately. 340.It Sy usedby* 341The 342.Sy usedby* 343properties decompose the 344.Sy used 345properties into the various reasons that space is used. 346Specifically, 347.Sy used No = 348.Sy usedbychildren No + 349.Sy usedbydataset No + 350.Sy usedbyrefreservation No + 351.Sy usedbysnapshots . 352These properties are only available for datasets created on 353.Nm zpool 354.Qo version 13 Qc 355pools. 356.It Sy usedbychildren 357The amount of space used by children of this dataset, which would be freed if 358all the dataset's children were destroyed. 359.It Sy usedbydataset 360The amount of space used by this dataset itself, which would be freed if the 361dataset were destroyed 362.Po after first removing any 363.Sy refreservation 364and destroying any necessary snapshots or descendants 365.Pc . 366.It Sy usedbyrefreservation 367The amount of space used by a 368.Sy refreservation 369set on this dataset, which would be freed if the 370.Sy refreservation 371was removed. 372.It Sy usedbysnapshots 373The amount of space consumed by snapshots of this dataset. 374In particular, it is the amount of space that would be freed if all of this 375dataset's snapshots were destroyed. 376Note that this is not simply the sum of the snapshots' 377.Sy used 378properties because space can be shared by multiple snapshots. 379.It Sy userused Ns @ Ns Ar user 380The amount of space consumed by the specified user in this dataset. 381Space is charged to the owner of each file, as displayed by 382.Nm ls Fl l . 383The amount of space charged is displayed by 384.Nm du No and Nm ls Fl s . 385See the 386.Nm zfs Cm userspace 387command for more information. 388.Pp 389Unprivileged users can access only their own space usage. 390The root user, or a user who has been granted the 391.Sy userused 392privilege with 393.Nm zfs Cm allow , 394can access everyone's usage. 395.Pp 396The 397.Sy userused Ns @ Ns Ar … 398properties are not displayed by 399.Nm zfs Cm get Sy all . 400The user's name must be appended after the 401.Sy @ 402symbol, using one of the following forms: 403.Bl -bullet -compact -offset 4n 404.It 405POSIX name 406.Pq Qq joe 407.It 408POSIX numeric ID 409.Pq Qq 789 410.It 411SID name 412.Pq Qq joe.smith@mydomain 413.It 414SID numeric ID 415.Pq Qq S-1-123-456-789 416.El 417.Pp 418Files created on Linux always have POSIX owners. 419.It Sy userobjused Ns @ Ns Ar user 420The 421.Sy userobjused 422property is similar to 423.Sy userused 424but instead it counts the number of objects consumed by a user. 425This property counts all objects allocated on behalf of the user, 426it may differ from the results of system tools such as 427.Nm df Fl i . 428.Pp 429When the property 430.Sy xattr Ns = Ns Sy on 431is set on a file system additional objects will be created per-file to store 432extended attributes. 433These additional objects are reflected in the 434.Sy userobjused 435value and are counted against the user's 436.Sy userobjquota . 437When a file system is configured to use 438.Sy xattr Ns = Ns Sy sa 439no additional internal objects are normally required. 440.It Sy userrefs 441This property is set to the number of user holds on this snapshot. 442User holds are set by using the 443.Nm zfs Cm hold 444command. 445.It Sy groupused Ns @ Ns Ar group 446The amount of space consumed by the specified group in this dataset. 447Space is charged to the group of each file, as displayed by 448.Nm ls Fl l . 449See the 450.Sy userused Ns @ Ns Ar user 451property for more information. 452.Pp 453Unprivileged users can only access their own groups' space usage. 454The root user, or a user who has been granted the 455.Sy groupused 456privilege with 457.Nm zfs Cm allow , 458can access all groups' usage. 459.It Sy groupobjused Ns @ Ns Ar group 460The number of objects consumed by the specified group in this dataset. 461Multiple objects may be charged to the group for each file when extended 462attributes are in use. 463See the 464.Sy userobjused Ns @ Ns Ar user 465property for more information. 466.Pp 467Unprivileged users can only access their own groups' space usage. 468The root user, or a user who has been granted the 469.Sy groupobjused 470privilege with 471.Nm zfs Cm allow , 472can access all groups' usage. 473.It Sy projectused Ns @ Ns Ar project 474The amount of space consumed by the specified project in this dataset. 475Project is identified via the project identifier (ID) that is object-based 476numeral attribute. 477An object can inherit the project ID from its parent object (if the 478parent has the flag of inherit project ID that can be set and changed via 479.Nm chattr Fl /+P 480or 481.Nm zfs project Fl s ) 482when being created. 483The privileged user can set and change object's project 484ID via 485.Nm chattr Fl p 486or 487.Nm zfs project Fl s 488anytime. 489Space is charged to the project of each file, as displayed by 490.Nm lsattr Fl p 491or 492.Nm zfs project . 493See the 494.Sy userused Ns @ Ns Ar user 495property for more information. 496.Pp 497The root user, or a user who has been granted the 498.Sy projectused 499privilege with 500.Nm zfs allow , 501can access all projects' usage. 502.It Sy projectobjused Ns @ Ns Ar project 503The 504.Sy projectobjused 505is similar to 506.Sy projectused 507but instead it counts the number of objects consumed by project. 508When the property 509.Sy xattr Ns = Ns Sy on 510is set on a fileset, ZFS will create additional objects per-file to store 511extended attributes. 512These additional objects are reflected in the 513.Sy projectobjused 514value and are counted against the project's 515.Sy projectobjquota . 516When a filesystem is configured to use 517.Sy xattr Ns = Ns Sy sa 518no additional internal objects are required. 519See the 520.Sy userobjused Ns @ Ns Ar user 521property for more information. 522.Pp 523The root user, or a user who has been granted the 524.Sy projectobjused 525privilege with 526.Nm zfs allow , 527can access all projects' objects usage. 528.It Sy snapshots_changed 529Provides a mechanism to quickly determine whether snapshot list has 530changed without having to mount a dataset or iterate the snapshot list. 531Specifies the time at which a snapshot for a dataset was last 532created or deleted. 533.Pp 534This allows us to be more efficient how often we query snapshots. 535The property is persistent across mount and unmount operations only if the 536.Sy extensible_dataset 537feature is enabled. 538.It Sy volblocksize 539For volumes, specifies the block size of the volume. 540The 541.Sy blocksize 542cannot be changed once the volume has been written, so it should be set at 543volume creation time. 544The 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 . 1195If 1196.Sy prompt 1197is selected ZFS will ask for the key at the command prompt when it is required 1198to access the encrypted data (see 1199.Nm zfs Cm load-key 1200for details). 1201This setting will also allow the key to be passed in via the standard input 1202stream, 1203but users should be careful not to place keys which should be kept secret on 1204the command line. 1205If a file URI is selected, the key will be loaded from the 1206specified absolute file path. 1207If an HTTPS or HTTP URL is selected, it will be GETted using 1208.Xr fetch 3 , 1209libcurl, or nothing, depending on compile-time configuration and run-time 1210availability. 1211The 1212.Sy SSL_CA_CERT_FILE 1213environment variable can be set to set the location 1214of the concatenated certificate store. 1215The 1216.Sy SSL_CA_CERT_PATH 1217environment variable can be set to override the location 1218of the directory containing the certificate authority bundle. 1219The 1220.Sy SSL_CLIENT_CERT_FILE 1221and 1222.Sy SSL_CLIENT_KEY_FILE 1223environment variables can be set to configure the path 1224to the client certificate and its key. 1225.It Sy pbkdf2iters Ns = Ns Ar iterations 1226Controls the number of PBKDF2 iterations that a 1227.Sy passphrase 1228encryption key should be run through when processing it into an encryption key. 1229This property is only defined when encryption is enabled and a keyformat of 1230.Sy passphrase 1231is selected. 1232The goal of PBKDF2 is to significantly increase the 1233computational difficulty needed to brute force a user's passphrase. 1234This is accomplished by forcing the attacker to run each passphrase through a 1235computationally expensive hashing function many times before they arrive at the 1236resulting key. 1237A user who actually knows the passphrase will only have to pay this cost once. 1238As CPUs become better at processing, this number should be 1239raised to ensure that a brute force attack is still not possible. 1240The current default is 1241.Sy 350000 1242and the minimum is 1243.Sy 100000 . 1244This property may be changed with 1245.Nm zfs Cm change-key . 1246.It Sy exec Ns = Ns Sy on Ns | Ns Sy off 1247Controls whether processes can be executed from within this file system. 1248The default value is 1249.Sy on . 1250The values 1251.Sy on 1252and 1253.Sy off 1254are equivalent to the 1255.Sy exec 1256and 1257.Sy noexec 1258mount options. 1259.It Sy volthreading Ns = Ns Sy on Ns | Ns Sy off 1260Controls internal zvol threading. 1261The value 1262.Sy off 1263disables zvol threading, and zvol relies on application threads. 1264The default value is 1265.Sy on , 1266which enables threading within a zvol. 1267Please note that this property will be overridden by 1268.Sy zvol_request_sync 1269module parameter. 1270This property is only applicable to Linux. 1271.It Sy filesystem_limit Ns = Ns Ar count Ns | Ns Sy none 1272Limits the number of filesystems and volumes that can exist under this point in 1273the dataset tree. 1274The limit is not enforced if the user is allowed to change the limit. 1275Setting a 1276.Sy filesystem_limit 1277to 1278.Sy on 1279a descendant of a filesystem that already has a 1280.Sy filesystem_limit 1281does not override the ancestor's 1282.Sy filesystem_limit , 1283but rather imposes an additional limit. 1284This feature must be enabled to be used 1285.Po see 1286.Xr zpool-features 7 1287.Pc . 1288.It Sy special_small_blocks Ns = Ns Ar size 1289This value represents the threshold block size for including small file 1290or zvol blocks into the special allocation class. 1291Blocks smaller than or equal to this value after compression and encryption 1292will be assigned to the special allocation class, while greater blocks will 1293be assigned to the regular class. 1294Valid values are from 0 to maximum block size ( 1295.Ar 16 MiB 1296). 1297The default size is 0 which means no small file or zvol blocks 1298will be allocated in the special class. 1299.Pp 1300Before setting this property, a special class vdev must be added to the 1301pool. 1302See 1303.Xr zpoolconcepts 7 1304for more details on the special allocation class. 1305.It Sy mountpoint Ns = Ns Pa path Ns | Ns Sy none Ns | Ns Sy legacy 1306Controls the mount point used for this file system. 1307See the 1308.Sx Mount Points 1309section of 1310.Xr zfsconcepts 7 1311for more information on how this property is used. 1312.Pp 1313When the 1314.Sy mountpoint 1315property is changed for a file system, the file system and any children that 1316inherit the mount point are unmounted. 1317If the new value is 1318.Sy legacy , 1319then they remain unmounted. 1320Otherwise, they are automatically remounted in the new location if the property 1321was previously 1322.Sy legacy 1323or 1324.Sy none . 1325In addition, any shared file systems are unshared and shared in the new 1326location. 1327.Pp 1328When the 1329.Sy mountpoint 1330property is set with 1331.Nm zfs Cm set Fl u 1332, the 1333.Sy mountpoint 1334property is updated but dataset is not mounted or unmounted and remains 1335as it was before. 1336.It Sy nbmand Ns = Ns Sy on Ns | Ns Sy off 1337Controls whether the file system should be mounted with 1338.Sy nbmand 1339.Pq Non-blocking mandatory locks . 1340Changes to this property only take effect when the file system is unmounted and 1341remounted. 1342This was only supported by Linux prior to 5.15, and was buggy there, 1343and is not supported by 1344.Fx . 1345On Solaris it's used for SMB clients. 1346.It Sy overlay Ns = Ns Sy on Ns | Ns Sy off 1347Allow mounting on a busy directory or a directory which already contains 1348files or directories. 1349This is the default mount behavior for Linux and 1350.Fx 1351file systems. 1352On these platforms the property is 1353.Sy on 1354by default. 1355Set to 1356.Sy off 1357to disable overlay mounts for consistency with OpenZFS on other platforms. 1358.It Sy primarycache Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata 1359Controls what is cached in the primary cache 1360.Pq ARC . 1361If this property is set to 1362.Sy all , 1363then both user data and metadata is cached. 1364If this property is set to 1365.Sy none , 1366then neither user data nor metadata is cached. 1367If this property is set to 1368.Sy metadata , 1369then only metadata is cached. 1370The default value is 1371.Sy all . 1372.It Sy quota Ns = Ns Ar size Ns | Ns Sy none 1373Limits the amount of space a dataset and its descendants can consume. 1374This property enforces a hard limit on the amount of space used. 1375This includes all space consumed by descendants, including file systems and 1376snapshots. 1377Setting a quota on a descendant of a dataset that already has a quota does not 1378override the ancestor's quota, but rather imposes an additional limit. 1379.Pp 1380Quotas cannot be set on volumes, as the 1381.Sy volsize 1382property acts as an implicit quota. 1383.It Sy snapshot_limit Ns = Ns Ar count Ns | Ns Sy none 1384Limits the number of snapshots that can be created on a dataset and its 1385descendants. 1386Setting a 1387.Sy snapshot_limit 1388on a descendant of a dataset that already has a 1389.Sy snapshot_limit 1390does not override the ancestor's 1391.Sy snapshot_limit , 1392but rather imposes an additional limit. 1393The limit is not enforced if the user is allowed to change the limit. 1394For example, this means that recursive snapshots taken from the global zone are 1395counted against each delegated dataset within a zone. 1396This feature must be enabled to be used 1397.Po see 1398.Xr zpool-features 7 1399.Pc . 1400.It Sy userquota@ Ns Ar user Ns = Ns Ar size Ns | Ns Sy none 1401Limits the amount of space consumed by the specified user. 1402User space consumption is identified by the 1403.Sy userspace@ Ns Ar user 1404property. 1405.Pp 1406Enforcement of user quotas may be delayed by several seconds. 1407This delay means that a user might exceed their quota before the system notices 1408that they are over quota and begins to refuse additional writes with the 1409.Er EDQUOT 1410error message. 1411See the 1412.Nm zfs Cm userspace 1413command for more information. 1414.Pp 1415Unprivileged users can only access their own groups' space usage. 1416The root user, or a user who has been granted the 1417.Sy userquota 1418privilege with 1419.Nm zfs Cm allow , 1420can get and set everyone's quota. 1421.Pp 1422This property is not available on volumes, on file systems before version 4, or 1423on pools before version 15. 1424The 1425.Sy userquota@ Ns Ar … 1426properties are not displayed by 1427.Nm zfs Cm get Sy all . 1428The user's name must be appended after the 1429.Sy @ 1430symbol, using one of the following forms: 1431.Bl -bullet -compact -offset 4n 1432.It 1433POSIX name 1434.Pq Qq joe 1435.It 1436POSIX numeric ID 1437.Pq Qq 789 1438.It 1439SID name 1440.Pq Qq joe.smith@mydomain 1441.It 1442SID numeric ID 1443.Pq Qq S-1-123-456-789 1444.El 1445.Pp 1446Files created on Linux always have POSIX owners. 1447.It Sy defaultuserquota Ns = Ns Ar size Ns | Ns Sy none 1448Sets a default user quota to be applied to each user for whom no 1449user-specific quota is set. 1450The value 1451.Sy 0 1452disables defaultuserquota. 1453.It Sy userobjquota@ Ns Ar user Ns = Ns Ar size Ns | Ns Sy none 1454The 1455.Sy userobjquota 1456is similar to 1457.Sy userquota 1458but it limits the number of objects a user can create. 1459Please refer to 1460.Sy userobjused 1461for more information about how objects are counted. 1462.It Sy defaultuserobjquota Ns = Ns Ar size Ns | Ns Sy none 1463Sets a default user object quota to be applied to each user for 1464whom no userobj-specific quota is set. 1465The value 1466.Sy 0 1467disables defaultuserobjquota. 1468.It Sy groupquota@ Ns Ar group Ns = Ns Ar size Ns | Ns Sy none 1469Limits the amount of space consumed by the specified group. 1470Group space consumption is identified by the 1471.Sy groupused@ Ns Ar group 1472property. 1473.Pp 1474Unprivileged users can access only their own groups' space usage. 1475The root user, or a user who has been granted the 1476.Sy groupquota 1477privilege with 1478.Nm zfs Cm allow , 1479can get and set all groups' quotas. 1480.It Sy defaultgroupquota Ns = Ns Ar size Ns | Ns Sy none 1481Sets a default group quota to be applied to each group for whom no 1482group-specific quota is set. 1483The value 1484.Sy 0 1485disables defaultgroupquota. 1486.It Sy groupobjquota@ Ns Ar group Ns = Ns Ar size Ns | Ns Sy none 1487The 1488.Sy groupobjquota 1489is similar to 1490.Sy groupquota 1491but it limits number of objects a group can consume. 1492Please refer to 1493.Sy userobjused 1494for more information about how objects are counted. 1495.It Sy defaultgroupobjquota Ns = Ns Ar size Ns | Ns Sy none 1496Sets a default group object quota to be applied to each group for 1497whom no groupobj-specific quota is set. 1498The value 1499.Sy 0 1500disables defaultgroupobjquota. 1501.It Sy projectquota@ Ns Ar project Ns = Ns Ar size Ns | Ns Sy none 1502Limits the amount of space consumed by the specified project. 1503Project space consumption is identified by the 1504.Sy projectused@ Ns Ar project 1505property. 1506Please refer to 1507.Sy projectused 1508for more information about how project is identified and set/changed. 1509.Pp 1510The root user, or a user who has been granted the 1511.Sy projectquota 1512privilege with 1513.Nm zfs allow , 1514can access all projects' quota. 1515.It Sy defaultprojectquota Ns = Ns Ar size Ns | Ns Sy none 1516Sets a default project quota to be applied to each project for whom no 1517project-specific quota is set. 1518The value 1519.Sy 0 1520disables defaultprojectquota. 1521.It Sy projectobjquota@ Ns Ar project Ns = Ns Ar size Ns | Ns Sy none 1522The 1523.Sy projectobjquota 1524is similar to 1525.Sy projectquota 1526but it limits number of objects a project can consume. 1527Please refer to 1528.Sy userobjused 1529for more information about how objects are counted. 1530.It Sy defaultprojectobjquota Ns = Ns Ar size Ns | Ns Sy none 1531Sets a default project object quota to be applied to each project for 1532whom no projectobj-specific quota is set. 1533The value 1534.Sy 0 1535disables defaultprojectobjquota. 1536.It Sy readonly Ns = Ns Sy on Ns | Ns Sy off 1537Controls whether this dataset can be modified. 1538The default value is 1539.Sy off . 1540The values 1541.Sy on 1542and 1543.Sy off 1544are equivalent to the 1545.Sy ro 1546and 1547.Sy rw 1548mount options. 1549.Pp 1550This property can also be referred to by its shortened column name, 1551.Sy rdonly . 1552.It Sy recordsize Ns = Ns Ar size 1553Specifies a suggested block size for files in the file system. 1554This property is designed solely for use with database workloads that access 1555files in fixed-size records. 1556ZFS automatically tunes block sizes according to internal algorithms optimized 1557for typical access patterns. 1558.Pp 1559For databases that create very large files but access them in small random 1560chunks, these algorithms may be suboptimal. 1561Specifying a 1562.Sy recordsize 1563greater than or equal to the record size of the database can result in 1564significant performance gains. 1565Use of this property for general purpose file systems is strongly discouraged, 1566and may adversely affect performance. 1567.Pp 1568The size specified must be a power of two greater than or equal to 1569.Ar 512 B 1570and less than or equal to 1571.Ar 128 KiB . 1572If the 1573.Sy large_blocks 1574feature is enabled on the pool, the size may be up to 1575.Ar 16 MiB . 1576See 1577.Xr zpool-features 7 1578for details on ZFS feature flags. 1579.Pp 1580Note that maximum size is still limited by default to 1581.Ar 1 MiB 1582on x86_32, see 1583.Sy zfs_max_recordsize 1584module parameter. 1585.Pp 1586Changing the file system's 1587.Sy recordsize 1588affects only files created afterward; existing files are unaffected. 1589.Pp 1590This property can also be referred to by its shortened column name, 1591.Sy recsize . 1592.It Sy redundant_metadata Ns = Ns Sy all Ns | Ns Sy most Ns | Ns Sy some Ns | Ns Sy none 1593Controls what types of metadata are stored redundantly. 1594ZFS stores an extra copy of metadata, so that if a single block is corrupted, 1595the amount of user data lost is limited. 1596This extra copy is in addition to any redundancy provided at the pool level 1597.Pq e.g. by mirroring or RAID-Z , 1598and is in addition to an extra copy specified by the 1599.Sy copies 1600property 1601.Pq up to a total of 3 copies . 1602For example if the pool is mirrored, 1603.Sy copies Ns = Ns 2 , 1604and 1605.Sy redundant_metadata Ns = Ns Sy most , 1606then ZFS stores 6 copies of most metadata, and 4 copies of data and some 1607metadata. 1608.Pp 1609When set to 1610.Sy all , 1611ZFS stores an extra copy of all metadata. 1612If a single on-disk block is corrupt, at worst a single block of user data 1613.Po which is 1614.Sy recordsize 1615bytes long 1616.Pc 1617can be lost. 1618.Pp 1619When set to 1620.Sy most , 1621ZFS stores an extra copy of most types of metadata. 1622This can improve performance of random writes, because less metadata must be 1623written. 1624In practice, at worst about 1000 blocks 1625.Po of 1626.Sy recordsize 1627bytes each 1628.Pc 1629of user data can be lost if a single on-disk block is corrupt. 1630The exact behavior of which metadata blocks are stored redundantly may change in 1631future releases. 1632.Pp 1633When set to 1634.Sy some , 1635ZFS stores an extra copy of only critical metadata. 1636This can improve file create performance since less metadata 1637needs to be written. 1638If a single on-disk block is corrupt, multiple user files or directories 1639can be lost. 1640.Pp 1641When set to 1642.Sy none , 1643ZFS does not store any copies of metadata redundantly. 1644If a single on-disk block is corrupt, an entire dataset can be lost. 1645.Pp 1646The default value is 1647.Sy all . 1648.It Sy refquota Ns = Ns Ar size Ns | Ns Sy none 1649Limits the amount of space a dataset can consume. 1650This property enforces a hard limit on the amount of space used. 1651This hard limit does not include space used by descendants, including file 1652systems and snapshots. 1653.It Sy refreservation Ns = Ns Ar size Ns | Ns Sy none Ns | Ns Sy auto 1654The minimum amount of space guaranteed to a dataset, not including its 1655descendants. 1656When the amount of space used is below this value, the dataset is treated as if 1657it were taking up the amount of space specified by 1658.Sy refreservation . 1659The 1660.Sy refreservation 1661reservation is accounted for in the parent datasets' space used, and counts 1662against the parent datasets' quotas and reservations. 1663.Pp 1664If 1665.Sy refreservation 1666is set, a snapshot is only allowed if there is enough free pool space outside of 1667this reservation to accommodate the current number of 1668.Qq referenced 1669bytes in the dataset. 1670.Pp 1671If 1672.Sy refreservation 1673is set to 1674.Sy auto , 1675a volume is thick provisioned 1676.Po or 1677.Qq not sparse 1678.Pc . 1679.Sy refreservation Ns = Ns Sy auto 1680is only supported on volumes. 1681See 1682.Sy volsize 1683in the 1684.Sx Native Properties 1685section for more information about sparse volumes. 1686.Pp 1687This property can also be referred to by its shortened column name, 1688.Sy refreserv . 1689.It Sy relatime Ns = Ns Sy on Ns | Ns Sy off 1690Controls the manner in which the access time is updated when 1691.Sy atime Ns = Ns Sy on 1692is set. 1693Turning this property on causes the access time to be updated relative 1694to the modify or change time. 1695Access time is only updated if the previous 1696access time was earlier than the current modify or change time or if the 1697existing access time hasn't been updated within the past 24 hours. 1698The default value is 1699.Sy on . 1700The values 1701.Sy on 1702and 1703.Sy off 1704are equivalent to the 1705.Sy relatime 1706and 1707.Sy norelatime 1708mount options. 1709.It Sy reservation Ns = Ns Ar size Ns | Ns Sy none 1710The minimum amount of space guaranteed to a dataset and its descendants. 1711When the amount of space used is below this value, the dataset is treated as if 1712it were taking up the amount of space specified by its reservation. 1713Reservations are accounted for in the parent datasets' space used, and count 1714against the parent datasets' quotas and reservations. 1715.Pp 1716This property can also be referred to by its shortened column name, 1717.Sy reserv . 1718.It Sy secondarycache Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata 1719Controls what is cached in the secondary cache 1720.Pq L2ARC . 1721If this property is set to 1722.Sy all , 1723then both user data and metadata is cached. 1724If this property is set to 1725.Sy none , 1726then neither user data nor metadata is cached. 1727If this property is set to 1728.Sy metadata , 1729then only metadata is cached. 1730The default value is 1731.Sy all . 1732.It Sy prefetch Ns = Ns Sy all Ns | Ns Sy none Ns | Ns Sy metadata 1733Controls what speculative prefetch does. 1734If this property is set to 1735.Sy all , 1736then both user data and metadata are prefetched. 1737If this property is set to 1738.Sy none , 1739then neither user data nor metadata are prefetched. 1740If this property is set to 1741.Sy metadata , 1742then only metadata are prefetched. 1743The default value is 1744.Sy all . 1745.Pp 1746Please note that the module parameter zfs_prefetch_disable=1 can 1747be used to totally disable speculative prefetch, bypassing anything 1748this property does. 1749.It Sy setuid Ns = Ns Sy on Ns | Ns Sy off 1750Controls whether the setuid bit is respected for the file system. 1751The default value is 1752.Sy on . 1753The values 1754.Sy on 1755and 1756.Sy off 1757are equivalent to the 1758.Sy suid 1759and 1760.Sy nosuid 1761mount options. 1762.It Sy sharesmb Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Ar opts 1763Controls whether the file system is shared by using 1764.Sy Samba USERSHARES 1765and what options are to be used. 1766Otherwise, the file system is automatically shared and unshared with the 1767.Nm zfs Cm share 1768and 1769.Nm zfs Cm unshare 1770commands. 1771If the property is set to on, the 1772.Xr net 8 1773command is invoked to create a 1774.Sy USERSHARE . 1775.Pp 1776Because SMB shares requires a resource name, a unique resource name is 1777constructed from the dataset name. 1778The constructed name is a copy of the 1779dataset name except that the characters in the dataset name, which would be 1780invalid in the resource name, are replaced with underscore (_) characters. 1781Linux does not currently support additional options which might be available 1782on Solaris. 1783.Pp 1784If the 1785.Sy sharesmb 1786property is set to 1787.Sy off , 1788the file systems are unshared. 1789.Pp 1790The share is created with the ACL (Access Control List) "Everyone:F" ("F" 1791stands for "full permissions", i.e. read and write permissions) and no guest 1792access (which means Samba must be able to authenticate a real user \(em 1793.Xr passwd 5 Ns / Ns Xr shadow 5 Ns - , 1794LDAP- or 1795.Xr smbpasswd 5 Ns -based ) 1796by default. 1797This means that any additional access control 1798(disallow specific user specific access etc) must be done on the underlying file 1799system. 1800.Pp 1801When the 1802.Sy sharesmb 1803property is updated with 1804.Nm zfs Cm set Fl u 1805, the property is set to desired value, but the operation to share, reshare 1806or unshare the the dataset is not performed. 1807.It Sy sharenfs Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Ar opts 1808Controls whether the file system is shared via NFS, and what options are to be 1809used. 1810A file system with a 1811.Sy sharenfs 1812property of 1813.Sy off 1814is managed with the 1815.Xr exportfs 8 1816command and entries in the 1817.Pa /etc/exports 1818file. 1819Otherwise, the file system is automatically shared and unshared with the 1820.Nm zfs Cm share 1821and 1822.Nm zfs Cm unshare 1823commands. 1824If the property is set to 1825.Sy on , 1826the dataset is shared using the default options: 1827.Dl sec=sys,rw,crossmnt,no_subtree_check 1828.Pp 1829Please note that the options are comma-separated, unlike those found in 1830.Xr exports 5 . 1831This is done to negate the need for quoting, as well as to make parsing 1832with scripts easier. 1833.Pp 1834For 1835.Fx , 1836there may be multiple sets of options separated by semicolon(s). 1837Each set of options must apply to different hosts or networks and each 1838set of options will create a separate line for 1839.Xr exports 5 . 1840Any semicolon separated option set that consists entirely of whitespace 1841will be ignored. 1842This use of semicolons is only for 1843.Fx 1844at this time. 1845.Pp 1846See 1847.Xr exports 5 1848for the meaning of the default options. 1849Otherwise, the 1850.Xr exportfs 8 1851command is invoked with options equivalent to the contents of this property. 1852.Pp 1853When the 1854.Sy sharenfs 1855property is changed for a dataset, the dataset and any children inheriting the 1856property are re-shared with the new options, only if the property was previously 1857.Sy off , 1858or if they were shared before the property was changed. 1859If the new property is 1860.Sy off , 1861the file systems are unshared. 1862.Pp 1863When the 1864.Sy sharenfs 1865property is updated with 1866.Nm zfs Cm set Fl u 1867, the property is set to desired value, but the operation to share, reshare 1868or unshare the the dataset is not performed. 1869.It Sy logbias Ns = Ns Sy latency Ns | Ns Sy throughput 1870Provide a hint to ZFS about handling of synchronous write requests in this 1871dataset. 1872If 1873.Sy logbias 1874is set to 1875.Sy latency 1876.Pq the default , 1877ZFS will use pool log devices 1878.Pq if configured 1879to handle the write requests at low latency. 1880If 1881.Sy logbias 1882is set to 1883.Sy throughput , 1884ZFS will not use configured pool log devices to store written data. 1885ZFS will instead optimize synchronous operations for global pool throughput and 1886efficient use of resources. 1887.It Sy snapdev Ns = Ns Sy hidden Ns | Ns Sy visible 1888Controls whether the volume snapshot devices under 1889.Pa /dev/zvol/ Ns Aq Ar pool 1890are hidden or visible. 1891The default value is 1892.Sy hidden . 1893.It Sy snapdir Ns = Ns Sy disabled Ns | Ns Sy hidden Ns | Ns Sy visible 1894Controls whether the 1895.Pa .zfs 1896directory is disabled, hidden or visible in the root of the file system as 1897discussed in the 1898.Sx Snapshots 1899section of 1900.Xr zfsconcepts 7 . 1901The default value is 1902.Sy hidden . 1903.It Sy sync Ns = Ns Sy standard Ns | Ns Sy always Ns | Ns Sy disabled 1904Controls the behavior of synchronous requests 1905.Pq e.g. fsync, O_DSYNC . 1906.Sy standard 1907is the POSIX-specified behavior of ensuring all synchronous requests 1908are written to stable storage and all devices are flushed to ensure 1909data is not cached by device controllers 1910.Pq this is the default . 1911.Sy always 1912causes every file system transaction to be written and flushed before its 1913system call returns. 1914This has a large performance penalty. 1915.Sy disabled 1916disables synchronous requests. 1917File system transactions are only committed to stable storage periodically. 1918This option will give the highest performance. 1919However, it is very dangerous as ZFS would be ignoring the synchronous 1920transaction demands of applications such as databases or NFS. 1921Administrators should only use this option when the risks are understood. 1922.It Sy version Ns = Ns Ar N Ns | Ns Sy current 1923The on-disk version of this file system, which is independent of the pool 1924version. 1925This property can only be set to later supported versions. 1926See the 1927.Nm zfs Cm upgrade 1928command. 1929.It Sy volsize Ns = Ns Ar size 1930For volumes, specifies the logical size of the volume. 1931By default, creating a volume establishes a reservation of equal size. 1932For storage pools with a version number of 9 or higher, a 1933.Sy refreservation 1934is set instead. 1935Any changes to 1936.Sy volsize 1937are reflected in an equivalent change to the reservation 1938.Pq or Sy refreservation . 1939The 1940.Sy volsize 1941can only be set to a multiple of 1942.Sy volblocksize , 1943and cannot be zero. 1944.Pp 1945The reservation is kept equal to the volume's logical size to prevent unexpected 1946behavior for consumers. 1947Without the reservation, the volume could run out of space, resulting in 1948undefined behavior or data corruption, depending on how the volume is used. 1949These effects can also occur when the volume size is changed while it is in use 1950.Pq particularly when shrinking the size . 1951Extreme care should be used when adjusting the volume size. 1952.Pp 1953Though not recommended, a 1954.Qq sparse volume 1955.Po also known as 1956.Qq thin provisioned 1957.Pc 1958can be created by specifying the 1959.Fl s 1960option to the 1961.Nm zfs Cm create Fl V 1962command, or by changing the value of the 1963.Sy refreservation 1964property 1965.Po or 1966.Sy reservation 1967property on pool version 8 or earlier 1968.Pc 1969after the volume has been created. 1970A 1971.Qq sparse volume 1972is a volume where the value of 1973.Sy refreservation 1974is less than the size of the volume plus the space required to store its 1975metadata. 1976Consequently, writes to a sparse volume can fail with 1977.Er ENOSPC 1978when the pool is low on space. 1979For a sparse volume, changes to 1980.Sy volsize 1981are not reflected in the 1982.Sy refreservation . 1983A volume that is not sparse is said to be 1984.Qq thick provisioned . 1985A sparse volume can become thick provisioned by setting 1986.Sy refreservation 1987to 1988.Sy auto . 1989.It Sy volmode Ns = Ns Sy default Ns | Ns Sy full Ns | Ns Sy geom Ns | Ns Sy dev Ns | Ns Sy none 1990This property specifies how volumes should be exposed to the OS. 1991Setting it to 1992.Sy full 1993exposes volumes as fully fledged block devices, providing maximal 1994functionality. 1995The value 1996.Sy geom 1997is just an alias for 1998.Sy full 1999and is kept for compatibility. 2000Setting it to 2001.Sy dev 2002hides its partitions. 2003Volumes with property set to 2004.Sy none 2005are not exposed outside ZFS, but can be snapshotted, cloned, replicated, etc, 2006that can be suitable for backup purposes. 2007Value 2008.Sy default 2009means that volumes exposition is controlled by system-wide tunable 2010.Sy zvol_volmode , 2011where 2012.Sy full , 2013.Sy dev 2014and 2015.Sy none 2016are encoded as 1, 2 and 3 respectively. 2017The default value is 2018.Sy full . 2019.It Sy vscan Ns = Ns Sy on Ns | Ns Sy off 2020Controls whether regular files should be scanned for viruses when a file is 2021opened and closed. 2022In addition to enabling this property, the virus scan service must also be 2023enabled for virus scanning to occur. 2024The default value is 2025.Sy off . 2026This property is not used by OpenZFS. 2027.It Sy xattr Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy dir Ns | Ns Sy sa 2028Controls whether extended attributes are enabled for this file system. 2029Two styles of extended attributes are supported: either directory-based 2030or system-attribute-based. 2031.Pp 2032Directory-based extended attributes can be enabled by setting the value to 2033.Sy dir . 2034This style of extended attribute imposes no practical limit 2035on either the size or number of attributes which can be set on a file. 2036Although under Linux the 2037.Xr getxattr 2 2038and 2039.Xr setxattr 2 2040system calls limit the maximum size to 2041.Sy 64K . 2042This is the most compatible 2043style of extended attribute and is supported by all ZFS implementations. 2044.Pp 2045System-attribute-based xattrs can be enabled by setting the value to 2046.Sy sa 2047(default and equal to 2048.Sy on 2049) . 2050The key advantage of this type of xattr is improved performance. 2051Storing extended attributes as system attributes 2052significantly decreases the amount of disk I/O required. 2053Up to 2054.Sy 64K 2055of data may be stored per-file in the space reserved for system attributes. 2056If there is not enough space available for an extended attribute 2057then it will be automatically written as a directory-based xattr. 2058System-attribute-based extended attributes are not accessible 2059on platforms which do not support the 2060.Sy xattr Ns = Ns Sy sa 2061feature. 2062OpenZFS supports 2063.Sy xattr Ns = Ns Sy sa 2064on both 2065.Fx 2066and Linux. 2067.Pp 2068The use of system-attribute-based xattrs is strongly encouraged for users of 2069SELinux or POSIX ACLs. 2070Both of these features heavily rely on extended 2071attributes and benefit significantly from the reduced access time. 2072.Pp 2073The values 2074.Sy on 2075and 2076.Sy off 2077are equivalent to the 2078.Sy xattr 2079and 2080.Sy noxattr 2081mount options. 2082.It Sy jailed Ns = Ns Sy off Ns | Ns Sy on 2083Controls whether the dataset is managed from a jail. 2084See 2085.Xr zfs-jail 8 2086for more information. 2087Jails are a 2088.Fx 2089feature and this property is not available on other platforms. 2090.It Sy zoned Ns = Ns Sy off Ns | Ns Sy on 2091Controls whether the dataset is managed from a non-global zone or namespace. 2092See 2093.Xr zfs-zone 8 2094for more information. 2095Zoning is a 2096Linux 2097feature and this property is not available on other platforms. 2098.El 2099.Pp 2100The following three properties cannot be changed after the file system is 2101created, and therefore, should be set when the file system is created. 2102If the properties are not set with the 2103.Nm zfs Cm create 2104or 2105.Nm zpool Cm create 2106commands, these properties are inherited from the parent dataset. 2107If the parent dataset lacks these properties due to having been created prior to 2108these features being supported, the new file system will have the default values 2109for these properties. 2110.Bl -tag -width "" 2111.It Xo 2112.Sy casesensitivity Ns = Ns Sy sensitive Ns | Ns 2113.Sy insensitive Ns | Ns Sy mixed 2114.Xc 2115Indicates whether the file name matching algorithm used by the file system 2116should be case-sensitive, case-insensitive, or allow a combination of both 2117styles of matching. 2118The default value for the 2119.Sy casesensitivity 2120property is 2121.Sy sensitive . 2122Traditionally, 2123.Ux 2124and POSIX file systems have case-sensitive file names. 2125.Pp 2126The 2127.Sy mixed 2128value for the 2129.Sy casesensitivity 2130property indicates that the file system can support requests for both 2131case-sensitive and case-insensitive matching behavior. 2132Currently, case-insensitive matching behavior on a file system that supports 2133mixed behavior is limited to the SMB server product. 2134For more information about the 2135.Sy mixed 2136value behavior, see the "ZFS Administration Guide". 2137.It Xo 2138.Sy normalization Ns = Ns Sy none Ns | Ns Sy formC Ns | Ns 2139.Sy formD Ns | Ns Sy formKC Ns | Ns Sy formKD 2140.Xc 2141Indicates whether the file system should perform a 2142.Sy Unicode 2143normalization of file names whenever two file names are compared, and which 2144normalization algorithm should be used. 2145File names are always stored unmodified, names are normalized as part of any 2146comparison process. 2147If this property is set to a legal value other than 2148.Sy none , 2149and the 2150.Sy utf8only 2151property was left unspecified, the 2152.Sy utf8only 2153property is automatically set to 2154.Sy on . 2155The default value of the 2156.Sy normalization 2157property is 2158.Sy none . 2159This property cannot be changed after the file system is created. 2160.It Sy utf8only Ns = Ns Sy on Ns | Ns Sy off 2161Indicates whether the file system should reject file names that include 2162characters that are not present in the 2163.Sy UTF-8 2164character code set. 2165If this property is explicitly set to 2166.Sy off , 2167the normalization property must either not be explicitly set or be set to 2168.Sy none . 2169The default value for the 2170.Sy utf8only 2171property is 2172.Sy off . 2173This property cannot be changed after the file system is created. 2174.El 2175.Pp 2176The 2177.Sy casesensitivity , 2178.Sy normalization , 2179and 2180.Sy utf8only 2181properties are also new permissions that can be assigned to non-privileged users 2182by using the ZFS delegated administration feature. 2183. 2184.Ss Temporary Mount Point Properties 2185When a file system is mounted, either through 2186.Xr mount 8 2187for legacy mounts or the 2188.Nm zfs Cm mount 2189command for normal file systems, its mount options are set according to its 2190properties. 2191The correlation between properties and mount options is as follows: 2192.Bl -tag -compact -offset Ds -width "rootcontext=" 2193.It Sy atime 2194atime/noatime 2195.It Sy canmount 2196auto/noauto 2197.It Sy devices 2198dev/nodev 2199.It Sy exec 2200exec/noexec 2201.It Sy readonly 2202ro/rw 2203.It Sy relatime 2204relatime/norelatime 2205.It Sy setuid 2206suid/nosuid 2207.It Sy xattr 2208xattr/noxattr 2209.It Sy nbmand 2210mand/nomand 2211.It Sy context Ns = 2212context= 2213.It Sy fscontext Ns = 2214fscontext= 2215.It Sy defcontext Ns = 2216defcontext= 2217.It Sy rootcontext Ns = 2218rootcontext= 2219.El 2220.Pp 2221In addition, these options can be set on a per-mount basis using the 2222.Fl o 2223option, without affecting the property that is stored on disk. 2224The values specified on the command line override the values stored in the 2225dataset. 2226The 2227.Sy nosuid 2228option is an alias for 2229.Sy nodevices , Ns Sy nosetuid . 2230These properties are reported as 2231.Qq temporary 2232by the 2233.Nm zfs Cm get 2234command. 2235If the properties are changed while the dataset is mounted, the new setting 2236overrides any temporary settings. 2237. 2238.Ss User Properties 2239In addition to the standard native properties, ZFS supports arbitrary user 2240properties. 2241User properties have no effect on ZFS behavior, but applications or 2242administrators can use them to annotate datasets 2243.Pq file systems, volumes, and snapshots . 2244.Pp 2245User property names must contain a colon 2246.Pq Qq Sy \&: 2247character to distinguish them from native properties. 2248They may contain lowercase letters, numbers, and the following punctuation 2249characters: colon 2250.Pq Qq Sy \&: , 2251dash 2252.Pq Qq Sy - , 2253period 2254.Pq Qq Sy \&. , 2255and underscore 2256.Pq Qq Sy _ . 2257The expected convention is that the property name is divided into two portions 2258such as 2259.Ar module : Ns Ar property , 2260but this namespace is not enforced by ZFS. 2261User property names can be at most 256 characters, and cannot begin with a dash 2262.Pq Qq Sy - . 2263.Pp 2264When making programmatic use of user properties, it is strongly suggested to use 2265a reversed DNS domain name for the 2266.Ar module 2267component of property names to reduce the chance that two 2268independently-developed packages use the same property name for different 2269purposes. 2270.Pp 2271The values of user properties are arbitrary strings, are always inherited, and 2272are never validated. 2273All of the commands that operate on properties 2274.Po Nm zfs Cm list , 2275.Nm zfs Cm get , 2276.Nm zfs Cm set , 2277and so forth 2278.Pc 2279can be used to manipulate both native properties and user properties. 2280Use the 2281.Nm zfs Cm inherit 2282command to clear a user property. 2283If the property is not defined in any parent dataset, it is removed entirely. 2284Property values are limited to 8192 bytes. 2285