Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
zfs(1M)			System Administration Commands		       zfs(1M)

NAME
       zfs - configures	ZFS file systems

SYNOPSIS
       zfs [-?]

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

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

       zfs destroy [-rRf] filesystem|volume|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	[-rH] [-o property[,...]] [-t type[,...]]
	    [-s	property] ... [-S property] ...	[filesystem|volume|snapshot] ...

       zfs set property=value filesystem|volume|snapshot ...

       zfs get [-rHp] [-o field[,...]] [-s source[,...]] "all" | property[,...]
	     filesystem|volume|snapshot	...

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

       zfs upgrade [-v]

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

       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	[-vR] [-[iI] snapshot] snapshot

       zfs receive [-vnF] filesystem|volume|snapshot

       zfs receive [-vnF] -d filesystem

       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

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"	that 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.  Volumes  cannot  be
	   used	in a non-global	zone.

       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 ac-
       tive 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"	direc-
       tory in the root	 of  the  file	system.	 Snapshots  are	 automatically
       mounted	on demand and may be unmounted at regular intervals. The visi-
       bility of the ".zfs" directory can be controlled	by the "snapdir" prop-
       erty.

   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 be-
       come 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 au-
       tomatically  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
       editing /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 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 ad-
       ministrator is responsible for mounting and unmounting the file system.

   Zones
       A ZFS file system can be	added to a non-global zone by using  zonecfg's
       "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 zonecfg's
       "add dataset" subcommand. You cannot delegate a dataset to one zone and
       the  children of	the same dataset to another zone. The zone administra-
       tor can change properties of the	dataset	or any of its  children.  How-
       ever, the "quota" property is controlled	by the global administrator.

       A  ZFS  volume  can  be added as	a device to a non-global zone by using
       zonecfg's "add device" subcommand. However, its physical	properties can
       only be modified	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  cannot  be  mounted  in  the
       global  zone,  since the	zone administrator might have to set the mount
       point to	an unacceptable	value.

       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 de-
       fined properties. Native	properties either export  internal  statistics
       or  control ZFS behavior. In addition, native properties	are either ed-
       itable 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  properties,  see
       the "User Properties" section.

       Every  dataset has a set	of properties that export statistics about the
       dataset as well as control various behavior. Properties	are  inherited
       from  the  parent  unless overridden by the child. Some properties only
       apply 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",  etc,	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	cannot be set, nor are they 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.

       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 the  reservations
	   of any descendent datasets. The amount of space that	a dataset con-
	   sumes 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 ac-
	   counted for within a	few seconds. Committing	a change to a disk us-
	   ing	fsync(3c)  or  O_SYNC  does not	necessarily guarantee that the
	   space usage information is updated immediately.

       usedby*

	   The usedby* snapshots decompose the "used" properties into the var-
	   ious	 reasons  that space is	used. Specifically, used = usedbychil-
	   dren	+ 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  re-
	   freservation	 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.

       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

       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
	   Kbytes. Any power of	2 from 512 bytes to 128	Kbytes 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.

       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 "dis-
	   card" 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"	inher-
	   its 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  the owner@, group@, and everyone@
	   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.

       aclmode=discard | groupmask | passthrough

	   Controls how	an ACL is modified during chmod(2). A file system with
	   an  "aclmode" property of "discard" deletes all ACL entries that do
	   not represent the mode  of  the  file.  An  "aclmode"  property  of
	   "groupmask"	(the  default)	reduces	user or	group permissions. The
	   permissions are reduced, such 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 per-
	   mission  bits.  A  file  system  with  an  "aclmode"	 property   of
	   "passthrough"  indicates  that no changes are made to the ACL other
	   than	generating the necessary ACL entries to	represent the new mode
	   of the file or directory.

       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  inherited.  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 charac-
	   teristics.

	   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, fletcher2, but this may change in future	releases). The
	   value "off" disables	integrity checking  on	user  data.  Disabling
	   checksums is	NOT a recommended practice.

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

	   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".

       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"
	   property 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=" 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".

       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.	Other-
	   wise, they are automatically	remounted in the new location  if  the
	   property was	previously "legacy" or "none", or if they were mounted
	   before the property was changed. In addition, any shared file  sys-
	   tems	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	CIFS  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 meta-
	   data	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 data-
	   base	can result in significant performance gains. Use of this prop-
	   erty	 for general purpose file systems is strongly discouraged, and
	   may adversely affect	performance.

	   The size specified must be a	power of two greater than or equal  to
	   512 and less	than or	equal to 128 Kbytes.

	   Changing  the  file	system's recordsize only affects files created
	   afterward; existing files 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 en-
	   forces 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 amount of space used is below this	value,
	   the dataset is treated as if	it were	taking up the amount of	 space
	   specified  by refreservation. The refreservation reservation	is ac-
	   counted for in the parent datasets' space used, and counts  against
	   the parent datasets'	quotas and reservations.

	   If  refreservation  is  set,	a snapshot is only allowed if there is
	   enough free pool space outside of this reservation  to  accommodate
	   the current number of "referenced" bytes in the dataset.

	   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".

       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 metadata	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".

       shareiscsi=on | off

	   Like	 the "sharenfs"	property, "shareiscsi" indicates whether a ZFS
	   volume is exported as an iSCSI target. The  acceptable  values  for
	   this	 property  are "on", "off", and	"type=disk". The default value
	   is "off". In	the future, other target types might be	supported. For
	   example, "tape".

	   You might want to set "shareiscsi=on" for a file system so that all
	   ZFS volumes within the file system are shared by  default.  Setting
	   this	property on a file system has no direct	effect,	however.

       sharesmb=on | off | opts

	   Controls  whether  the  file	 system	is shared by using the Solaris
	   CIFS	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 sharemgr(1M). Otherwise, the file system is automati-
	   cally  shared  and unshared with the	zfs share and zfs unshare com-
	   mands. If the property is set to on,	the  sharemgr(1M)  command  is
	   invoked with	no options. Otherwise, the sharemgr(1M)	command	is in-
	   voked with options equivalent to the	contents of this property.

	   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  re-
	   source  name	of john. If a child dataset of data/home/john/backups,
	   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.

       sharenfs=on | off | opts

	   Controls whether the	file system is shared via NFS,	and  what  op-
	   tions are used. A file system with a"sharenfs" property of "off" is
	   managed through traditional tools such as  share(1M),  unshare(1M),
	   and	dfstab(4).  Otherwise, the file	system is automatically	shared
	   and unshared	with the "zfs share" and "zfs  unshare"	 commands.  If
	   the	property is set	to "on", the share(1M) command is invoked with
	   no options. Otherwise, the share(1M)	command	is  invoked  with  op-
	   tions equivalent to the contents of this property.

	   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".

       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 "zfs upgrade".

       volsize=size

	   For	volumes, specifies the logical size of the volume. By default,
	   creating a volume establishes a  reservation	 of  equal  size.  For
	   storage  pools  with	a version number of 9 or higher, a refreserva-
	   tion	is set instead.	Any changes to volsize	are  reflected	in  an
	   equivalent  change to the reservation (or refreservation). The vol-
	   size	can only be set	to a multiple of volblocksize, and  cannot  be
	   zero.

	   The	reservation is kept equal to the volume's logical size to pre-
	   vent	unexpected behavior for	consumers.  Without  the  reservation,
	   the	volume could run out of	space, resulting in undefined behavior
	   or data corruption, depending on how	the volume is used. These  ef-
	   fects can also occur	when the volume	size is	changed	while it is in
	   use (particularly when shrinking the	size). Extreme care should  be
	   used	when adjusting the volume size.

	   Though not recommended, a "sparse volume" (also known as "thin pro-
	   visioning") can be created by specifying the	-s option to the  "zfs
	   create -V" command, or by changing the reservation after the	volume
	   has been created. A "sparse volume" is a volume where the  reserva-
	   tion	is less	then the volume	size. Consequently, writes to a	sparse
	   volume 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 sys-
       tem 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
	   "casesensitivity"  property is "sensitive." 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 CIFS server product.	For  more  information
	   about the "mixed" value behavior, see the ZFS Administration	Guide.

       normalization =none | formD | formKCf

	   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" property is automatically	set to "on." The default value
	   of the "normalization" property is "none." This property cannot  be
	   changed after the file system is created.

       utf8only	=on | off

	   Indicates whether the file system should reject file	names that in-
	   clude 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
	   cannot be changed after the file system is created.

       The "casesensitivity," "normalization," and "utf8only"  properties  are
       also  new  permissions  that can	be assigned to non-privileged users by
       using the ZFS delegated administration feature.

   Temporary Mount Point Properties
       When a file system is mounted,  either  through	mount(1M)  for	legacy
       mounts  or  the	"zfs mount" command for	normal file systems, 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

       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.	If the
       properties are changed while the	dataset	is mounted,  the  new  setting
       overrides any temporary settings.

   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	 "mod-
       ule: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.  Property
       names  beginning	 with "com.sun." are reserved for use by Sun Microsys-
       tems.

       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", etc.) can be used to  ma-
       nipulate	 both  native properties and user properties. Use the "zfs in-
       herit" command to clear a user property . If the	property  is  not  de-
       fined  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. By default, the swap area	size is	based on 1/2 the  size
       of  physical memory up to 2 Gbytes. 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 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 "zfs set property=value" was
	       invoked at the same time	the dataset was	created. Any  editable
	       ZFS  property can also be set at	creation time. Multiple	-o op-
	       tions 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 en-
	   sure	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 "zfs set property=value"  was
	       invoked	at the same time the dataset was created. Any editable
	       ZFS property can	also be	set at creation	time. Multiple -o  op-
	       tions  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|snapshot

	   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, snapshots, clones).

	   -r

	       Recursively  destroy  all children. If a	snapshot is specified,
	       destroy all snapshots with this name in	descendent  file  sys-
	       tems.

	   -R

	       Recursively  destroy all	dependents, including cloned file sys-
	       tems outside the	target hierarchy. If a snapshot	is  specified,
	       destroy	all  snapshots	with this name in descendent file sys-
	       tems.

	   -f

	       Force an	unmount	of any file systems  using  the	 "unmount  -f"
	       command.	 This  option has no effect on non-file	systems	or un-
	       mounted 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 un-
	   expected behavior for mounted file systems in use.

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

	   Creates a snapshot with the given name. 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.

	   -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 hi-
	   erarchy, 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  tar-
	       get  filesystem	or  volume  already exists, the	operation com-
	       pletes 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 snap-
	   shot	names of its own. The "rename" subcommand can be used  to  re-
	   name	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	non-existing 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	[-rH] [-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	"off") . 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 whitespace.

	   -r

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

	   -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
			  "-o	name,avail,used,usedsnap,usedds,    usedrefre-
			  serv,usedchild -t filesystem,volume".

	   -s property

	       A property to use 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
	       properties can be specified at one time using multiple -s prop-
	       erty 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 be-
			  havior of "zfs list" is preserved.

	   -S property

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

	   -t type

	       A comma-separated list of types to display, where "type"	is one
	       of "filesystem",	"snapshot" , "volume" or "all".	 For  example,
	       specifying "-t snapshot"	displays only snapshots.

       zfs set 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 in-
	   formation  on what properties can be	set and	acceptable values. Nu-
	   meric values	can be specified as exact values, or in	a  human-read-
	   able	 form  with a suffix of	"B", "K", "M", "G", "T", "P", "E", "Z"
	   (for	bytes, kilobytes, megabytes, gigabytes,	terabytes,  petabytes,
	   exabytes, or	zettabytes, respectively). Properties cannot be	set on
	   snapshots.

       zfs get [-rHp] [-o 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 are displayed by	default, though	this can be controlled
	   by using the	-o option. This	command	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 snapshot).

	   -r

	       Recursively display properties for any 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

	       A  comma-separated  list	 of  columns  to  display. "name,prop-
	       erty,value,source" is the default value.

	   -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,inher-
	       ited,temporary,none". The default value is all sources.

	   -p

	       Display numbers in parsable (exact) values.

       zfs inherit [-r]	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 de-
	   fault values, and details on	which properties can be	inherited.

	   -r

	       Recursively inherit the given property for all children.

       zfs upgrade [-v]

	   Displays a list of file systems that	are not	the most  recent  ver-
	   sion.

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

	   Upgrades  file systems to a new on-disk version. Once this is done,
	   the file systems will no longer be accessible  on  systems  running
	   older  versions  of the software. "zfs send"	streams	generated from
	   new snapshots of these file systems can not be accessed on  systems
	   running older versions of the software.

	   The	file  system  version  is independent of the pool version (see
	   zpool(1M) for information on	the "zpool upgrade" command).

	   The file system version does	not have to be upgraded	when the  pool
	   version is upgraded,	and vice versa.

	   -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 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	tempo-
	       rarily  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 available ZFS	file systems.

	   -a

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

	   filesystem

	       Share the specified filesystem according	to the "sharenfs"  and
	       "sharesmb"   properties.	 File  systems	are  shared  when  the
	       "sharenfs" or "sharesmb"	property is set.

       zfs unshare -a |	filesystem|mountpoint

	   Unshares currently shared ZFS file systems. This is	invoked	 auto-
	   matically as	part of	the shutdown process.

	   -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	[-vR] [-[iI] 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.

	   -i snapshot

	       Generate	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

	       Generate	a stream package that sends all	intermediary snapshots
	       from  the  first	 snapshot to the second	snapshot. For example,
	       "-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

	       Generate	a replication stream package, which will replicate the
	       specified  filesystem,  and  all	descendant 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 recieved, snapshots and file sys-
	       tems that do not	exist on the sending side are destroyed.

	   -v

	       Print verbose information about the stream package generated.

	   The format of the stream is evolving. No backwards compatibility is
	   guaranteed.	You  may not be	able to	receive	your streams on	future
	   versions of ZFS.

       zfs receive [-vnF] filesystem|volume|snapshot
       zfs receive [-vnF] -d 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 re-created,	which means the	zvol cannot be
	   accessed during the receive operation.

	   The name of the snapshot (and file system, if a full	stream is  re-
	   ceived)  that  this subcommand creates depends on the argument type
	   and the -d 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 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, any re-
	   quired file systems within the specified one	are created.

	   -d

	       Use the name of the sent	snapshot to determine the name of  the
	       new snapshot as described in the	paragraph above.

	   -v

	       Print  verbose  information  about  the stream and the time re-
	       quired to perform the receive operation.

	   -n

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

	   -F

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

       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." Mul-
	       tiple  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:

	 NAME	      TYPE	   NOTES
	 allow	      subcommand   Must	also have the permission
				    that is being allowed.
	 clone	      subcommand   Must	also have the 'create' ability
				    and	the 'mount' ability in the origin
				    file system.
	 create	      subcommand   Must	also have the 'mount' ability.
	 destroy      subcommand   Must	also have the 'mount' ability.
	 mount	      subcommand   Allows mount, unmount, and
				    create/remove zvol device links.
	 promote      subcommand   Must	also have the 'mount' ability and
				    'promote' ability in the origin file system.
	 receive      subcommand   Must	also have the 'mount' ability and
				    the	'create' ability.
	 rename	      subcommand   Must	also have the 'mount' ability and
				    the	'create' ability in the	new parent.
	 rollback     subcommand   Must	also have the 'mount' ability.
	 snapshot     subcommand   Must	also have the 'mount' ability.
	 share	      subcommand   Allows share	and unshare.
	 send	      subcommand

	 aclinherit	  property
	 aclmode	  property
	 atime		  property
	 canmount	  property
	 checksum	  property
	 compression	  property
	 copies		  property
	 devices	  property
	 exec		  property
	 mountpoint	  property
	 primarycache	  property
	 quota		  property
	 readonly	  property
	 recordsize	  property
	 reservation	  property
	 secondarycache	  property
	 setuid		  property
	 shareiscsi	  property
	 sharenfs	  property
	 snapdir	  property
	 version	  property
	 volsize	  property
	 xattr		  property
	 zoned		  property
	 userprop	  other	       Allows changing any user	property.

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

	   Sets	"create	time" permissions. These permissions are granted  (lo-
	   cally) to the creator of any	newly-created descendent file system.

       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.

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  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 snap-
       shot 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 Taking	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 Turning Off Compression

       The following commands turn compression off for all file	systems	 under
       "pool/home", but	explicitly turns it on 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  "off")  . 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 50	gbytes for "pool/home/bob".

	 # zfs set quota=50G 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	      Thu Jul 12 14:44 2007  -
	 pool/home/bob	used		      276K		     -
	 pool/home/bob	available	      50.0G		     -
	 pool/home/bob	referenced	      276K		     -
	 pool/home/bob	compressratio	      1.00x		     -
	 pool/home/bob	mounted		      yes		     -
	 pool/home/bob	quota		      50G		     local
	 pool/home/bob	reservation	      none		     default
	 pool/home/bob	recordsize	      128K		     default
	 pool/home/bob	mountpoint	      /export/home/bob	     inherited
								     from
								     pool/home
	 pool/home/bob	sharenfs	      off		     default
	 pool/home/bob	checksum	      on		     default
	 pool/home/bob	compression	      off		     default
	 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		      groupmask		     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		      1			     -
	 pool/home/bob	utf8only	      off		     -
	 pool/home/bob	normalization	      none		     -
	 pool/home/bob	casesensitivity	      sensitive		     -
	 pool/home/bob	vscan		      off		     default
	 pool/home/bob	nbmand		      off		     default
	 pool/home/bob	sharesmb	      off		     default
	 pool/home/bob	refquota	      10M		     local
	 pool/home/bob	refreservation	      none		     default
	 pool/home/bob	primarycache	      all		     default
	 pool/home/bob	secondarycache	      a			     default
	 pool/home/bob	usedbysnapshots	      0			     -
	 pool/home/bob	usedbydataset	      18K		     -
	 pool/home/bob	usedbychildren	      0			     -
	 pool/home/bob	usedbyrefreservation  0			     -

       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	     compression   on
	    pool/home	     checksum	   off

       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@a"
       and "poolB/received/fs@b", respectively.	"poolB"	must contain the  file
       system  "poolB/received",  and  must  not  initially contain "poolB/re-
       ceived/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 sys-
       tem "poolB/received". If	"poolB/received/fsA" does not exist, it	is  be
       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 Creating a ZFS Volume	as a iSCSI Target Device

       The following example shows how to create a ZFS volume as an iSCSI tar-
       get.

	 # zfs create -V 2g pool/volumes/vol1
	  # zfs	set shareiscsi=on pool/volumes/vol1
	  # iscsitadm list target
	  Target: pool/volumes/vol1
	  iSCSI	Name:
	  iqn.1986-03.com.sun:02:7b4b02a6-3277-eb1b-e686-a24762c52a8c
	  Connections: 0

       After the iSCSI target is created, set up the iSCSI initiator. For more
       information about the Solaris iSCSI initiator, see the Solaris Adminis-
       tration Guide: Devices and File Systems.

       Example 16 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@yesterday @2daysago
	 # zfs rename -r pool/users@today @yesterday
	 # zfs snapshot	-r pool/users@today

       Example 17 Setting sharenfs Property Options on a ZFS File System

       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.

	 # 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 18 Delegating ZFS Administration	Permissions on a ZFS Dataset

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

	 # zfs allow cindys create,destroy,mount,snapshot tank/cindys
	 # zfs allow tank/cindys
	 -------------------------------------------------------------
	 Local+Descendent permissions on (tank/cindys)
		   user	cindys create,destroy,mount,snapshot
	 -------------------------------------------------------------

       Because	the  tank/cindys  mount	 point permission is set to 755	by de-
       fault,  user  cindys  will  be  unable  to  mount  file	systems	 under
       tank/cindys.  Set  an  ACL  similar  to the following syntax to provide
       mount point access:

	 # chmod A+user:cindys:add_subdirectory:allow /tank/cindys

       Example 19 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	tank/users. This syntax	also allows staff mem-
       bers to destroy their own file systems, but not destroy	anyone	else's
       file system. The	permissions on tank/users are also displayed.

	 # zfs allow staff create,mount	tank/users
	 # zfs allow -c	destroy	tank/users
	 # zfs allow tank/users
	 -------------------------------------------------------------
	 Create	time permissions on (tank/users)
		   create,destroy
	 Local+Descendent permissions on (tank/users)
		   group staff create,mount
	 -------------------------------------------------------------

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

       The following example shows how to define and grant a permission	set on
       the tank/users file system. The permissions on tank/users are also dis-
       played.

	 # zfs allow -s	@pset create,destroy,snapshot,mount tank/users
	 # zfs allow staff @pset tank/users
	 # zfs allow tank/users
	 -------------------------------------------------------------
	 Permission sets on (tank/users)
		 @pset create,destroy,mount,snapshot
	 Create	time permissions on (tank/users)
		 create,destroy
	 Local+Descendent permissions on (tank/users)
		 group staff @pset,create,mount
	 -------------------------------------------------------------

       Example 21 Delegating Property Permissions on a ZFS Dataset

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

	 # zfs allow cindys quota,reservation users/home
	 # zfs allow users/home
	 -------------------------------------------------------------
	 Local+Descendent permissions on (users/home)
		 user cindys quota,reservation
	 -------------------------------------------------------------
	 cindys% zfs set quota=10G users/home/marks
	 cindys% zfs get quota users/home/marks
	 NAME		   PROPERTY  VALUE	       SOURCE
	 users/home/marks  quota     10G	       local

       Example 22 Removing ZFS Delegated Permissions on	a ZFS Dataset

       The  following example shows how	to remove the snapshot permission from
       the staff group on the  tank/users  file	 system.  The  permissions  on
       tank/users are also displayed.

	 # zfs unallow staff snapshot tank/users
	 # zfs allow tank/users
	 -------------------------------------------------------------
	 Permission sets on (tank/users)
		 @pset create,destroy,mount,snapshot
	 Create	time permissions on (tank/users)
		 create,destroy
	 Local+Descendent permissions on (tank/users)
		 group staff @pset,create,mount
	 -------------------------------------------------------------

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		     |SUNWzfsu			   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Committed			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       gzip(1),	  ssh(1),  mount(1M),  share(1M),  sharemgr(1M),  unshare(1M),
       zonecfg(1M), zpool(1M), chmod(2), stat(2),  fsync(3c),  dfstab(4),  at-
       tributes(5)

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

SunOS 5.11			  14 Feb 2009			       zfs(1M)

NAME | SYNOPSIS | DESCRIPTION | SUBCOMMANDS | EXAMPLES | EXIT STATUS | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=zfs&sektion=8&manpath=FreeBSD+8.1-RELEASE>

home | help