zfs man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

zfs(1M)			System Administration Commands		       zfs(1M)

NAME
       zfs - configures ZFS file systems

SYNOPSIS
       zfs [-?]

       zfs help subcommand | help property property |permission

       zfs create [-p] [-o property=value] ... filesystem

       zfs create [-ps] [-b blocksize] [-o property=value] ... -V size volume

       zfs destroy [-rRf] filesystem|volume

       zfs destroy [-rRd] snapshot

       zfs snapshot [-r] [-o property=value]...
	     filesystem@snapname|volume@snapname

       zfs rollback [-rRf] snapshot

       zfs clone [-p] [-o property=value] ... snapshot filesystem|volume

       zfs promote clone-filesystem

       zfs rename filesystem|volume|snapshot
	    filesystem|volume|snapshot

       zfs rename [-p] filesystem|volume filesystem|volume

       zfs rename -r snapshot snapshot

       zfs list [-r|-d depth][-H][-o property[,...]] [-t type[,...]]
	    [-s property] ... [-S property] ... [filesystem|volume|snapshot] ...

       zfs set [-r] property=value filesystem|volume|snapshot ...

       zfs get [-r|-d depth][-Hp][-o all | field[,...]] [-s source[,...]]
	    all | property[,...] filesystem|volume|snapshot ...

       zfs inherit [-rS] property filesystem|volume|snapshot ...

       zfs upgrade

       zfs upgrade [-v]

       zfs upgrade [-r] [-V version] -a | filesystem

       zfs userspace [-niHp] [-o field[,...]] [-sS field] ...
	    [-t type [,...]] filesystem|snapshot

       zfs groupspace [-hniHp] [-o field[,...]] [-sS field] ...
	    [-t type [,...]] filesystem|snapshot

       zfs mount

       zfs mount [-vO] [-o options] -a | filesystem

       zfs unmount [-f] -a | filesystem|mountpoint

       zfs share -a | filesystem

       zfs unshare -a filesystem|mountpoint

       zfs send [-Rbpv] [-[iI] snapshot] snapshot

       zfs send -r [-bcpv] [-[i] snapshot] snapshot

       zfs receive [-vnFu] [[-o property=value] | [-x property]] ...
	    filesystem|volume|snapshot

       zfs receive [-vnFu] [[-o property=value] | [-x property]] ...
	    [-d | -e] filesystem

       zfs allow filesystem|volume

       zfs allow [-ldug] everyone|user|group[,...] perm|@setname[,...]
	    filesystem|volume

       zfs allow [-ld] -e perm|@setname[,...] filesystem|volume

       zfs allow -c perm|@setname[,...] filesystem|volume

       zfs allow -s @setname perm|@setname[,...] filesystem|volume

       zfs unallow [-rldug] everyone|user|group[,...] [perm|@setname[,... ]]
	    filesystem|volume

       zfs unallow [-rld] -e [perm|@setname[,... ]] filesystem|volume

       zfs unallow [-r] -c [perm|@setname[ ... ]] filesystem|volume

       zfs unallow [-r] -s @setname [perm|@setname[,... ]] filesystem|volume

       zfs hold [-r] tag snapshot...

       zfs holds [-r] snapshot...

       zfs release [-r] tag snapshot...

       zfs diff [-FHte] [-o field] ...	snapshot snapshot|filesystem
       zfs diff -E [-FHt] [-o field] ... snapshot|filesystem

DESCRIPTION
       The  zfs	 command configures ZFS datasets within a ZFS storage pool, as
       described in zpool(1M). A dataset is identified by a unique path within
       the ZFS namespace. For example:

	 pool/{filesystem,volume,snapshot}

       where the maximum length of a dataset name is MAXNAMELEN (256 bytes).

       A dataset can be one of the following:

       file system

	   A ZFS dataset of type filesystem can be mounted within the standard
	   system namespace and behaves like other  file  systems.  While  ZFS
	   file systems are designed to be POSIX compliant, known issues exist
	   that prevent compliance in some cases. Applications that depend  on
	   standards  conformance  might fail due to nonstandard behavior when
	   checking file system free space.

       volume

	   A logical volume exported as a raw or block device.	This  type  of
	   dataset  should only be used under special circumstances. File sys‐
	   tems are typically used in most environments.

       snapshot

	   A read-only version of a file system or volume at a given point  in
	   time. It is specified as filesystem@name or volume@name.

   ZFS File System Hierarchy
       A  ZFS  storage	pool  is  a logical collection of devices that provide
       space for datasets. A storage pool is also the root  of	the  ZFS  file
       system hierarchy.

       The root of the pool can be accessed as a file system, such as mounting
       and unmounting, taking snapshots, and setting properties. The  physical
       storage characteristics, however, are managed by the zpool(1M) command.

       See zpool(1M) for more information on creating and administering pools.

   Snapshots
       A  snapshot  is	a read-only copy of a file system or volume. Snapshots
       can be created extremely quickly, and initially consume	no  additional
       space  within  the pool. As data within the active dataset changes, the
       snapshot consumes more data than would otherwise	 be  shared  with  the
       active dataset.

       Snapshots  can have arbitrary names. Snapshots of volumes can be cloned
       or rolled back, but cannot be accessed independently.

       File system snapshots can be accessed under the .zfs/snapshot directory
       in  the root of the file system. Snapshots are automatically mounted on
       demand and may be unmounted at regular intervals. The visibility of the
       .zfs directory can be controlled by the snapdir property.

   Clones
       A  clone is a writable volume or file system whose initial contents are
       the same as another dataset. As with snapshots,	creating  a  clone  is
       nearly instantaneous, and initially consumes no additional space.

       Clones  can only be created from a snapshot. When a snapshot is cloned,
       it creates an implicit dependency between the parent  and  child.  Even
       though  the  clone  is created somewhere else in the dataset hierarchy,
       the original snapshot cannot be destroyed as long as  a	clone  exists.
       The  origin  property  exposes this dependency, and the destroy command
       lists any such dependencies, if they exist.

       The clone parent-child dependency relationship can be reversed by using
       the  promote subcommand. This causes the "origin" file system to become
       a clone of the specified	 file  system,	which  makes  it  possible  to
       destroy the file system that the clone was created from.

   Mount Points
       Creating a ZFS file system is a simple operation, so the number of file
       systems per system is likely to be numerous. To	cope  with  this,  ZFS
       automatically  manages mounting and unmounting file systems without the
       need to edit the /etc/vfstab file. All automatically managed file  sys‐
       tems are mounted by ZFS at boot time.

       By  default,  file  systems  are mounted under /path, where path is the
       name of the file system in the ZFS namespace. Directories  are  created
       and destroyed as needed.

       A  file	system can also have a mount point set in the mountpoint prop‐
       erty. This directory is created as needed, and ZFS automatically mounts
       the file system when the zfs mount -a command is invoked (without edit‐
       ing /etc/vfstab). The mountpoint	 property  can	be  inherited,	so  if
       pool/home has a mount point of /export/stuff, then pool/home/user auto‐
       matically inherits a mount point of /export/stuff/user.

       A file system can be mounted temporarily at a location other  than  the
       file  systems's	persistent  mount  point  by  specifying the -o mount‐
       point=value option to the zfs mount command. This is only permitted for
       file systems with non-legacy mount points.

       A file system mountpoint property of none prevents the file system from
       being mounted.

       If needed, ZFS file systems can also be managed with traditional	 tools
       (mount,	umount, /etc/vfstab). If a file system's mount point is set to
       legacy, ZFS makes no attempt to manage the file system, and the	admin‐
       istrator is responsible for mounting and unmounting the file system.

   Zones
       A  ZFS  file  system  can  be  added  to a non-global zone by using the
       zonecfg add fs subcommand. A ZFS file system that is added  to  a  non-
       global zone must have its mountpoint property set to legacy.

       The  physical  properties of an added file system are controlled by the
       global administrator. However, the zone administrator can create,  mod‐
       ify,  or	 destroy  files within the added file system, depending on how
       the file system is mounted.

       A dataset can also be delegated to  a  non-global  zone	by  using  the
       zonecfg	add  dataset  subcommand. You cannot delegate a dataset to one
       zone and the children of the same dataset to  another  zone.  The  zone
       administrator  can change properties of the dataset or any of its chil‐
       dren. However, the quota property is controlled by the global  adminis‐
       trator.

       A ZFS volume can be added as a device to a non-global zone by using the
       zonecfg add device subcommand. However, its physical properties can  be
       modified only by the global administrator.

       For more information about zonecfg syntax, see zonecfg(1M).

       After  a	 dataset is delegated to a non-global zone, the zoned property
       is automatically set. A zoned file system can only be  mounted  in  the
       global  zone  by use of a temporary mountpoint property (see "Temporary
       Mount Point Properties").

       The global administrator can forcibly clear the zoned property,	though
       this  should be done with extreme care. The global administrator should
       verify that all the mount points are  acceptable	 before	 clearing  the
       property.

   Native Properties
       Properties  are	divided	 into  two  types, native properties and user-
       defined (or "user") properties. Native properties either export	inter‐
       nal  statistics or control ZFS behavior. In addition, native properties
       are either editable or read-only. User properties have no effect on ZFS
       behavior,  but  you  can use them to annotate datasets in a way that is
       meaningful in your environment. For more information about user proper‐
       ties, see the "User Properties" section, below.

       Every  dataset has a set of properties that export statistics about the
       dataset as well as control various behaviors. Properties are  inherited
       from  the  parent unless overridden by the child. Some properties apply
       only to certain types of datasets  (file	 systems,  volumes,  or	 snap‐
       shots).

       The  values of numeric properties can be specified using human-readable
       suffixes (for example, k, KB,  M,  Gb,  and  so	forth,	up  to	Z  for
       zettabyte). The following are all valid (and equal) specifications:

	 1536M, 1.5g, 1.50GB

       The  values  of	non-numeric  properties are case sensitive and must be
       lowercase, except for mountpoint, sharenfs, and sharesmb.

       The following native properties consist of read-only  statistics	 about
       the dataset. These properties can be neither set, nor inherited. Native
       properties apply to all dataset types unless otherwise noted.

       available

	   The amount of space available to the dataset and all its  children,
	   assuming that there is no other activity in the pool. Because space
	   is shared within a pool, availability can be limited by any	number
	   of  factors, including physical pool size, quotas, reservations, or
	   other datasets within the pool.

	   This property can also be referred to by its shortened column name,
	   avail.

       compressratio

	   The	compression  ratio  achieved  for this dataset, expressed as a
	   multiplier. Compression can be turned on by running: zfs  set  com‐
	   pression=on dataset. The default value is off.

       creation

	   The time this dataset was created.

       defer_destroy

	   This	 property  is  on if the snapshot has been marked for deferred
	   destroy by using the zfs destroy -d command. Otherwise,  the	 prop‐
	   erty is off.

       groupused@group

	   The	amount	of  space  consumed  by	 the  specified	 group in this
	   dataset. Space is charged to the group of each file,	 as  displayed
	   by ls -l. See the userused@user property for more information.

	   Unprivileged	 users	can only access their own groups' space usage.
	   The root user, or a user who has been granted the groupused	privi‐
	   lege with zfs allow, can access all groups' usage.

       mounted

	   For	file  systems,	indicates whether the file system is currently
	   mounted. This property can be either yes or no.

       origin

	   For cloned file systems or volumes, the  snapshot  from  which  the
	   clone was created. The origin cannot be destroyed (even with the -r
	   or -f options) so long as a clone exists.

       referenced

	   The amount of data that is accessible by this dataset, which may or
	   may	not be shared with other datasets in the pool. When a snapshot
	   or clone is created, it initially references	 the  same  amount  of
	   space as the file system or snapshot it was created from, since its
	   contents are identical.

	   This property can also be referred to by its shortened column name,
	   refer.

       type

	   The type of dataset: filesystem, volume, or snapshot.

       used

	   The	amount	of  space consumed by this dataset and all its descen‐
	   dents. This is the value that is  checked  against  this  dataset's
	   quota  and  reservation.  The  space	 used  does  not  include this
	   dataset's reservation, but does take	 into  account	refreservation
	   (through  usedbyrefreservation) and the reservations of any descen‐
	   dent datasets (through usedbychildren). The amount of space that  a
	   dataset  consumes  from  its parent, as well as the amount of space
	   that are freed if this dataset is  recursively  destroyed,  is  the
	   greater of its space used and its reservation.

	   When	 snapshots  (see  the  "Snapshots" section) are created, their
	   space is initially shared between the snapshot and the file system,
	   and	possibly  with previous snapshots. As the file system changes,
	   space that was previously shared becomes unique  to	the  snapshot,
	   and	counted	 in  the snapshot's space used. Additionally, deleting
	   snapshots can increase the amount of space unique to (and used  by)
	   other snapshots.

	   The	amount	of  space used, available, or referenced does not take
	   into	 account  pending  changes.  Pending  changes  are   generally
	   accounted  for  within a few seconds. Committing a change to a disk
	   using fsync(3c) or O_SYNC does not necessarily guarantee  that  the
	   space usage information is updated immediately.

       usedby*

	   The usedby* properties decompose the used properties into the vari‐
	   ous reasons that space is used. Specifically, used = usedbychildren
	   +  usedbydataset  +	usedbyrefreservation +, usedbysnapshots. These
	   properties are only available for datasets created on zpool version
	   13 pools.

       usedbychildren

	   The	amount	of space used by children of this dataset, which would
	   be freed if all the dataset's children were destroyed.

       usedbydataset

	   The amount of space used by this dataset  itself,  which  would  be
	   freed  if  the  dataset  were  destroyed  (after first removing any
	   refreservation and destroying any necessary	snapshots  or  descen‐
	   dents).

       usedbyrefreservation

	   The	amount	of space used by a refreservation set on this dataset,
	   which would be freed if the refreservation was removed.

	   Space accounted for by this property represents potential  consump‐
	   tion by future writes, reserved in advance to prevent write alloca‐
	   tion failures in this dataset. This	can  include  unwritten	 data,
	   space  currently shared with snapshots, and compression savings for
	   volumes (which may be lost when  replaced  with  less  compressible
	   data).  When allocations for later writes increase usedbydataset or
	   usedbysnapshots, usedbyrefreservation will decrease accordingly.

       usedbysnapshots

	   The amount of space consumed by snapshots of this dataset. In  par‐
	   ticular,  it	 is  the amount of space that would be freed if all of
	   this dataset's snapshots were destroyed. Note that this is not sim‐
	   ply	the sum of the snapshots' used properties because space can be
	   shared by multiple snapshots.

       userused@user

	   The amount of space consumed by the specified user in this dataset.
	   Space  is charged to the owner of each file, as displayed by ls -l.
	   The amount of space charged is displayed by du and ls -s.  See  the
	   zfs userspace subcommand for more information.

	   Unprivileged	 users can access only their own space usage. The root
	   user, or a user who has been granted the  userused  privilege  with
	   zfs allow, can access everyone's usage.

	   The	userused@...  properties are not displayed by zfs get all. The
	   user's name must be appended after the @ symbol, using one  of  the
	   following forms:

	       o      POSIX name (for example, joe)

	       o      POSIX numeric ID (for example, 789)

	       o      SID name (for example, joe.smith@mydomain)

	       o      SID numeric ID (for example, S-1-123-456-789)

       userrefs

	   This	 property is set to the number of user holds on this snapshot.
	   User holds are set by using the zfs hold command.

       volblocksize=blocksize

	   For volumes, specifies the block size of the volume. The  blocksize
	   cannot be changed once the volume has been written, so it should be
	   set at volume creation time. The default blocksize for volumes is 8
	   KBs. Any power of 2 from 512 bytes to 1 MB is valid.

	   This property can also be referred to by its shortened column name,
	   volblock.

       The following native properties can be used to change the behavior of a
       ZFS dataset.

       aclmode=discard | mask | passthrough |

	   Controls how an ACL is modified during chmod(2). A file system with
	   an aclmode property	of  discard  (the  default)  deletes  all  ACL
	   entries  that  do  not  represent  the mode of the file. An aclmode
	   property of mask reduces user or group permissions. The permissions
	   are	reduced	 so that they are no greater than the group permission
	   bits, unless it is a user entry that has the same UID as the	 owner
	   of  the  file  or  directory. In this case, the ACL permissions are
	   reduced so that they are no greater than owner permission bits. The
	   mask	 value	also preserves the ACL across mode changes (without an
	   explict ACL set [by means of chmod(1)] between the mode changes). A
	   file	 system with an aclmode property of passthrough indicates that
	   no changes will be made to the ACL other than generating the neces‐
	   sary	 ACL  entries  to represent the new mode of the file or direc‐
	   tory.

       aclinherit=discard | noallow | restricted | passthrough | passthrough-x

	   Controls how ACL entries are inherited when files  and  directories
	   are	created.  A file system with an aclinherit property of discard
	   does not inherit any ACL entries. A file system with an  aclinherit
	   property  value  of	noallow	 only inherits inheritable ACL entries
	   that specify deny permissions. The property value  restricted  (the
	   default) removes the write_acl and write_owner permissions when the
	   ACL entry is inherited. A file system with an  aclinherit  property
	   value  of  passthrough inherits all inheritable ACL entries without
	   any modifications made to the ACL entries when they are  inherited.
	   A  file  system  with an aclinherit property value of passthrough-x
	   has the same meaning as passthrough, except that all	 ACEs  inherit
	   the execute permission only if the file creation mode also requests
	   the execute bit.

	   When the property value is set to passthrough,  files  are  created
	   with	 a  mode determined by the inheritable ACEs. If no inheritable
	   ACEs exist that affect the mode, then the mode is set in accordance
	   to the requested mode from the application.

       atime=on | off

	   Controls whether the access time for files is updated when they are
	   read. Turning this property off avoids producing write traffic when
	   reading  files  and	can  result  in significant performance gains,
	   though it might confuse mailers and other  similar  utilities.  The
	   default value is on.

       canmount=on | off | noauto

	   If  this property is set to off, the file system cannot be mounted,
	   and is ignored by zfs mount -a. Setting this	 property  to  off  is
	   similar to setting the mountpoint property to none, except that the
	   dataset still has a normal mountpoint property, which can be inher‐
	   ited.  Setting  this	 property  to  off  allows datasets to be used
	   solely as a mechanism to inherit properties. One example of setting
	   canmount=off	 is  to have two datasets with the same mountpoint, so
	   that the children of both datasets appear in	 the  same  directory,
	   but might have different inherited characteristics.

	   When	 the  noauto  option is set, a dataset can only be mounted and
	   unmounted explicitly. The dataset is not mounted automatically when
	   the	dataset	 is  created or imported, nor is it mounted by the zfs
	   mount -a command or unmounted by the zfs unmount -a command.

	   This property is not inherited.

       checksum=on | off | fletcher2,| fletcher4 | sha256

	   Controls the checksum used to verify data  integrity.  The  default
	   value  is  on, which automatically selects an appropriate algorithm
	   (currently, fletcher4, but this may change in future releases). The
	   value  off  disables	 integrity  checking  on  user data. Disabling
	   checksums is NOT a recommended practice.

	   Changing this property affects only newly-written data.

       compression=on | off | lzjb | gzip | gzip-N | zle

	   Controls the compression algorithm used for this dataset. The  lzjb
	   compression	algorithm is optimized for performance while providing
	   decent data compression. Setting compression to on  uses  the  lzjb
	   compression algorithm. The gzip compression algorithm uses the same
	   compression as the gzip(1) command. You can specify the gzip	 level
	   by using the value gzip-N where N is an integer from 1 (fastest) to
	   9 (best compression ratio). Currently, gzip is equivalent to gzip-6
	   (which is also the default for gzip(1)).

	   This	 property can also be referred to by its shortened column name
	   compress. Changing this property affects only newly-written data.

       copies=1 | 2 | 3

	   Controls the number of copies of  data  stored  for	this  dataset.
	   These  copies  are  in  addition  to any redundancy provided by the
	   pool, for example, mirroring or RAID-Z. The copies  are  stored  on
	   different  disks, if possible. The space used by multiple copies is
	   charged to the associated file and dataset, changing the used prop‐
	   erty and counting against quotas and reservations.

	   Changing  this property only affects newly-written data. Therefore,
	   set this property at file system creation  time  by	using  the  -o
	   copies=N option.

       devices=on | off

	   Controls  whether  device  nodes can be opened on this file system.
	   The default value is on.

       exec=on | off

	   Controls whether processes can be executed from  within  this  file
	   system. The default value is on.

       groupquota@group=size | none

	   Limits  the	amount of space consumed by the specified group. Group
	   space consumption is identified by the userquota@user property.

	   Unprivileged users can access only their own groups'	 space	usage.
	   The root user, or a user who has been granted the groupquota privi‐
	   lege with zfs allow, can get and set all groups' quotas.

       logbias = latency | throughput

	   Provides a hint to ZFS about handling of  synchronous  requests  in
	   this	 dataset. If logbias is set to latency (the default), ZFS uses
	   the pool's log devices (if configured) to handle  the  requests  at
	   low	latency. If logbias is set to throughput, ZFS does not use the
	   configured pool log devices.	 Instead,  ZFS	optimizes  synchronous
	   operations	for  global  pool  throughput  and  efficient  use  of
	   resources.

       mountpoint=path | none | legacy

	   Controls the mount point used for this file system. See the	"Mount
	   Points" section for more information on how this property is used.

	   When the mountpoint property is changed for a file system, the file
	   system and any children that inherit the mount point are unmounted.
	   If  the new value is legacy, then they remain unmounted. Otherwise,
	   they are automatically remounted in the new location if  the	 prop‐
	   erty	 was previously legacy or none, or if they were mounted before
	   the property was changed. In addition, any shared file systems  are
	   unshared and shared in the new location.

       nbmand=on | off

	   Controls whether the file system should be mounted with nbmand (Non
	   Blocking mandatory locks). This is used for SMB clients. Changes to
	   this property only take effect when the file system is umounted and
	   remounted. See mount(1M) for more information on nbmand mounts.

       primarycache=all | none | metadata

	   Controls what is cached in the primary cache (ARC). If  this	 prop‐
	   erty	 is set to all, then both user data and metadata is cached. If
	   this property is set to none, then neither user data	 nor  metadata
	   is  cached. If this property is set to metadata, then only metadata
	   is cached. The default value is all.

       quota=size | none

	   Limits the amount of space a dataset and its descendents  can  con‐
	   sume.  This	property  enforces a hard limit on the amount of space
	   used. This includes all space consumed  by  descendents,  including
	   file	 systems  and  snapshots. Setting a quota on a descendent of a
	   dataset that already has a quota does not override  the  ancestor's
	   quota, but rather imposes an additional limit.

	   Quotas cannot be set on volumes, as the volsize property acts as an
	   implicit quota.

       readonly=on | off

	   Controls whether this dataset can be modified. The default value is
	   off.

	   This property can also be referred to by its shortened column name,
	   rdonly.

       recordsize=size

	   Specifies a suggested block size for files in the file system. This
	   property  is	 designed  solely for use with database workloads that
	   access files in fixed-size records. ZFS automatically  tunes	 block
	   sizes according to internal algorithms optimized for typical access
	   patterns.

	   For databases that create very large files but access them in small
	   random  chunks,  these  algorithms  may be suboptimal. Specifying a
	   recordsize greater than or equal to the record size of the database
	   can	result	in significant performance gains. Use of this property
	   for general purpose file systems is strongly discouraged,  and  may
	   adversely affect performance.

	   The	default	 recordsize  is	 128  KB. The size specified must be a
	   power of two greater than or equal to 512 and less than or equal to
	   1 MB.

	   Changing  the  file	system's recordsize affects only files created
	   afterward; existing files and received data are unaffected.

	   This property can also be referred to by its shortened column name,
	   recsize.

       refquota=size | none

	   Limits  the	amount	of  space a dataset can consume. This property
	   enforces a hard limit on the amount of space used. This hard	 limit
	   does	 not include space used by descendents, including file systems
	   and snapshots.

       refreservation=size | none

	   The minimum amount of space guaranteed to a dataset, not  including
	   its	descendents. When the usedbydataset space is below this value,
	   the dataset is treated as if it were taking up the amount of	 space
	   specified by refreservation. The usedbyrefreservation figure repre‐
	   sents this extra space, adding to the total used space  charged  to
	   the dataset, and in turn consuming from the parent datasets' usage,
	   quotas, and reservations. This protects the dataset	from  overcom‐
	   mitment of pool resources, by ensuring that space for future writes
	   is reserved in advance.

	   Space shared with snapshots can later be replaced  with  new	 data,
	   and	the  snapshot represents a committment to keep both copies. If
	   refreservation is set, usedbyrefreservation must  be	 increased  to
	   the	full  size  of	refreservation	when  taking  a	 new snapshot,
	   accounting for this commitment.  If	there  is  insufficient	 space
	   available  to the dataset for this increase, snapshot creation will
	   be denied.

	   This property can also be referred to by its shortened column name,
	   refreserv.

       reservation=size | none

	   The minimum amount of space guaranteed to a dataset and its descen‐
	   dents. When the amount of space  used  is  below  this  value,  the
	   dataset  is	treated	 as  if	 it were taking up the amount of space
	   specified by its reservation. Reservations are accounted for in the
	   parent datasets' space used, and count against the parent datasets'
	   quotas and reservations.

	   This property can also be referred to by its shortened column name,
	   reserv.

       rstchown=on | off

	   Indicates  whether the file system restricts users from giving away
	   their files by means of chown(1) or the chown(2) system  call.  The
	   default  is to restrict chown. When rstchown is off then chown will
	   act as if the user has the PRIV_FILE_CHOWN_SELF privilege.

       secondarycache=all | none | metadata

	   Controls what is cached in the secondary  cache  (L2ARC).  If  this
	   property is set to all, then both user data and metadata is cached.
	   If this property is set to none, then neither user data  nor	 meta‐
	   data	 is  cached.  If  this	property is set to metadata, then only
	   metadata is cached. The default value is all.

       setuid=on | off

	   Controls whether the set-UID bit is respected for the file  system.
	   The default value is on.

       sharesmb=on | off | opts

	   Controls whether the file system is shared by using the Solaris SMB
	   service, and what options are to be used. A file  system  with  the
	   sharesmb  property  set to off is managed through traditional tools
	   such as share_nfs(1M). Otherwise, the file system is	 automatically
	   shared and unshared with the zfs share and zfs unshare commands.

	   Because SMB shares requires a resource name, a unique resource name
	   is constructed from the dataset name. The  constructed  name	 is  a
	   copy	 of the dataset name except that the characters in the dataset
	   name, which would be illegal in the	resource  name,	 are  replaced
	   with	 underscore  (_)  characters. A pseudo property "name" is also
	   supported that allows you to replace the data set name with a spec‐
	   ified  name.	 The specified name is then used to replace the prefix
	   dataset in the case of inheritance. For  example,  if  the  dataset
	   data/home/john  is  set  to	name=john,  then  data/home/john has a
	   resource name of john. If a child dataset  of  data/home/john/back‐
	   ups, it has a resource name of john_backups.

	   When SMB shares are created, the SMB share name appears as an entry
	   in the .zfs/shares directory. You can use the ls or	chmod  command
	   to display the share-level ACLs on the entries in this directory.

	   When	 the  sharesmb	property is changed for a dataset, the dataset
	   and any children inheriting the property are re-shared with the new
	   options, only if the property was previously set to off, or if they
	   were shared before the property was changed. If the new property is
	   set to off, the file systems are unshared.

	   Note -

	     This  SMB-related	property is not fully functional in the Oracle
	     Solaris 10 release because the Oracle Solaris SMB server  is  not
	     supported in the Oracle Solaris 10 release.

       sharenfs=on | off | opts

	   Controls  whether  the dataset is shared by using the NFS protocol.
	   If the property is set to on, the zfs share command is invoked with
	   no  options.	 You  can specify a comma-separated list of options as
	   the contents of this property. See the EXAMPLES  section.  You  can
	   also	 share	a ZFS file system by using the zfs share command. Set‐
	   ting the sharenfs property or using the zfs share command  is  pre‐
	   ferred over using the legacy share(1M) command.

	   When	 the  sharenfs	property is changed for a dataset, the dataset
	   and any children inheriting the property are re-shared with the new
	   options,  only  if the property was previously off, or if they were
	   shared before the property was changed. If the new property is off,
	   the file systems are unshared.

       snapdir=hidden | visible

	   Controls  whether  the  .zfs	 directory is hidden or visible in the
	   root of the file system as discussed in  the	 "Snapshots"  section.
	   The default value is hidden.

       sync=standard | always | disabled

	   Determines  the  degree  to which file system transactions are syn‐
	   chronized. This property can be set when a dataset is  created,  or
	   dynamically, and will take effect immediately. sync can have one of
	   the following settings:

	   standard

	       The default option. Synchronous file  system  transactions  are
	       written	to  the	 intent	 log  and then all devices written are
	       flushed to ensure the data is stable (that is,  not  cached  by
	       device controllers).

	   always

	       Every  file  system transaction would be written and flushed to
	       stable storage. This setting should be used only where  extreme
	       caution	is  required,  as  there  is a significant performance
	       penalty.

	   disabled

	       Synchronous requests are	 disabled.  File  system  transactions
	       commit to stable storage only on the next DMU transaction group
	       commit, which might be after many seconds. This	setting	 gives
	       the  highest  performance. However, it is very dangerous as ZFS
	       would be ignoring the synchronous transaction demands of appli‐
	       cations	such  as databases or NFS. Furthermore, when this set‐
	       ting is in  effect  for	the  currently	active	root  or  /var
	       filesystem,  out-of-spec	 behavior,  application data loss, and
	       increased vulnerability to replay attacks can result.  Adminis‐
	       trators	should	only use this option only when these risks are
	       understood.

       userquota@user=size | none

	   Limits the amount of space consumed by the specified user.  Similar
	   to  the refquota property, the userquota space calculation does not
	   include space that is used by descendent datasets,  such  as	 snap‐
	   shots  and  clones.	User  space  consumption  is identified by the
	   userspace@user property.

	   Enforcement of user quotas may be delayed by several seconds.  This
	   delay  means	 that  a user might exceed her quota before the system
	   notices that she is over quota. The	system	would  then  begin  to
	   refuse  additional  writes  with the EDQUOT error message . See the
	   zfs userspace subcommand for more information.

	   Unprivileged users can only access their own groups'	 space	usage.
	   The	root user, or a user who has been granted the userquota privi‐
	   lege with zfs allow, can get and set everyone's quota.

	   This property is not available on volumes, on file  systems	before
	   version 4, or on pools before version 15. The userquota@... proper‐
	   ties are not displayed by zfs get all.  The	user's	name  must  be
	   appended after the @ symbol, using one of the following forms:

	       o      POSIX name (for example, joe)

	       o      POSIX numeric ID (for example, 789)

	       o      SID name (for example, joe.smith@mydomain)

	       o      SID numeric ID (for example, S-1-123-456-789)

       version=1 | 2 | current

	   The	on-disk	 version  of this file system, which is independent of
	   the pool version. This property can only be set to later  supported
	   versions. See the zfs upgrade command.

       volsize=size

	   Specifies  the  logical  size of the volume. By default, creating a
	   volume establishes a refreservation that is a somewhat larger  than
	   the	actual	logical volume size, to account for ZFS metadata over‐
	   head. Any changes to volsize are reflected in an equivalent	change
	   to the refreservation. The volsize can only be set to a multiple of
	   volblocksize, and cannot be zero.

	   The refreservation is set  on  the  volume  to  prevent  unexpected
	   behavior  for  consumers. Without the reservation, the volume could
	   run out of space, resulting in undefined behavior or	 data  corrup‐
	   tion,  depending  on how the volume is used. These effects can also
	   occur when the volume size is changed while it is in use  (particu‐
	   larly  when	shrinking  the size). Extreme care should be used when
	   adjusting the volume size.

	   Though not recommended, a sparse volume (also known as thin	provi‐
	   sioning) can be created by specifying the -s option to the zfs cre‐
	   ate -V command. A sparse volume is a volume where  the  reservation
	   is less then the volume size. Consequently, writes to a sparse vol‐
	   ume can fail with ENOSPC when the pool  is  low  on	space.	For  a
	   sparse volume, changes to volsize are not reflected in the reserva‐
	   tion.

       vscan=on | off

	   Controls whether regular files should be scanned for viruses when a
	   file	 is  opened and closed. In addition to enabling this property,
	   the virus scan service must also be enabled for virus  scanning  to
	   occur. The default value is off.

       xattr=on | off

	   Controls whether extended attributes are enabled for this file sys‐
	   tem. The default value is on.

       zoned=on | off

	   Controls whether the dataset is managed from a non-global zone. See
	   the "Zones" section for more information. The default value is off.

       The  following three properties cannot be changed after the file system
       is created, and therefore, should be set when the file system  is  cre‐
       ated. If the properties are not set with the zfs create or zpool create
       commands, these properties are inherited from the  parent  dataset.  If
       the  parent  dataset  lacks these properties due to having been created
       prior to these features being supported, the new file system will  have
       the default values for these properties.

       casesensitivity=sensitive | insensitive | mixed

	   Indicates whether the file name matching algorithm used by the file
	   system should be case-sensitive, case-insensitive, or allow a  com‐
	   bination of both styles of matching. The default value for the cas‐
	   esensitivity property is mixed. Traditionally, UNIX and POSIX  file
	   systems have case-sensitive file names.

	   The mixed value for the casesensitivity property indicates that the
	   file system can support requests for both case-sensitive and	 case-
	   insensitive matching behavior. Currently, case-insensitive matching
	   behavior on a file system that supports mixed behavior  is  limited
	   to  the  Solaris SMB server product. For more information about the
	   mixed value behavior, see the Solaris ZFS Administration Guide.

	   Note -

	     This SMB-related property is not fully functional in  the	Oracle
	     Solaris  10  release because the Oracle Solaris SMB server is not
	     supported in the Oracle Solaris 10 release.

       normalization = none | formC | formD | formKC | formKD

	   Indicates whether the file system should perform a unicode  normal‐
	   ization  of	file  names  whenever two file names are compared, and
	   which normalization algorithm should be used. File names are always
	   stored  unmodified,	names are normalized as part of any comparison
	   process. If this property is set to a legal value other than	 none,
	   and	the utf8only property was left unspecified, the utf8only prop‐
	   erty is automatically set to on. The default value of  the  normal‐
	   ization property is none. This property cannot be changed after the
	   file system is created.

	   Note -

	     This SMB-related property is not fully functional in  the	Oracle
	     Solaris  10  release because the Oracle Solaris SMB server is not
	     supported in the Oracle Solaris 10 release.

       utf8only=on | off

	   Indicates whether the file system should  reject  file  names  that
	   include characters that are not present in the UTF-8 character code
	   set. If this property is explicitly set to off,  the	 normalization
	   property  must  either not be explicitly set or be set to none. The
	   default value for the utf8only property is off. This property  can‐
	   not be changed after the file system is created.

	   Note -

	     This  SMB-related	property is not fully functional in the Oracle
	     Solaris 10 release because the Oracle Solaris SMB server  is  not
	     supported in the Oracle Solaris 10 release.

   Temporary Mount Point Properties
       When  a ZFS file system is mounted, either through the legacy mount(1M)
       command for legacy mounts or the zfs mount command, its	mount  options
       are set according to its properties. The correlation between properties
       and mount options is as follows:

	     PROPERTY		     MOUNT OPTION
	      devices		      devices/nodevices
	      exec		      exec/noexec
	      readonly		      ro/rw
	      setuid		      setuid/nosetuid
	      xattr		      xattr/noxattr
	      rstchown		      rstchown/norstchown

       In addition, these options can be set on a per-mount basis using the -o
       option, without affecting the property that is stored on disk. The val‐
       ues specified on the command line override the  values  stored  in  the
       dataset.	 The  -nosuid option is an alias for nodevices,nosetuid. These
       properties are reported as temporary by the zfs get command. For	 prop‐
       erties  other  than mountpoint, if the properties are changed while the
       dataset is mounted, the new setting overrides any  temporary  settings.
       The  mountpoint property cannot be changed while a temporary mountpoint
       property is in effect (that is, while the dataset is mounted at a  tem‐
       porary location).

   User Properties
       In  addition  to the standard native properties, ZFS supports arbitrary
       user properties. User properties have no effect on  ZFS	behavior,  but
       applications  or administrators can use them to annotate datasets (file
       systems, volumes, and snapshots).

       User property names must contain a colon (:) character  to  distinguish
       them  from  native properties. They may contain lowercase letters, num‐
       bers, and the following punctuation characters: colon  (:),  dash  (-),
       period  (.),  and  underscore  (_). The expected convention is that the
       property name is divided into two portions such as module:property, but
       this  namespace	is  not enforced by ZFS. User property names can be at
       most 256 characters, and cannot begin with a dash (-).

       When making programmatic use of user properties, it  is	strongly  sug‐
       gested  to  use	a reversed DNS domain name for the module component of
       property names to reduce the chance  that  two  independently-developed
       packages use the same property name for different purposes.

       The  values of user properties are arbitrary strings, are always inher‐
       ited, and are never validated. All of  the  commands  that  operate  on
       properties  (zfs	 list,	zfs get, zfs set, and so forth) can be used to
       manipulate both native properties and  user  properties.	 Use  the  zfs
       inherit	command	 to  clear  a  user  property . If the property is not
       defined in any parent dataset, it is removed entirely. Property	values
       are limited to 1024 characters.

   ZFS Volumes as Swap or Dump Devices
       During  an  initial installation or a live upgrade from a UFS file sys‐
       tem, a swap device and dump device are created on ZFS  volumes  in  the
       ZFS  root  pool.	 The default swap device varies based on the amount of
       the system's physical memory.The size of the dump device depends on the
       kernel's	 requirements  at installation time. Separate ZFS volumes must
       be used for the swap area and dump devices. Do not swap to a file on  a
       ZFS file system. A ZFS swap file configuration is not supported.

       If you need to change your swap area or dump device after the system is
       installed or upgraded, use the swap(1M) and  dumpadm(1M)	 commands.  If
       you  need  to change the size of your swap area or dump device, see the
       Solaris ZFS Administration Guide.

SUBCOMMANDS
       All subcommands that modify state are logged persistently to  the  pool
       in their original form.

       zfs ?

	   Displays a help message.

       zfs help subcommand | help property property | permission

	   Displays zfs subcommand usage information. You can display help for
	   a specific subcommand, property, or delegated  permission.  If  you
	   display  help for a specific subcommand or property, the subcommand
	   syntax or property value is displayed. Using zfs help  without  any
	   arguments displays a complete list of zfs subcommands.

       zfs create [-p] [-o property=value] ... filesystem

	   Creates  a  new  ZFS	 file system. The file system is automatically
	   mounted according to the mountpoint	property  inherited  from  the
	   parent.

	   -p

	       Creates	all the non-existing parent datasets. Datasets created
	       in this manner  are  automatically  mounted  according  to  the
	       mountpoint  property  inherited from their parent. Any property
	       specified on the command line using the -o option  is  ignored.
	       If  the	target	filesystem  already exists, the operation com‐
	       pletes successfully.

	   -o property=value

	       Sets the specified property as if the  command  zfs  set	 prop‐
	       erty=value  was	invoked	 at the same time the dataset was cre‐
	       ated. Any editable ZFS property can also	 be  set  at  creation
	       time. Multiple -o options can be specified. An error results if
	       the same property is specified in multiple -o options.

       zfs create [-ps] [-b blocksize] [-o property=value] ... -V size volume

	   Creates a volume of the given size. The volume  is  exported	 as  a
	   block  device  in /dev/zvol/{dsk,rdsk}/path, where path is the name
	   of the volume in the ZFS namespace. The size represents the logical
	   size	 as exported by the device. By default, a reservation of equal
	   size is created.

	   size is automatically rounded up  to	 the  nearest  128  Kbytes  to
	   ensure  that the volume has an integral number of blocks regardless
	   of blocksize.

	   -p

	       Creates all the non-existing parent datasets. Datasets  created
	       in  this	 manner	 are  automatically  mounted  according to the
	       mountpoint property inherited from their parent.	 Any  property
	       specified  on  the command line using the -o option is ignored.
	       If the target filesystem already	 exists,  the  operation  com‐
	       pletes successfully.

	   -s

	       Creates a sparse volume with no reservation. See volsize in the
	       Native Properties section for  more  information	 about	sparse
	       volumes.

	   -o property=value

	       Sets  the  specified  property as if the zfs set property=value
	       command was invoked at the same time the dataset	 was  created.
	       Any  editable  ZFS  property  can also be set at creation time.
	       Multiple -o options can be specified. An error results  if  the
	       same property is specified in multiple -o options.

	   -b blocksize

	       Equivalent  to  -o  volblocksize=blocksize.  If	this option is
	       specified in conjunction with -o	 volblocksize,	the  resulting
	       behavior is undefined.

       zfs destroy [-rRf] filesystem|volume

	   Destroys  the  given	 dataset. By default, the command unshares any
	   file systems that are currently shared, unmounts any	 file  systems
	   that	 are  currently mounted, and refuses to destroy a dataset that
	   has active dependents (children or clones).

	   -r

	       Recursively destroy all children.

	   -R

	       Recursively destroy all dependents, including cloned file  sys‐
	       tems outside the target hierarchy.

	   -f

	       Force  an unmount of any file systems using the unmount -f com‐
	       mand.  This  option  has	 no  effect  on	 non-file  systems  or
	       unmounted file systems.

	   Extreme  care should be taken when applying either the -r or the -f
	   options, as they can destroy large portions of  a  pool  and	 cause
	   unexpected behavior for mounted file systems in use.

       zfs destroy [-rRd] snapshot

	   The	given snapshot is destroyed immediately if and only if the zfs
	   destroy command without the -d option would have destroyed it. Such
	   immediate destruction would occur, for example, if the snapshot had
	   no clones and the user-initiated reference count were zero.

	   If the snapshot does not qualify for immediate destruction,	it  is
	   marked for deferred deletion. In this state, it exists as a usable,
	   visible snapshot until both of the preconditions listed  above  are
	   met, at which point it is destroyed.

	   -d

	       Defer snapshot deletion.

	   -r

	       Destroy (or mark for deferred deletion) all snapshots with this
	       name in descendent file systems.

	   -R

	       Recursively destroy all dependents.

       zfs snapshot [-r] [-o property=value] ... filesystem@snapname|vol‐
       ume@snapname

	   Creates  a snapshot with the given name. All previous modifications
	   by successful system calls to the file system are part of the snap‐
	   shot.  zfs  snap  can be used as an alias for zfs snapshot. See the
	   "Snapshots" section for details.

	   -r

	       Recursively create snapshots of all descendent datasets.	 Snap‐
	       shots  are  taken  atomically,  so that all recursive snapshots
	       correspond to the same moment in time.

	   -o property=value

	       Sets the specified property; see zfs create for details.

       zfs rollback [-rRf] snapshot

	   Roll back the given dataset to a previous snapshot. When a  dataset
	   is  rolled  back,  all  data that has changed since the snapshot is
	   discarded, and the dataset reverts to the state at the time of  the
	   snapshot.  By  default, the command refuses to roll back to a snap‐
	   shot other than the most recent one. In order to do so, all	inter‐
	   mediate snapshots must be destroyed by specifying the -r option.

	   The -rR options do not recursively destroy the child snapshots of a
	   recursive  snapshot.	 Only  the  top-level  recursive  snapshot  is
	   destroyed  by  either  of  these options. To completely roll back a
	   recursive snapshot, you must rollback the  individual  child	 snap‐
	   shots.

	   -r

	       Recursively  destroy  any  snapshots  more  recent than the one
	       specified.

	   -R

	       Recursively destroy any more recent snapshots, as well  as  any
	       clones of those snapshots.

	   -f

	       Used  with  the -R option to force an unmount of any clone file
	       systems that are to be destroyed.

       zfs clone [-p] [-o property=value] ... snapshot filesystem|volume

	   Creates a clone of the given snapshot. See the "Clones" section for
	   details.  The  target  dataset  can	be located anywhere in the ZFS
	   hierarchy, and is created as the same type as the original.

	   -p

	       Creates all the non-existing parent datasets. Datasets  created
	       in  this	 manner	 are  automatically  mounted  according to the
	       mountpoint property inherited from their parent. If the	target
	       file  system  or volume already exists, the operation completes
	       successfully.

	   -o property=value

	       Sets the specified property; see zfs create for details.

       zfs promote clone-filesystem

	   Promotes a clone file system to no longer be dependent on its  ori‐
	   gin	snapshot.  This	 makes	it possible to destroy the file system
	   that the clone was created from. The clone parent-child  dependency
	   relationship	 is reversed, so that the origin file system becomes a
	   clone of the specified file system.

	   The snapshot that was cloned, and any snapshots  previous  to  this
	   snapshot,  are  now owned by the promoted clone. The space they use
	   moves from the origin file system to the promoted clone, so	enough
	   space  must	be  available  to  accommodate these snapshots. No new
	   space is consumed by this operation, but the	 space	accounting  is
	   adjusted. The promoted clone must not have any conflicting snapshot
	   names of its own. The rename subcommand can be used to  rename  any
	   conflicting snapshots.

       zfs rename filesystem|volume|snapshot
       filesystem|volume|snapshot
       zfs rename [-p] filesystem|volume filesystem|volume

	   Renames  the	 given dataset. The new target can be located anywhere
	   in the ZFS hierarchy, with the exception  of	 snapshots.  Snapshots
	   can	only  be renamed within the parent file system or volume. When
	   renaming a snapshot, the parent file system of  the	snapshot  does
	   not	need  to  be specified as part of the second argument. Renamed
	   file systems can inherit new mount points, in which case  they  are
	   unmounted and remounted at the new mount point.

	   -p

	       Creates	all  the nonexistent parent datasets. Datasets created
	       in this manner  are  automatically  mounted  according  to  the
	       mountpoint property inherited from their parent.

       zfs rename -r snapshot snapshot

	   Recursively	rename the snapshots of all descendent datasets. Snap‐
	   shots are the only dataset that can be renamed recursively.

       zfs list [-r|-d depth] [-H] [-o property[,...]] [ -t type[,...]] [ -s
       property ] ... [ -S property ] ... [filesystem|volume|snapshot] ...

	   Lists  the  property	 information for the given datasets in tabular
	   form. If specified, you can list property information by the	 abso‐
	   lute	 pathname  or the relative pathname. By default, all file sys‐
	   tems and volumes are displayed.  Snapshots  are  displayed  if  the
	   listsnaps property is on (the default is on) . The following fields
	   are displayed, name,used,available,referenced,mountpoint.

	   -H

	       Used for scripting mode. Do  not	 print	headers	 and  separate
	       fields by a single tab instead of arbitrary white space.

	   -r

	       Recursively  display any children of the dataset on the command
	       line.

	   -d depth

	       Recursively display any children of the dataset,	 limiting  the
	       recursion  to depth. A depth of 1 will display only the dataset
	       and its direct children.

	   -o property

	       A comma-separated list of properties to display.	 The  property
	       must be:

		   o	  One of the properties described in the "Native Prop‐
			  erties" section

		   o	  A user property

		   o	  The value name to display the dataset name

		   o	  The value space to display space usage properties on
			  file	systems	 and  volumes.	This is a shortcut for
			  specifying the syntax:

			    -o name,avail,used,usedsnap,usedds,usedrefreserv,\
			    usedchild -t filesystem,volume

	   -s property

	       A property for sorting the output by column in ascending	 order
	       based on the value of the property. The property must be one of
	       the properties described in the "Properties"  section,  or  the
	       special	value name to sort by the dataset name. Multiple prop‐
	       erties can be specified at one time using multiple -s  property
	       options.	 Multiple  -s options are evaluated from left to right
	       in decreasing order of importance.

	       The following is a list of sorting criteria:

		   o	  Numeric types sort in numeric order.

		   o	  String types sort in alphabetical order.

		   o	  Types inappropriate for a row sort that row  to  the
			  literal  bottom,  regardless of the specified order‐
			  ing.

		   o	  If no sorting options	 are  specified	 the  existing
			  behavior of zfs list is preserved.

	   -S property

	       Same  as	 the  -s  option,  but sorts by property in descending
	       order.

	   -t type

	       A comma-separated list of types to display, where type  is  one
	       of filesystem, snapshot , volume, or all. For example, specify‐
	       ing -t snapshot displays only snapshots. The following  aliases
	       can  be	used in place of the type specifiers: fs (filesystem),
	       snap (snapshot), and vol (volume).

       zfs set [-r] property=value filesystem|volume|snapshot ...

	   Sets the property to the given value for each  dataset.  Only  some
	   properties  can  be	edited.	 See the "Properties" section for more
	   information on what properties can be set  and  acceptable  values.
	   Numeric  values  can	 be  specified as exact values, or in a human-
	   readable form with a suffix of B, K, M, G, T, P, E, Z  (for	bytes,
	   kilobytes, megabytes, gigabytes, terabytes, petabytes, exabytes, or
	   zettabytes, respectively). User properties can be set on snapshots.
	   For more information, see the "User Properties" section.

	   -r

	       Recursively apply the effective value of the setting throughout
	       the subtree of child datasets. The effective value may  be  set
	       or inherited, depending on the property.

       zfs get [-rHP|-d depth] [-o all | field[,...] [-s source[,...]] all |
       property[,...] filesystem|volume|snapshot ...

	   Displays properties for the given  datasets.	 If  no	 datasets  are
	   specified, then the command displays properties for all datasets on
	   the system. For each property, the following columns are displayed:

		  name	    Dataset name
		  property  Property name
		  value	    Property value
		  source    Property source. Can either be local, default,
			    temporary, inherited, or none (-).

	   All columns except the RECEIVED column are  displayed  by  default;
	   specify  particular	or all columns, using the -o option. This com‐
	   mand takes a comma-separated list of properties as described in the
	   "Native Properties" and "User Properties" sections.

	   The	special	 value	all can be used to display all properties that
	   apply to the given dataset's type  (filesystem,  volume,  or	 snap‐
	   shot).

	   -r

	       Recursively display properties for any children.

	   -d depth

	       Recursively  display  any children of the dataset, limiting the
	       recursion to depth. A depth of 1 will display only the  dataset
	       and its direct children.

	   -H

	       Display	output	in  a  form more easily parsed by scripts. Any
	       headers are omitted, and fields are explicitly separated	 by  a
	       single tab instead of an arbitrary amount of space.

	   -o field

	       Set of fields to display. One or more of:

		 name,property,value,received,source

	       Present	multiple fields as a comma-separated list. The default
	       value is:

		 name,property,value,source

	       The keyword all specifies all sources.

	   -s source

	       A comma-separated list of sources to display. Those  properties
	       coming from a source other than those in this list are ignored.
	       Each source must be one of the following:

		 local,default,inherited,temporary,received,none

	       The default value is all sources.

	   -p

	       Display numbers in parseable (exact) values.

       zfs inherit [-rS] property filesystem|volume|snapshot ...

	   Clears the specified property, causing it to be inherited  from  an
	   ancestor.  If  no  ancestor	has the property set, then the default
	   value is used. See  the  "Properties"  section  for	a  listing  of
	   default values, and details on which properties can be inherited.

	   -r

	       Recursively inherit the given property for all children.

	   -S

	       Revert  to the received property value, if any. If the property
	       does not have a received value, the behavior of zfs inherit  -S
	       is  the	same  as  zfs inherit without -S. If the property does
	       have a received value, zfs inherit  masks  the  received	 value
	       with  the  inherited  value until zfs inherit -S reverts to the
	       received value.

       zfs upgrade

	   Identifies a file system version, which determines  available  file
	   system  features in the currently running software release. You can
	   continue to use older file system versions, but some features might
	   not	be  available.	A file system can be upgraded by using the zfs
	   upgrade -a command. You will not be able to access a file system of
	   a later version on a system that runs an earlier software version.

       zfs upgrade [-v]

	   Displays ZFS file system versions that are supported by the current
	   software. The current ZFS file system versions and  all  previously
	   supported  versions are displayed, along with an explanation of the
	   features provided with each version.

       zfs upgrade [-r] [-V version] [-a | filesystem]

	   Upgrades file systems to a new, on-disk version. Upgrading  a  file
	   system  means that it will no longer be accessible on a system run‐
	   ning an older software version. A zfs send stream that is generated
	   from a new file system snapshot cannot be accessed on a system that
	   runs an older software version.

	   In general, the file system version is independent of the pool ver‐
	   sion. See zpool(1M) for information on the zpool upgrade command.

	   In  some  cases,  the  file system version and the pool version are
	   interrelated and the pool version must be upgraded before the  file
	   system version can be upgraded.

	   -a

	       Upgrade all file systems on all imported pools.

	   filesystem

	       Upgrade the specified file system.

	   -r

	       Upgrade	the specified file system and all descendent file sys‐
	       tems

	   -V version

	       Upgrade to the specified version. If the -V flag is not	speci‐
	       fied,  this  command  upgrades to the most recent version. This
	       option can only be used to increase  the	 version  number,  and
	       only up to the most recent version supported by this software.

       zfs userspace [-hniHp] [-o field[,...]] [-sS field]... [-t type [,...]]
       filesystem | snapshot

	   Displays space consumed by, and quotas on, each user in the	speci‐
	   fied	 filesystem or snapshot. This corresponds to the userused@user
	   and userquota@user properties.

	   -h

	       Displays syntax help message and exit.

	   -n

	       Displays numeric ID instead of user/group name.

	   -H

	       Does not print headers, use tab-delimited output.

	   -p

	       Uses exact (parseable) numeric output.

	   -o field[,...]

	       Displays only the specified  fields  from  the  following  set,
	       type,name,used,quota. The default is to display all fields.

	   -s field

	       Sorts  output  by the specified field. The s and S flags may be
	       specified multiple times to sort first by one  field,  then  by
	       another. The default is -s type -s name.

	   -S field

	       Sorts by this field in reverse order. See -s.

	   -t type[,...]

	       Displays	 only  the  specified  types  from  the following set,
	       all,posixuser,smbuser,posixgroup,smbgroup.

	       The default is -t posixuser,smbuser

	       The default can be changed to include group types.

	   -i

	       Translates SID to POSIX ID. The POSIX ID may be ephemeral if no
	       mapping	exists. Normal POSIX interfaces (for example, stat(2),
	       ls -l) perform this translation, so the -i  option  allows  the
	       output  from  zfs  userspace to be compared directly with those
	       utilities. However, -i may lead to confusion if some files were
	       created	by  an SMB user before a SMB-to-POSIX name mapping was
	       established. In such a case, some files are owned  by  the  SMB
	       entity  and  some  by  the POSIX entity. However, the -i option
	       will report that the POSIX entity has the total usage and quota
	       for both.

       zfs groupspace [-niHp] [-o field[,...]] [-sS field]... [-t type [,...]]
       filesystem | snapshot

	   Displays space consumed by, and quotas on, each group in the speci‐
	   fied	 filesystem  or	 snapshot. This subcommand is identical to zfs
	   userspace, except that the default types to display are  -t	posix‐
	   group,smbgroup.

	     -

       zfs mount

	   Displays all ZFS file systems currently mounted.

       zfs mount [-vO] [-o options] -a | filesystem

	   Mounts  ZFS file systems. Invoked automatically as part of the boot
	   process.

	   -o options

	       An optional, comma-separated list of mount options to use  tem‐
	       porarily	 for  the  duration  of	 the mount. See the "Temporary
	       Mount Point Properties" section for details.

	   -O

	       Perform an overlay mount. See mount(1M) for more information.

	   -v

	       Report mount progress.

	   -a

	       Mount all available ZFS file systems. Invoked automatically  as
	       part of the boot process.

	   filesystem

	       Mount the specified filesystem.

       zfs unmount [-f] -a | filesystem|mountpoint

	   Unmounts  currently mounted ZFS file systems. Invoked automatically
	   as part of the shutdown process.

	   -f

	       Forcefully unmount the file system, even if it is currently  in
	       use.

	   -a

	       Unmount	all  available ZFS file systems. Invoked automatically
	       as part of the boot process.

	   filesystem|mountpoint

	       Unmount the specified filesystem. The command can also be given
	       a path to a ZFS file system mount point on the system.

       zfs share -a | filesystem

	   Shares ZFS file systems that have the sharenfs or sharesmb property
	   set. Sharing a file system with the NFS or SMB protocol means  that
	   the	file  system data is available over the network. ZFS file sys‐
	   tems that have the sharenfs or sharesmb property set are  automati‐
	   cally shared when a system is booted.

	   -a

	       Shares  all ZFS file systems that have the sharenfs or sharesmb
	       property set and according to the share property values.

	   filesystem

	       Shares the specified file  system  that	has  the  sharenfs  or
	       sharesmb	 property set and according to the share property val‐
	       ues.

       zfs unshare -a | filesystem|mountpoint

	   Unshares all ZFS file systems that have the	sharenfs  or  sharesmb
	   property set.

	   -a

	       Unshare	all  available ZFS file systems. Invoked automatically
	       as part of the boot process.

	   filesystem|mountpoint

	       Unshare the specified filesystem. The command can also be given
	       a path to a ZFS file system shared on the system.

       zfs send [-Rbpv] [-[iI] snapshot] snapshot
       zfs send -r [-bcpv] [-[i] snapshot] snapshot

	   Creates  a  stream  representation of the second snapshot, which is
	   written to standard output. The output can be redirected to a  file
	   or  to a different system (for example, using ssh(1). By default, a
	   full stream is generated.

	   -b

	       Sends only received property values whether  or	not  they  are
	       overridden  by local settings, but only if the dataset has ever
	       been received. Use this option when you	want  zfs  receive  to
	       restore	received  properties backed up on the sent dataset and
	       to avoid sending local settings that may	 have  nothing	to  do
	       with  the  source dataset, but only with how the data is backed
	       up.

	   -c

	       Creates a self-contained stream. A self-contained stream is one
	       that  is	 not  dependent	 on  any  datasets not included in the
	       stream package. Valid only with the -r option. If used with the
	       -i option, the stream is dependent on the snapshot specified as
	       an argument to the that option.

	       See the "ZFS Streams" section of the ZFS	 Administration	 Guide
	       for details.

	   -i snapshot

	       Generates  an incremental stream from the first snapshot to the
	       second snapshot. The incremental source	(the  first  snapshot)
	       can  be	specified  as  the last component of the snapshot name
	       (for example, the part after the @), and it is  assumed	to  be
	       from the same file system as the second snapshot.

	       If  the	destination  is	 a clone, the source may be the origin
	       snapshot,  which	 must  be  fully   specified   (for   example,
	       pool/fs@origin, not just @origin).

	   -I snapshot

	       Generates  a  stream  package that sends all intermediary snap‐
	       shots from the first snapshot to the second snapshot. For exam‐
	       ple,  -I	 @a  fs@d  is similar to -i @a fs@b; -i @b fs@c; -i @c
	       fs@d. The incremental source snapshot may be specified as  with
	       the -i option.

	   -R

	       Generates  a  replication  stream  package  that replicates the
	       specified file system, and all descendent file systems,	up  to
	       the  named  snapshot. When received, all properties, snapshots,
	       descendent file systems, and clones are preserved.

	       If the -i or -I flags are used in conjunction with the -R flag,
	       an  incremental	replication  stream  is generated. The current
	       values of properties, and  current  snapshot  and  file	system
	       names  are  set	when the stream is received. If the -F flag is
	       specified when this stream is received, snapshots and file sys‐
	       tems that do not exist on the sending side are destroyed.

	   -r

	       Generates  a recursive stream package. A recursive stream pack‐
	       age contains a series of full and/or incremental streams.  When
	       received,  all  properties and descendent file systems are pre‐
	       served. Unlike with the replication stream  packages  generated
	       with  the  -R  flag,  intermediate  snapshots are not preserved
	       unless the intermediate snapshot is the origin of a clone  that
	       is included in the stream.

	       If  the -i option is used in conjunction with the -r option, an
	       incremental recursive stream is generated. The  current	values
	       of properties as well as current snapshot and file system names
	       are set when the stream is received. If the -F option is speci‐
	       fied  when  this stream is received, snapshots and file systems
	       that do not exist on the sending side  are  destroyed.  The  -I
	       option cannot be used in conjunction with the -r option.

	       When  combined  with  the -c option, a self-contained recursive
	       stream package is created. If both the -c and  -i  options  are
	       used,  file  systems  and volumes that do not have the snapshot
	       specified  with	the  -i	 option	 are  sent  as	self-contained
	       streams.

	       See  the	 "ZFS Streams" section of the ZFS Administration Guide
	       to understand how a recursive stream  package  differs  from  a
	       replication stream package.

	   -p

	       Sends properties.

	   -v

	       Displays	 verbose  information  about the stream package gener‐
	       ated.

	   The format of the stream is committed. You will be able to  receive
	   your streams on future versions of ZFS.

       zfs receive [-vnFu] [[-o property=value] | [-x property]] ... filesys‐
       tem|volume|snapshot
       zfs receive [-vnFu] [[-o property=value] | [-x property]] ... [-d | -e]
       filesystem

	   Creates  a  snapshot	 whose contents are as specified in the stream
	   provided on standard input. If a full stream is  received,  then  a
	   new	file  system is created as well. Streams are created using the
	   zfs send subcommand, which by default creates a  full  stream.  zfs
	   recv can be used as an alias for zfs receive.

	   If  an  incremental	stream	is received, then the destination file
	   system must already exist, and its most recent snapshot must	 match
	   the	incremental stream's source. For zvols, the destination device
	   link is destroyed and recreated, which means	 the  zvol  cannot  be
	   accessed during the receive operation.

	   When	 a  snapshot  replication  package stream that is generated by
	   using the zfs send -R command is received, any  snapshots  that  do
	   not	exist  on  the sending location are destroyed by using the zfs
	   destroy -d command. If -o property=value or -x property  is	speci‐
	   fied,  it applies to the effective value of the property throughout
	   the entire subtree of replicated datasets. Effective property  val‐
	   ues	may be set or inherited, depending on the property and whether
	   the dataset is the topmost  in  the	replicated  subtree.  Received
	   properties  are  retained  in  spite of being overridden and may be
	   restored with zfs inherit -rS or zfs send -Rb.

	   The name of the snapshot (and file system,  if  a  full  stream  is
	   received) that this subcommand creates depends on the argument type
	   and the -d or -e option.

	   If the argument is a snapshot name, the specified snapshot is  cre‐
	   ated.  If  the argument is a file system or volume name, a snapshot
	   with the same name as the sent snapshot is created within the spec‐
	   ified  filesystem  or  volume. If the -d or -e option is specified,
	   the snapshot name is determined by appending	 the  sent  snapshot's
	   name	 to  the  specified filesystem. If the -d option is specified,
	   all but the pool name of the sent snapshot path  is	appended  (for
	   example,  b/c@1 appended from sent snapshot a/b/c@1), and if the -e
	   option is specified, only the tail of the  sent  snapshot  path  is
	   appended (for example, c@1 appended from sent snapshot a/b/c@1). In
	   the case of -d, any file systems needed to replicate	 the  path  of
	   the sent snapshot are created within the specified file system.

	   -d

	       Uses  all  but the first element of the sent snapshot path (all
	       but the pool name) to determine the name of the new snapshot as
	       described in the paragraph above.

	   -e

	       Uses  the  last	element of the sent snapshot path to determine
	       the name of the new snapshot  as	 described  in	the  paragraph
	       above.

	   -F

	       Forces  a  rollback of the file system to the most recent snap‐
	       shot before performing the receive operation. If	 receiving  an
	       incremental  replication	 stream (for example, one generated by
	       zfs send -R -[iI]), destroy snapshots and file systems that  do
	       not exist on the sending side.

	   -n

	       Do  not actually receive the stream. This can be useful in con‐
	       junction with the -v option to  verify  the  name  the  receive
	       operation would use.

	   -o property=value

	       Sets  the  specified  property  as if the command zfs set prop‐
	       erty=value is invoked at the same time the received dataset  is
	       created	from  the  non-incremental send stream or updated from
	       the incremental send stream. Any editable ZFS property can also
	       be  set	at  receive  time.  Set-once  properties  bound to the
	       received data, such as normalization and casesensitivity,  can‐
	       not  be	set  at	 receive time even when the datasets are newly
	       created by zfs receive. Multiple -o options can	be  specified.
	       An  error results if the same property is specified in multiple
	       -o or -x options.

	   -u

	       File system that is associated with the received stream is  not
	       mounted.

	   -v

	       Prints  verbose	information  about  the	 stream	 and  the time
	       required to perform the receive operation.

	   -x property

	       Ensures that the effective  value  of  the  specified  property
	       after  the  receive is unaffected by the value of that property
	       in the send stream (if  any),  as  if  the  property  had  been
	       excluded from the send stream. If the specified property is not
	       present in the send stream, this	 option	 does  nothing.	 If  a
	       received	 property  needs to be overridden, the effective value
	       can be set or inherited, depending on the property. In the case
	       of  an incremental update, -x leaves any existing local setting
	       or explicit inheritance unchanged (since the received  property
	       is  already  overridden).  All -o restrictions apply equally to
	       -x.

       zfs allow filesystem | volume

	   Delegates ZFS administration permissions  for  the  specified  file
	   system  to  non-privileged  users. See the other forms of zfs allow
	   for more information.

       zfs allow [-ldug] everyone|user|group[,...] perm|@setname[,...]
       filesystem| volume
       zfs allow [-ld] -e perm|@setname[,...] filesystem | volume

	   Delegates  ZFS  administration  permission  for the file systems to
	   non-privileged users.

	   [-ug] everyone|user|group[,...]

	       Specifies to whom the permissions are delegated. Multiple enti‐
	       ties  can be specified as a comma-separated list. If neither of
	       the -ug options are specified, then the argument is interpreted
	       preferentially  as  the	keyword everyone, then as a user name,
	       and lastly as a group name. To specify a user  or  group	 named
	       "everyone",  use	 the -u or -g options. To specify a group with
	       the same name as a user, use the -g options.

	   [-e] perm|@setname[,...]

	       Specifies that the permissions be delegated to everyone. Multi‐
	       ple  permissions	 may  be  specified as a comma-separated list.
	       Permission names are the same as ZFS  subcommand	 and  property
	       names.  See  the property list below. Property set names, which
	       begin with an at sign (@) , may be specified. See the  -s  form
	       below for details.

	   [-ld] filesystem|volume

	       Specifies  where	 the  permissions are delegated. If neither of
	       the -ld options are specified, or both are,  then  the  permis‐
	       sions are allowed for the file system or volume, and all of its
	       descendents. If only the -l option is  used,  then  is  allowed
	       "locally"  only	for  the specified file system. If only the -d
	       option is used, then is allowed only for	 the  descendent  file
	       systems.

       Permissions are generally the ability to use a ZFS subcommand or change
       a ZFS property. The following permissions are available:

	 # zfs help permissions
	 The following delegated permissions are supported:

	 NAME		  TYPE		 NOTES
	 allow		  subcommand	 Must also have the permission that is
					 being allowed
	 clone		  subcommand	 Must also have the 'create' ability and
					 'mount'
					 ability in the origin file system
	 create		  subcommand	 Must also have the 'mount' ability
	 destroy	  subcommand	 Must also have the 'mount' ability
	 diff		  subcommand	 Allows lookup of paths within a dataset,
					 given an object number. Ordinary users
					 need this
					 in order to use zfs diff
	 hold		  subcommand	 Allows adding a user hold to a snapshot
	 mount		  subcommand	 Allows mount/umount of ZFS datasets
	 promote	  subcommand	 Must also have the 'mount'
					 and 'promote' ability in the origin file system
	 receive	  subcommand	 Must also have the 'mount' and 'create'
					 ability
	 release	  subcommand	 Allows releasing a user hold which
					 might destroy the snapshot
	 rename		  subcommand	 Must also have the 'mount' and 'create'
					 ability in the new parent
	 rollback	  subcommand	 Allows rolling back datasets to
					 previously-taken snapshots
	 send		  subcommand	 Allows sending of snapshots
	 share		  subcommand	 Allows sharing file systems over NFS or
					 SMB protocols
	 snapshot	  subcommand	 Allows taking of snapshots
	 groupquota	  other		 Allows accessing any groupquota@...
					 property
	 groupused	  other		 Allows reading any groupused@... property
	 userprop	  other		 Allows changing any user property
	 userquota	  other		 Allows accessing any userquota@...
					 property
	 userused	  other		 Allows reading any userused@... property

	 The following properties can have delegated permissions applied:
	 aclinherit	  aclmode	   atime	    canmount
	 casesensitivity  checksum	   compression	    copies
	 devices	  exec		   logbias	    mountpoint
	 nbmand		  normalization	   primarycache	    quota
	 readonly	  recordsize	   refquota	    refreservation
	 reservation	  rstchown	   secondarycache   setuid
	 shareiscsi	  sharenfs	   sharesmb	    snapdir
	 sync		  utf8only	   version	    volblocksize
	 volsize	  vscan		   xattr	    zoned

       zfs allow -c perm|@setname[,...] filesystem|volume

	   Sets	 create	 time  permissions.  These  permissions	 are   granted
	   (locally)  to the creator of any newly-created descendent file sys‐
	   tem.

       zfs allow -s @setname perm|@setname[,...] filesystem|volume

	   Defines or adds permissions to a permission set.  The  set  can  be
	   used	 by other zfs allow commands for the specified file system and
	   its descendents. Sets are evaluated dynamically, so	changes	 to  a
	   set are immediately reflected. Permission sets follow the same nam‐
	   ing restrictions as ZFS file systems, but the name must begin  with
	   an at (@) sign , and can be no more than 64 characters long.

       zfs unallow [-rldug] everyone|user|group[,...] [perm|@setname[, ...]]
       filesystem|volume
       zfs unallow [-rld] -e [perm|@setname [,...]] filesystem|volume
       zfs unallow [-r] -c [perm|@setname[,...]]
       filesystem|volume

	   Removes permissions that were granted with the zfs  allow  command.
	   No  permissions are explicitly denied, so other permissions granted
	   are still in effect. For example, if the permission is  granted  by
	   an  ancestor. If no permissions are specified, then all permissions
	   for the specified user, group, or everyone are removed.  Specifying
	   everyone (or using the -e option) only removes the permissions that
	   were granted to everyone, not all permissions for  every  user  and
	   group.  See	the zfs allow command for a description of the -ldugec
	   options.

	   -r

	       Recursively remove the permissions from this  file  system  and
	       all descendents.

       zfs unallow [-r] -s @setname [perm|@setname[,...]]
       filesystem|volume

	   Removes  permissions	 from  a permission set. If no permissions are
	   specified, then all permissions are removed, thus removing the  set
	   entirely.

       zfs hold [-r] tag snapshot...

	   Adds a single reference, named with the tag argument, to the speci‐
	   fied snapshot or snapshots. Each snapshot has its  own  tag	names‐
	   pace, and tags must be unique within that space.

	   If  a  hold exists on a snapshot, attempts to destroy that snapshot
	   by using the zfs destroy command return EBUSY.

	   -r

	       Specifies that a hold with the given tag is applied recursively
	       to the snapshots of all descendent file systems.

       zfs holds [-r] snapshot...

	   Lists  all existing user references for the given snapshot or snap‐
	   shots.

	   -r

	       Lists the holds that are set on the named descendent snapshots,
	       in addition to listing the holds on the named snapshot.

       zfs release [-r] tag snapshot...

	   Removes  a  single reference, named with the tag argument, from the
	   specified snapshot or snapshots. The tag  must  already  exist  for
	   each snapshot.

	   If  a  hold exists on a snapshot, attempts to destroy that snapshot
	   by using the zfs destroy command return EBUSY.

	   -r

	       Recursively releases a hold with the given tag on the snapshots
	       of all descendent file systems.

       zfs diff [-FHte] [-o field] ... snapshot	 snapshot | filesystem
       zfs diff -E[-FHt] -o field ...  snapshot | filesystem

	   Gives  a  high-level description of the differences between a snap‐
	   shot and a descendent dataset. The descendent can be either a snap‐
	   shot of the dataset or the current dataset.

	   If  a  single  snapshot is specified, then differences between that
	   snapshot and the current dataset are given.

	   For each file that has undergone  a	change	between	 the  original
	   snapshot  and the descendent, the type of change is described along
	   with the name of the file. In the case of a rename,	both  the  old
	   and	new  names are shown. Whitespace characters, backslash charac‐
	   ters, and other non-printable or non-7-bit ASCII  characters	 found
	   in  file  names  are displayed as a backslash character followed by
	   the three-digit octal representation of the byte value.

	   If the -t option is specified, the first column of output from  the
	   command is the file's st_ctim value. For deleted files, this is the
	   final st_ctim in the earlier snapshot.

	   The	type  of  change  follows  any	timestamp  displayed,  and  is
	   described with a single character:

	   +	Indicates the file was added in the later dataset.

	   -	Indicates the file was removed in the later dataset.

	   M	Indicates the file was modified in the later dataset.

	   R	Indicates the file was renamed in the later dataset.

	   If  the -F option is specified, the next column of output is a sin‐
	   gle character describing the type of the file. The mappings are:

	   F	regular file

	   /	directory

	   B	block device

	   >	door

	   |	FIFO

	   @	symbolic link

	   P	event portal

	   =	socket

	   If the modification involved a change in the link count of  a  non-
	   directory file, the change is expressed as a delta within parenthe‐
	   ses on the modification line. If the file was renamed, the old name
	   is separated from the new with the string "->".

	   If  the  -H option is selected, easier-to-parse output is produced.
	   Fields are separated by a single tab, and no arrow string  (->)  is
	   placed between the old and new names of a rename. No guarantees are
	   made on the spacing between fields of non -H output.

	   If the -e option is selected, then  all  files  added  or  modified
	   between  the	 two snapshots are enumerated and no deleted files are
	   displayed. The change type always reports as +  regardless  of  the
	   type of modification.

	   If the -E option is selected, then differences are given as if from
	   an empty snapshot to the specified snapshot or dataset.

	   If the -o field option is selected, then only selected  fields  are
	   displayed.  Each  line starts with the standard fields requested by
	   the -F and -t options, followed by the fields requested in  succes‐
	   sive -o options. As with the -H option, all fields are separated by
	   a single tab. The allowable field names include:

	   object	  The number printed by ls -i for the file

	   parent	  The number printed by ls -i for the file

	   size		  The file size as displayed by ls -s

	   links	  The number of links to the file

	   linkschange	  The change in the number of links to the file

	   name		  The name of the file

	   oldname	  The name  of	the  file  before  the	rename,	 or  —
			  (hyphen) if the file was not renamed

	   user		  The owner name of the file as displayed by ls

	   group	  The group name of the file as displayed by ls

	   ctime	  The timestamp when the file's metadata was last mod‐
			  ified

	   mtime	  The timestamp when the file was last modified

	   atime	  The timestamp when a file was last accessed

	   crtime	  The timestamp when a file was created

	   Unless they already have the {PRIV_SYS_CONFIG} or  {PRIV_SYS_MOUNT}
	   privilege, users must be granted the diff permission with zfs allow
	   to use this subcommand.

EXAMPLES
       Example 1 Creating a ZFS File System Hierarchy

       The following commands create a file system named pool/home and a  file
       system named pool/home/bob. The mount point /export/home is set for the
       parent file system, and is automatically inherited by  the  child  file
       system.

	 # zfs create pool/home
	 # zfs set mountpoint=/export/home pool/home
	 # zfs create pool/home/bob

       Example 2 Creating a ZFS Snapshot

       The following command creates a snapshot named yesterday. This snapshot
       is mounted on demand in the .zfs/snapshot directory at the root of  the
       pool/home/bob file system.

	 # zfs snapshot pool/home/bob@yesterday

       Example 3 Creating and Destroying Multiple Snapshots

       The  following  command	creates snapshots named yesterday of pool/home
       and all of its descendent file systems. Each  snapshot  is  mounted  on
       demand  in  the .zfs/snapshot directory at the root of its file system.
       The second command destroys the newly created snapshots.

	 # zfs snapshot -r pool/home@yesterday
	 # zfs destroy -r pool/home@yesterday

       Example 4 Disabling and Enabling File System Compression

       The following command disables the compression property	for  all  file
       systems	under  pool/home. The next command explicitly enables compres‐
       sion for pool/home/anne.

	 # zfs set compression=off pool/home
	 # zfs set compression=on pool/home/anne

       Example 5 Listing ZFS Datasets

       The following command lists all active file systems and volumes in  the
       system.	Snapshots  are	displayed if the listsnaps property is on. The
       default is on. See zpool(1M) for more information on pool properties.

	 # zfs list
	    NAME		      USED  AVAIL  REFER  MOUNTPOINT
	    pool		      450K   457G    18K  /pool
	    pool/home		      315K   457G    21K  /export/home
	    pool/home/anne	       18K   457G    18K  /export/home/anne
	    pool/home/bob	      276K   457G   276K  /export/home/bob

       Example 6 Setting a Quota on a ZFS File System

       The following command sets a quota of 30 GB for pool/home/bob.

	 # zfs set quota=30G pool/home/bob

       Example 7 Listing ZFS Properties

       The following command lists all properties for pool/home/bob.

	 # zfs get all pool/home/bob
	 NAME		PROPERTY	      VALUE		     SOURCE
	 pool/home/bob	type		      filesystem	     -
	 pool/home/bob	creation	      Wed Jun  6 15:16 2012  -
	 pool/home/bob	used		      31K		     -
	 pool/home/bob	available	      30.0G		     -
	 pool/home/bob	referenced	      31K		     -
	 pool/home/bob	compressratio	      1.00x		     -
	 pool/home/bob	mounted		      yes		     -
	 pool/home/bob	quota		      30G		     local
	 pool/home/bob	reservation	      none		     default
	 pool/home/bob	recordsize	      128K		     default
	 pool/home/bob	mountpoint	      /pool/home/bob	     default
	 pool/home/bob	sharenfs	      off		     default
	 pool/home/bob	checksum	      on		     default
	 pool/home/bob	compression	      on		     local
	 pool/home/bob	atime		      on		     default
	 pool/home/bob	devices		      on		     default
	 pool/home/bob	exec		      on		     default
	 pool/home/bob	setuid		      on		     default
	 pool/home/bob	readonly	      off		     default
	 pool/home/bob	zoned		      off		     default
	 pool/home/bob	snapdir		      hidden		     default
	 pool/home/bob	aclmode		      discard		     default
	 pool/home/bob	aclinherit	      restricted	     default
	 pool/home/bob	canmount	      on		     default
	 pool/home/bob	shareiscsi	      off		     default
	 pool/home/bob	xattr		      on		     default
	 pool/home/bob	copies		      1			     default
	 pool/home/bob	version		      5			     -
	 pool/home/bob	utf8only	      off		     -
	 pool/home/bob	normalization	      none		     -
	 pool/home/bob	casesensitivity	      mixed		     -
	 pool/home/bob	vscan		      off		     default
	 pool/home/bob	nbmand		      off		     default
	 pool/home/bob	sharesmb	      off		     default
	 pool/home/bob	refquota	      none		     default
	 pool/home/bob	refreservation	      none		     default
	 pool/home/bob	primarycache	      all		     default
	 pool/home/bob	secondarycache	      all		     default
	 pool/home/bob	usedbysnapshots	      0			     -
	 pool/home/bob	usedbydataset	      31K		     -
	 pool/home/bob	usedbychildren	      0			     -
	 pool/home/bob	usedbyrefreservation  0			     -
	 pool/home/bob	logbias		      latency		     default
	 pool/home/bob	sync		      standard		     default
	 pool/home/bob	rekeydate	      -			     default
	 pool/home/bob	rstchown	      on		     default

       The following command gets a single property value.

	 # zfs get -H -o value compression pool/home/bob
	 on

       The following command lists all	properties  with  local	 settings  for
       pool/home/bob.

	 # zfs get -r -s local -o name,property,value all pool/home/bob
	 NAME		PROPERTY	      VALUE
	 pool/home/bob	quota		      30G
	 pool/home/bob	compression	      on

       Example 8 Rolling Back a ZFS File System

       The  following  command	reverts	 the contents of pool/home/anne to the
       snapshot named yesterday, deleting all intermediate snapshots.

	 # zfs rollback -r pool/home/anne@yesterday

       Example 9 Creating a ZFS Clone

       The following command creates a writable file system whose initial con‐
       tents are the same as pool/home/bob@yesterday.

	 # zfs clone pool/home/bob@yesterday pool/clone

       Example 10 Promoting a ZFS Clone

       The  following  commands	 illustrate  how to test out changes to a file
       system, and then replace the original file system with the changed one,
       using clones, clone promotion, and renaming:

	 # zfs create pool/project/production
	   populate /pool/project/production with data
	 # zfs snapshot pool/project/production@today
	 # zfs clone pool/project/production@today pool/project/beta
	 make changes to /pool/project/beta and test them
	 # zfs promote pool/project/beta
	 # zfs rename pool/project/production pool/project/legacy
	 # zfs rename pool/project/beta pool/project/production
	 once the legacy version is no longer needed, it can be destroyed
	 # zfs destroy pool/project/legacy

       Example 11 Inheriting ZFS Properties

       The  following  command	causes	pool/home/bob  and  pool/home/anne  to
       inherit the checksum property from their parent.

	 # zfs inherit checksum pool/home/bob pool/home/anne

       Example 12 Remotely Replicating ZFS Data

       The following commands send a  full  stream  and	 then  an  incremental
       stream  to a remote machine, restoring them into poolB/received/fs@aand
       poolB/received/fs@b, respectively. poolB must contain the  file	system
       poolB/received, and must not initially contain poolB/received/fs.

	 # zfs send pool/fs@a | \
	    ssh host zfs receive poolB/received/fs@a
	 # zfs send -i a pool/fs@b | ssh host \
	    zfs receive poolB/received/fs

       Example 13 Using the zfs receive -d Option

       The  following  command	sends a full stream of poolA/fsA/fsB@snap to a
       remote machine,	receiving  it  into  poolB/received/fsA/fsB@snap.  The
       fsA/fsB@snap portion of the received snapshot's name is determined from
       the name of the sent snapshot.  poolB  must  contain  the  file	system
       poolB/received.	If poolB/received/fsA does not exist, it is created as
       an empty file system.

	 # zfs send poolA/fsA/fsB@snap | \
	    ssh host zfs receive -d poolB/received

       Example 14 Setting User Properties

       The following  example  sets  the  user-defined	com.example:department
       property for a dataset.

	 # zfs set com.example:department=12345 tank/accounting

       Example 15 Performing a Rolling Snapshot

       The following example shows how to maintain a history of snapshots with
       a consistent naming scheme. To keep a week's worth  of  snapshots,  the
       user destroys the oldest snapshot, renames the remaining snapshots, and
       then creates a new snapshot, as follows:

	 # zfs destroy -r pool/users@7daysago
	 # zfs rename -r pool/users@6daysago @7daysago
	 # zfs rename -r pool/users@5daysago @6daysago
	 # zfs rename -r pool/users@4daysago @5daysago
	 # zfs rename -r pool/users@3daysago @4daysago
	 # zfs rename -r pool/users@2daysago @3daysago
	 # zfs rename -r pool/users@yesterday @2daysago
	 # zfs rename -r pool/users@today @yesterday
	 # zfs snapshot -r pool/users@today

       Example 16 Setting sharenfs Property Options on a ZFS File System

       The following example shows how to share	 a  file  system  with	nosuid
       access.	In this case, single quotes are not needed for the share prop‐
       erty value because a single share option is included.

	 # zfs set sharenfs=nosuid tank/shares

       The following commands show how to set  sharenfs	 property  options  to
       enable  rw  access  for a set of IP addresses and to enable root access
       for system neo on the tank/home	file  system.  In  this	 case,	single
       quotes are required for multiple options.

	 # zfs set sharenfs='rw=@123.123.0.0/16,root=neo' tank/home

       If you are using DNS for host name resolution, specify the fully quali‐
       fied hostname.

       Example 17 Delegating ZFS Administration Permissions on a ZFS Dataset

       The following example shows how to set permissions so  that  user  anne
       can  create,  destroy, mount, and take snapshots on pool/home/anne. The
       permissions on pool/home/anne are also displayed.

	 # zfs allow anne create,destroy,mount,snapshot pool/home/anne
	 # zfs allow pool/home/anne
	 ---- Permissions on pool/home/anne -----------------------------------
	 Local+Descendent permissions:
		   user anne create,destroy,mount,snapshot

       Because the pool/home/anne mount point permission  is  set  to  755  by
       default,	 user  anne  will  be  unable  to  mount  file	systems	 under
       pool/home/anne. Set an ACL similar to the following syntax  to  provide
       mount point access:

	 # chmod A+user:anne:add_subdirectory:allow /pool/home/anne

       Example 18 Delegating Create Time Permissions on a ZFS Dataset

       The  following  example shows how to grant anyone in the group staff to
       create file systems in pool/home. This syntax also allows staff members
       to  destroy  their own file systems, but not destroy anyone else's file
       system. The permissions on pool/home are also displayed.

	 # zfs allow staff create,mount pool/home
	 # zfs allow -c destroy pool/home
	 # zfs allow pool/home
	 ---- Permissions on pool/home ----------------------------------------
	 Create time permissions:
		 destroy
	 Local+Descendent permissions:
		 group staff create,mount

       Example 19 Defining and Granting a Permission Set on a ZFS Dataset

       The following example shows how to define and grant a permission set on
       the  pool/home  file system. The permissions on pool/home are also dis‐
       played.

	 # zfs allow -s @pset create,destroy,snapshot,mount pool/home
	 # zfs allow staff @pset pool/home
	 # zfs allow pool/home
	 ---- Permissions on pool/home ----------------------------------------
	 Permission sets:
		 @pset create,destroy,mount,snapshot
	 Create time permissions:
		 destroy
	 Local+Descendent permissions:
		 group staff @pset,create,mount

       Example 20 Delegating Property Permissions on a ZFS Dataset

       The following example shows how to grant the ability to set quotas  and
       reservations   on  the  tank/users  file	 system.  The  permissions  on
       tank/users are also displayed.

	 # zfs allow mark quota,reservation tank/users
	 # zfs allow tank/users
	 ---- Permissions on tank/users ---------------------------------------
	 Local+Descendent permissions:
		 user mark quota,reservation

	 mark% zfs set quota=10G tank/users/tim
	 mark% zfs get quota tank/users/tim
	 NAME		 PROPERTY  VALUE  SOURCE
	 tank/users/tim	 quota	   10G	  local

       Example 21 Removing ZFS Delegated Permissions on a ZFS Dataset

       The following example shows how to remove the snapshot permission  from
       the @pset permission set for the staff group on the pool/home file sys‐
       tem. The permissions on pool/home are also displayed.

	 # zfs unallow -s @pset snapshot pool/home
	 # zfs allow pool/home
	 ---- Permissions on pool/home ----------------------------------------
	 Permission sets:
		 @pset create,destroy,mount
	 Create time permissions:
		 destroy
	 Local+Descendent permissions:
		 group staff @pset,create,mount

       Example 22 Displaying ZFS Snapshot Differences

       The following command shows the output from a zfs diff command with the
       -F and -t options.

	 # zfs diff -Ft myfiles@snap1
	 1269962501.206726811	M   /	/myfiles/
	 1269962444.207369955	M   F	/myfiles/link_to_me	 (+1)
	 1269962499.207519034	R	/myfiles/rename_me -> /myfiles/renamed
	 1269962431.813566720	-   F	/myfiles/delete_me
	 1269962518.666905544	+   F	/myfiles/new_file
	 1269962501.393099817	+   |	/myfiles/new_pipe

EXIT STATUS
       The following exit values are returned:

       0

	   Successful completion.

       1

	   An error occurred.

       2

	   Invalid command line options were specified.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │system/file-system/zfs	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Committed			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       chown(1),   pktool(1),	ssh(1),	  mount(1M),  share(1M),  unshare(1M),
       zonecfg(1M),  zpool(1M),	  chmod(2),   chown(2),	  stat(2),   write(2),
       fsync(3C), dfstab(4), attributes(5)

       See  the gzip(1) man page, which is not part of the SunOS man page col‐
       lection.

       For information about using the ZFS web-based management tool and other
       ZFS features, see the Solaris ZFS Administration Guide.

NOTES
       A  file	described  as  modified by the diff subcommand might have been
       modified in multiple ways. Any action  that  causes  a  change  in  the
       st_ctim (see stat(2)) is a basis for reporting a modification.

SunOS 5.10			  13 Jun 2012			       zfs(1M)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net