mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	 9530eb64e0
			
		
	
	
		9530eb64e0
		
	
	
	
	
		
			
			Sponsored-by: https://despairlabs.com/sponsor/ Signed-off-by: Rob Norris <robn@despairlabs.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
		
			
				
	
	
		
			840 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			840 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" SPDX-License-Identifier: CDDL-1.0
 | ||
| .\"
 | ||
| .\" CDDL HEADER START
 | ||
| .\"
 | ||
| .\" The contents of this file are subject to the terms of the
 | ||
| .\" Common Development and Distribution License (the "License").
 | ||
| .\" You may not use this file except in compliance with the License.
 | ||
| .\"
 | ||
| .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 | ||
| .\" or https://opensource.org/licenses/CDDL-1.0.
 | ||
| .\" See the License for the specific language governing permissions
 | ||
| .\" and limitations under the License.
 | ||
| .\"
 | ||
| .\" When distributing Covered Code, include this CDDL HEADER in each
 | ||
| .\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 | ||
| .\" If applicable, add the following below this CDDL HEADER, with the
 | ||
| .\" fields enclosed by brackets "[]" replaced with your own identifying
 | ||
| .\" information: Portions Copyright [yyyy] [name of copyright owner]
 | ||
| .\"
 | ||
| .\" CDDL HEADER END
 | ||
| .\"
 | ||
| .\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved.
 | ||
| .\" Copyright 2011 Joshua M. Clulow <josh@sysmgr.org>
 | ||
| .\" Copyright (c) 2011, 2019 by Delphix. All rights reserved.
 | ||
| .\" Copyright (c) 2011, Pawel Jakub Dawidek <pjd@FreeBSD.org>
 | ||
| .\" Copyright (c) 2012, Glen Barber <gjb@FreeBSD.org>
 | ||
| .\" Copyright (c) 2012, Bryan Drewery <bdrewery@FreeBSD.org>
 | ||
| .\" Copyright (c) 2013, Steven Hartland <smh@FreeBSD.org>
 | ||
| .\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
 | ||
| .\" Copyright (c) 2014, Joyent, Inc. All rights reserved.
 | ||
| .\" Copyright (c) 2014 by Adam Stevko. All rights reserved.
 | ||
| .\" Copyright (c) 2014 Integros [integros.com]
 | ||
| .\" Copyright (c) 2014, Xin LI <delphij@FreeBSD.org>
 | ||
| .\" Copyright (c) 2014-2015, The FreeBSD Foundation, All Rights Reserved.
 | ||
| .\" Copyright (c) 2016 Nexenta Systems, Inc. All Rights Reserved.
 | ||
| .\" Copyright 2019 Richard Laager. All rights reserved.
 | ||
| .\" Copyright 2018 Nexenta Systems, Inc.
 | ||
| .\" Copyright 2019 Joyent, Inc.
 | ||
| .\"
 | ||
| .Dd May 12, 2022
 | ||
| .Dt ZFS 8
 | ||
| .Os
 | ||
| .
 | ||
| .Sh NAME
 | ||
| .Nm zfs
 | ||
| .Nd configure ZFS datasets
 | ||
| .Sh SYNOPSIS
 | ||
| .Nm
 | ||
| .Fl ?V
 | ||
| .Nm
 | ||
| .Cm version
 | ||
| .Op Fl j
 | ||
| .Nm
 | ||
| .Cm subcommand
 | ||
| .Op Ar arguments
 | ||
| .
 | ||
| .Sh DESCRIPTION
 | ||
| The
 | ||
| .Nm
 | ||
| command configures ZFS datasets within a ZFS storage pool, as described in
 | ||
| .Xr zpool 8 .
 | ||
| A dataset is identified by a unique path within the ZFS namespace:
 | ||
| .Pp
 | ||
| .D1 Ar pool Ns Oo Sy / Ns Ar component Oc Ns Sy / Ns Ar component
 | ||
| .Pp
 | ||
| for example:
 | ||
| .Pp
 | ||
| .Dl rpool/var/log
 | ||
| .Pp
 | ||
| The maximum length of a dataset name is
 | ||
| .Sy ZFS_MAX_DATASET_NAME_LEN No - 1
 | ||
| ASCII characters (currently 255) satisfying
 | ||
| .Sy [A-Za-z_.:/ -] .
 | ||
| Additionally snapshots are allowed to contain a single
 | ||
| .Sy @
 | ||
| character, while bookmarks are allowed to contain a single
 | ||
| .Sy #
 | ||
| character.
 | ||
| .Sy /
 | ||
| is used as separator between components.
 | ||
| The maximum amount of nesting allowed in a path is
 | ||
| .Sy zfs_max_dataset_nesting
 | ||
| levels deep.
 | ||
| ZFS tunables
 | ||
| .Pq Sy zfs_*
 | ||
| are explained in
 | ||
| .Xr zfs 4 .
 | ||
| .Pp
 | ||
| A dataset can be one of the following:
 | ||
| .Bl -tag -offset Ds -width "file system"
 | ||
| .It Sy file system
 | ||
| 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 non-standard
 | ||
| behavior when checking file system free space.
 | ||
| .It Sy volume
 | ||
| A logical volume exported as a raw or block device.
 | ||
| This type of dataset should only be used when a block device is required.
 | ||
| File systems are typically used in most environments.
 | ||
| .It Sy snapshot
 | ||
| A read-only version of a file system or volume at a given point in time.
 | ||
| It is specified as
 | ||
| .Ar filesystem Ns @ Ns Ar name
 | ||
| or
 | ||
| .Ar volume Ns @ Ns Ar name .
 | ||
| .It Sy bookmark
 | ||
| Much like a
 | ||
| .Sy snapshot ,
 | ||
| but without the hold on on-disk data.
 | ||
| It can be used as the source of a send (but not for a receive).
 | ||
| It is specified as
 | ||
| .Ar filesystem Ns # Ns Ar name
 | ||
| or
 | ||
| .Ar volume Ns # Ns Ar name .
 | ||
| .El
 | ||
| .Pp
 | ||
| See
 | ||
| .Xr zfsconcepts 7
 | ||
| for details.
 | ||
| .
 | ||
| .Ss Properties
 | ||
| Properties are divided into two types: native properties and user-defined
 | ||
| .Pq or Qq user
 | ||
| properties.
 | ||
| Native properties either export internal 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 properties, see
 | ||
| .Xr zfsprops 7 .
 | ||
| .
 | ||
| .Ss Encryption
 | ||
| Enabling the
 | ||
| .Sy encryption
 | ||
| feature allows for the creation of encrypted filesystems and volumes.
 | ||
| ZFS will encrypt file and zvol data, file attributes, ACLs, permission bits,
 | ||
| directory listings, FUID mappings, and
 | ||
| .Sy userused Ns / Ns Sy groupused Ns / Ns Sy projectused
 | ||
| data.
 | ||
| For an overview of encryption, see
 | ||
| .Xr zfs-load-key 8 .
 | ||
| .
 | ||
| .Sh SUBCOMMANDS
 | ||
| All subcommands that modify state are logged persistently to the pool in their
 | ||
| original form.
 | ||
| .Bl -tag -width ""
 | ||
| .It Nm Fl ?
 | ||
| Displays a help message.
 | ||
| .It Xo
 | ||
| .Nm
 | ||
| .Fl V , -version
 | ||
| .Xc
 | ||
| .It Xo
 | ||
| .Nm
 | ||
| .Cm version
 | ||
| .Op Fl j
 | ||
| .Xc
 | ||
| Displays the software version of the
 | ||
| .Nm
 | ||
| userland utility and the zfs kernel module.
 | ||
| Use
 | ||
| .Fl j
 | ||
| option to output in JSON format.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Dataset Management
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-list 8
 | ||
| Lists the property information for the given datasets in tabular form.
 | ||
| .It Xr zfs-create 8
 | ||
| Creates a new ZFS file system or volume.
 | ||
| .It Xr zfs-destroy 8
 | ||
| Destroys the given dataset(s), snapshot(s), or bookmark.
 | ||
| .It Xr zfs-rename 8
 | ||
| Renames the given dataset (filesystem or snapshot).
 | ||
| .It Xr zfs-upgrade 8
 | ||
| Manage upgrading the on-disk version of filesystems.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Snapshots
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-snapshot 8
 | ||
| Creates snapshots with the given names.
 | ||
| .It Xr zfs-rollback 8
 | ||
| Roll back the given dataset to a previous snapshot.
 | ||
| .It Xr zfs-hold 8 Ns / Ns Xr zfs-release 8
 | ||
| Add or remove a hold reference to the specified snapshot or snapshots.
 | ||
| If a hold exists on a snapshot, attempts to destroy that snapshot by using the
 | ||
| .Nm zfs Cm destroy
 | ||
| command return
 | ||
| .Sy EBUSY .
 | ||
| .It Xr zfs-diff 8
 | ||
| Display the difference between a snapshot of a given filesystem and another
 | ||
| snapshot of that filesystem from a later time or the current contents of the
 | ||
| filesystem.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Clones
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-clone 8
 | ||
| Creates a clone of the given snapshot.
 | ||
| .It Xr zfs-promote 8
 | ||
| Promotes a clone file system to no longer be dependent on its
 | ||
| .Qq origin
 | ||
| snapshot.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Send & Receive
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-send 8
 | ||
| Generate a send stream, which may be of a filesystem, and may be incremental
 | ||
| from a bookmark.
 | ||
| .It Xr zfs-receive 8
 | ||
| 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
 | ||
| .Xr zfs-send 8
 | ||
| subcommand, which by default creates a full stream.
 | ||
| .It Xr zfs-bookmark 8
 | ||
| Creates a new bookmark of the given snapshot or bookmark.
 | ||
| Bookmarks mark the point in time when the snapshot was created, and can be used
 | ||
| as the incremental source for a
 | ||
| .Nm zfs Cm send
 | ||
| command.
 | ||
| .It Xr zfs-redact 8
 | ||
| Generate a new redaction bookmark.
 | ||
| This feature can be used to allow clones of a filesystem to be made available on
 | ||
| a remote system, in the case where their parent need not (or needs to not) be
 | ||
| usable.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Properties
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-get 8
 | ||
| Displays properties for the given datasets.
 | ||
| .It Xr zfs-set 8
 | ||
| Sets the property or list of properties to the given value(s) for each dataset.
 | ||
| .It Xr zfs-inherit 8
 | ||
| Clears the specified property, causing it to be inherited from an ancestor,
 | ||
| restored to default if no ancestor has the property set, or with the
 | ||
| .Fl S
 | ||
| option reverted to the received value if one exists.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Quotas
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-userspace 8 Ns / Ns Xr zfs-groupspace 8 Ns / Ns Xr zfs-projectspace 8
 | ||
| Displays space consumed by, and quotas on, each user, group, or project
 | ||
| in the specified filesystem or snapshot.
 | ||
| .It Xr zfs-project 8
 | ||
| List, set, or clear project ID and/or inherit flag on the files or directories.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Mountpoints
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-mount 8
 | ||
| Displays all ZFS file systems currently mounted, or mount ZFS filesystem
 | ||
| on a path described by its
 | ||
| .Sy mountpoint
 | ||
| property.
 | ||
| .It Xr zfs-unmount 8
 | ||
| Unmounts currently mounted ZFS file systems.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Shares
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-share 8
 | ||
| Shares available ZFS file systems.
 | ||
| .It Xr zfs-unshare 8
 | ||
| Unshares currently shared ZFS file systems.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Delegated Administration
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-allow 8
 | ||
| Delegate permissions on the specified filesystem or volume.
 | ||
| .It Xr zfs-unallow 8
 | ||
| Remove delegated permissions on the specified filesystem or volume.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Encryption
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-change-key 8
 | ||
| Add or change an encryption key on the specified dataset.
 | ||
| .It Xr zfs-load-key 8
 | ||
| Load the key for the specified encrypted dataset, enabling access.
 | ||
| .It Xr zfs-unload-key 8
 | ||
| Unload a key for the specified dataset,
 | ||
| removing the ability to access the dataset.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Channel Programs
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-program 8
 | ||
| Execute ZFS administrative operations
 | ||
| programmatically via a Lua script-language channel program.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Jails
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-jail 8
 | ||
| Attaches a filesystem to a jail.
 | ||
| .It Xr zfs-unjail 8
 | ||
| Detaches a filesystem from a jail.
 | ||
| .El
 | ||
| .
 | ||
| .Ss Waiting
 | ||
| .Bl -tag -width ""
 | ||
| .It Xr zfs-wait 8
 | ||
| Wait for background activity in a filesystem to complete.
 | ||
| .El
 | ||
| .
 | ||
| .Sh EXIT STATUS
 | ||
| The
 | ||
| .Nm
 | ||
| utility exits
 | ||
| .Sy 0
 | ||
| on success,
 | ||
| .Sy 1
 | ||
| if an error occurs, and
 | ||
| .Sy 2
 | ||
| if invalid command line options were specified.
 | ||
| .
 | ||
| .Sh EXAMPLES
 | ||
| .\" Examples 1, 4, 6, 7, 11, 14, 16 are shared with zfs-set.8.
 | ||
| .\" Examples 1, 10 are shared with zfs-create.8.
 | ||
| .\" Examples 2, 3, 10, 15 are also shared with zfs-snapshot.8.
 | ||
| .\" Examples 3, 10, 15 are shared with zfs-destroy.8.
 | ||
| .\" Examples 5 are shared with zfs-list.8.
 | ||
| .\" Examples 8 are shared with zfs-rollback.8.
 | ||
| .\" Examples 9, 10 are shared with zfs-clone.8.
 | ||
| .\" Examples 10 are also shared with zfs-promote.8.
 | ||
| .\" Examples 10, 15 also are shared with zfs-rename.8.
 | ||
| .\" Examples 12, 13 are shared with zfs-send.8.
 | ||
| .\" Examples 12, 13 are also shared with zfs-receive.8.
 | ||
| .\" Examples 17, 18, 19, 20, 21 are shared with zfs-allow.8.
 | ||
| .\" Examples 22 are shared with zfs-diff.8.
 | ||
| .\" Examples 23 are shared with zfs-bookmark.8.
 | ||
| .\" Make sure to update them omnidirectionally
 | ||
| .Ss Example 1 : No Creating a ZFS File System Hierarchy
 | ||
| The following commands create a file system named
 | ||
| .Ar pool/home
 | ||
| and a file system named
 | ||
| .Ar pool/home/bob .
 | ||
| The mount point
 | ||
| .Pa /export/home
 | ||
| is set for the parent file system, and is automatically inherited by the child
 | ||
| file system.
 | ||
| .Dl # Nm zfs Cm create Ar pool/home
 | ||
| .Dl # Nm zfs Cm set Sy mountpoint Ns = Ns Ar /export/home pool/home
 | ||
| .Dl # Nm zfs Cm create Ar pool/home/bob
 | ||
| .
 | ||
| .Ss Example 2 : No Creating a ZFS Snapshot
 | ||
| The following command creates a snapshot named
 | ||
| .Ar yesterday .
 | ||
| This snapshot is mounted on demand in the
 | ||
| .Pa .zfs/snapshot
 | ||
| directory at the root of the
 | ||
| .Ar pool/home/bob
 | ||
| file system.
 | ||
| .Dl # Nm zfs Cm snapshot Ar pool/home/bob Ns @ Ns Ar yesterday
 | ||
| .
 | ||
| .Ss Example 3 : No Creating and Destroying Multiple Snapshots
 | ||
| The following command creates snapshots named
 | ||
| .Ar yesterday No of Ar pool/home
 | ||
| and all of its descendent file systems.
 | ||
| Each snapshot is mounted on demand in the
 | ||
| .Pa .zfs/snapshot
 | ||
| directory at the root of its file system.
 | ||
| The second command destroys the newly created snapshots.
 | ||
| .Dl # Nm zfs Cm snapshot Fl r Ar pool/home Ns @ Ns Ar yesterday
 | ||
| .Dl # Nm zfs Cm destroy Fl r Ar pool/home Ns @ Ns Ar yesterday
 | ||
| .
 | ||
| .Ss Example 4 : No Disabling and Enabling File System Compression
 | ||
| The following command disables the
 | ||
| .Sy compression
 | ||
| property for all file systems under
 | ||
| .Ar pool/home .
 | ||
| The next command explicitly enables
 | ||
| .Sy compression
 | ||
| for
 | ||
| .Ar pool/home/anne .
 | ||
| .Dl # Nm zfs Cm set Sy compression Ns = Ns Sy off Ar pool/home
 | ||
| .Dl # Nm zfs Cm set Sy compression Ns = Ns Sy on Ar pool/home/anne
 | ||
| .
 | ||
| .Ss Example 5 : No Listing ZFS Datasets
 | ||
| The following command lists all active file systems and volumes in the system.
 | ||
| Snapshots are displayed if
 | ||
| .Sy listsnaps Ns = Ns Sy on .
 | ||
| The default is
 | ||
| .Sy off .
 | ||
| See
 | ||
| .Xr zpoolprops 7
 | ||
| for more information on pool properties.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm 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
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 6 : No Setting a Quota on a ZFS File System
 | ||
| The following command sets a quota of 50 Gbytes for
 | ||
| .Ar pool/home/bob :
 | ||
| .Dl # Nm zfs Cm set Sy quota Ns = Ns Ar 50G pool/home/bob
 | ||
| .
 | ||
| .Ss Example 7 : No Listing ZFS Properties
 | ||
| The following command lists all properties for
 | ||
| .Ar pool/home/bob :
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm get Sy all Ar pool/home/bob
 | ||
| NAME           PROPERTY              VALUE                  SOURCE
 | ||
| pool/home/bob  type                  filesystem             -
 | ||
| pool/home/bob  creation              Tue Jul 21 15:53 2009  -
 | ||
| pool/home/bob  used                  21K                    -
 | ||
| pool/home/bob  available             20.0G                  -
 | ||
| pool/home/bob  referenced            21K                    -
 | ||
| pool/home/bob  compressratio         1.00x                  -
 | ||
| pool/home/bob  mounted               yes                    -
 | ||
| pool/home/bob  quota                 20G                    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  acltype               off                    default
 | ||
| pool/home/bob  aclmode               discard                default
 | ||
| pool/home/bob  aclinherit            restricted             default
 | ||
| pool/home/bob  canmount              on                     default
 | ||
| pool/home/bob  xattr                 on                     default
 | ||
| pool/home/bob  copies                1                      default
 | ||
| pool/home/bob  version               4                      -
 | ||
| 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              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         21K                    -
 | ||
| pool/home/bob  usedbychildren        0                      -
 | ||
| pool/home/bob  usedbyrefreservation  0                      -
 | ||
| .Ed
 | ||
| .Pp
 | ||
| The following command gets a single property value:
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm get Fl H o Sy value compression Ar pool/home/bob
 | ||
| on
 | ||
| .Ed
 | ||
| .Pp
 | ||
| The following command lists all properties with local settings for
 | ||
| .Ar pool/home/bob :
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm get Fl r s Sy local Fl o Sy name , Ns Sy property , Ns Sy value all Ar pool/home/bob
 | ||
| NAME           PROPERTY              VALUE
 | ||
| pool/home/bob  quota                 20G
 | ||
| pool/home/bob  compression           on
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 8 : No Rolling Back a ZFS File System
 | ||
| The following command reverts the contents of
 | ||
| .Ar pool/home/anne
 | ||
| to the snapshot named
 | ||
| .Ar yesterday ,
 | ||
| deleting all intermediate snapshots:
 | ||
| .Dl # Nm zfs Cm rollback Fl r Ar pool/home/anne Ns @ Ns Ar yesterday
 | ||
| .
 | ||
| .Ss Example 9 : No Creating a ZFS Clone
 | ||
| The following command creates a writable file system whose initial contents are
 | ||
| the same as
 | ||
| .Ar pool/home/bob@yesterday .
 | ||
| .Dl # Nm zfs Cm clone Ar pool/home/bob@yesterday pool/clone
 | ||
| .
 | ||
| .Ss Example 10 : No 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:
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm create Ar pool/project/production
 | ||
|   populate /pool/project/production with data
 | ||
| .No # Nm zfs Cm snapshot Ar pool/project/production Ns @ Ns Ar today
 | ||
| .No # Nm zfs Cm clone Ar pool/project/production@today pool/project/beta
 | ||
|   make changes to /pool/project/beta and test them
 | ||
| .No # Nm zfs Cm promote Ar pool/project/beta
 | ||
| .No # Nm zfs Cm rename Ar pool/project/production pool/project/legacy
 | ||
| .No # Nm zfs Cm rename Ar pool/project/beta pool/project/production
 | ||
|   once the legacy version is no longer needed, it can be destroyed
 | ||
| .No # Nm zfs Cm destroy Ar pool/project/legacy
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 11 : No Inheriting ZFS Properties
 | ||
| The following command causes
 | ||
| .Ar pool/home/bob No and Ar pool/home/anne
 | ||
| to inherit the
 | ||
| .Sy checksum
 | ||
| property from their parent.
 | ||
| .Dl # Nm zfs Cm inherit Sy checksum Ar pool/home/bob pool/home/anne
 | ||
| .
 | ||
| .Ss Example 12 : No Remotely Replicating ZFS Data
 | ||
| The following commands send a full stream and then an incremental stream to a
 | ||
| remote machine, restoring them into
 | ||
| .Em poolB/received/fs@a
 | ||
| and
 | ||
| .Em poolB/received/fs@b ,
 | ||
| respectively.
 | ||
| .Em poolB
 | ||
| must contain the file system
 | ||
| .Em poolB/received ,
 | ||
| and must not initially contain
 | ||
| .Em poolB/received/fs .
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm send Ar pool/fs@a |
 | ||
| .No "   " Nm ssh Ar host Nm zfs Cm receive Ar poolB/received/fs Ns @ Ns Ar a
 | ||
| .No # Nm zfs Cm send Fl i Ar a pool/fs@b |
 | ||
| .No "   " Nm ssh Ar host Nm zfs Cm receive Ar poolB/received/fs
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 13 : No Using the Nm zfs Cm receive Fl d No Option
 | ||
| The following command sends a full stream of
 | ||
| .Ar poolA/fsA/fsB@snap
 | ||
| to a remote machine, receiving it into
 | ||
| .Ar poolB/received/fsA/fsB@snap .
 | ||
| The
 | ||
| .Ar fsA/fsB@snap
 | ||
| portion of the received snapshot's name is determined from the name of the sent
 | ||
| snapshot.
 | ||
| .Ar poolB
 | ||
| must contain the file system
 | ||
| .Ar poolB/received .
 | ||
| If
 | ||
| .Ar poolB/received/fsA
 | ||
| does not exist, it is created as an empty file system.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm send Ar poolA/fsA/fsB@snap |
 | ||
| .No "   " Nm ssh Ar host Nm zfs Cm receive Fl d Ar poolB/received
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 14 : No Setting User Properties
 | ||
| The following example sets the user-defined
 | ||
| .Ar com.example : Ns Ar department
 | ||
| property for a dataset:
 | ||
| .Dl # Nm zfs Cm set Ar com.example : Ns Ar department Ns = Ns Ar 12345 tank/accounting
 | ||
| .
 | ||
| .Ss Example 15 : No 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:
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm destroy Fl r Ar pool/users@7daysago
 | ||
| .No # Nm zfs Cm rename Fl r Ar pool/users@6daysago No @ Ns Ar 7daysago
 | ||
| .No # Nm zfs Cm rename Fl r Ar pool/users@5daysago No @ Ns Ar 6daysago
 | ||
| .No # Nm zfs Cm rename Fl r Ar pool/users@4daysago No @ Ns Ar 5daysago
 | ||
| .No # Nm zfs Cm rename Fl r Ar pool/users@3daysago No @ Ns Ar 4daysago
 | ||
| .No # Nm zfs Cm rename Fl r Ar pool/users@2daysago No @ Ns Ar 3daysago
 | ||
| .No # Nm zfs Cm rename Fl r Ar pool/users@yesterday No @ Ns Ar 2daysago
 | ||
| .No # Nm zfs Cm rename Fl r Ar pool/users@today No @ Ns Ar yesterday
 | ||
| .No # Nm zfs Cm snapshot Fl r Ar pool/users Ns @ Ns Ar today
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 16 : No Setting sharenfs Property Options on a ZFS File System
 | ||
| The following commands show how to set
 | ||
| .Sy sharenfs
 | ||
| property options to enable read-write
 | ||
| access for a set of IP addresses and to enable root access for system
 | ||
| .Qq neo
 | ||
| on the
 | ||
| .Ar tank/home
 | ||
| file system:
 | ||
| .Dl # Nm zfs Cm set Sy sharenfs Ns = Ns ' Ns Ar rw Ns =@123.123.0.0/16:[::1],root= Ns Ar neo Ns ' tank/home
 | ||
| .Pp
 | ||
| If you are using DNS for host name resolution,
 | ||
| specify the fully-qualified hostname.
 | ||
| .
 | ||
| .Ss Example 17 : No Delegating ZFS Administration Permissions on a ZFS Dataset
 | ||
| The following example shows how to set permissions so that user
 | ||
| .Ar cindys
 | ||
| can create, destroy, mount, and take snapshots on
 | ||
| .Ar tank/cindys .
 | ||
| The permissions on
 | ||
| .Ar tank/cindys
 | ||
| are also displayed.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm allow Sy cindys create , Ns Sy destroy , Ns Sy mount , Ns Sy snapshot Ar tank/cindys
 | ||
| .No # Nm zfs Cm allow Ar tank/cindys
 | ||
| ---- Permissions on tank/cindys --------------------------------------
 | ||
| Local+Descendent permissions:
 | ||
|         user cindys create,destroy,mount,snapshot
 | ||
| .Ed
 | ||
| .Pp
 | ||
| Because the
 | ||
| .Ar tank/cindys
 | ||
| mount point permission is set to 755 by default, user
 | ||
| .Ar cindys
 | ||
| will be unable to mount file systems under
 | ||
| .Ar tank/cindys .
 | ||
| Add an ACE similar to the following syntax to provide mount point access:
 | ||
| .Dl # Cm chmod No A+user : Ns Ar cindys Ns :add_subdirectory:allow Ar /tank/cindys
 | ||
| .
 | ||
| .Ss Example 18 : No Delegating Create Time Permissions on a ZFS Dataset
 | ||
| The following example shows how to grant anyone in the group
 | ||
| .Ar staff
 | ||
| to create file systems in
 | ||
| .Ar tank/users .
 | ||
| This syntax also allows staff members to destroy their own file systems, but not
 | ||
| destroy anyone else's file system.
 | ||
| The permissions on
 | ||
| .Ar tank/users
 | ||
| are also displayed.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm allow Ar staff Sy create , Ns Sy mount Ar tank/users
 | ||
| .No # Nm zfs Cm allow Fl c Sy destroy Ar tank/users
 | ||
| .No # Nm zfs Cm allow Ar tank/users
 | ||
| ---- Permissions on tank/users ---------------------------------------
 | ||
| Permission sets:
 | ||
|         destroy
 | ||
| Local+Descendent permissions:
 | ||
|         group staff create,mount
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 19 : No Defining and Granting a Permission Set on a ZFS Dataset
 | ||
| The following example shows how to define and grant a permission set on the
 | ||
| .Ar tank/users
 | ||
| file system.
 | ||
| The permissions on
 | ||
| .Ar tank/users
 | ||
| are also displayed.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm allow Fl s No @ Ns Ar pset Sy create , Ns Sy destroy , Ns Sy snapshot , Ns Sy mount Ar tank/users
 | ||
| .No # Nm zfs Cm allow staff No @ Ns Ar pset tank/users
 | ||
| .No # Nm zfs Cm allow Ar tank/users
 | ||
| ---- Permissions on tank/users ---------------------------------------
 | ||
| Permission sets:
 | ||
|         @pset create,destroy,mount,snapshot
 | ||
| Local+Descendent permissions:
 | ||
|         group staff @pset
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 20 : No Delegating Property Permissions on a ZFS Dataset
 | ||
| The following example shows to grant the ability to set quotas and reservations
 | ||
| on the
 | ||
| .Ar users/home
 | ||
| file system.
 | ||
| The permissions on
 | ||
| .Ar users/home
 | ||
| are also displayed.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm allow Ar cindys Sy quota , Ns Sy reservation Ar users/home
 | ||
| .No # Nm zfs Cm allow Ar users/home
 | ||
| ---- Permissions on users/home ---------------------------------------
 | ||
| Local+Descendent permissions:
 | ||
|         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
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 21 : No Removing ZFS Delegated Permissions on a ZFS Dataset
 | ||
| The following example shows how to remove the snapshot permission from the
 | ||
| .Ar staff
 | ||
| group on the
 | ||
| .Sy tank/users
 | ||
| file system.
 | ||
| The permissions on
 | ||
| .Sy tank/users
 | ||
| are also displayed.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm unallow Ar staff Sy snapshot Ar tank/users
 | ||
| .No # Nm zfs Cm allow Ar tank/users
 | ||
| ---- Permissions on tank/users ---------------------------------------
 | ||
| Permission sets:
 | ||
|         @pset create,destroy,mount,snapshot
 | ||
| Local+Descendent permissions:
 | ||
|         group staff @pset
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 22 : No Showing the differences between a snapshot and a ZFS Dataset
 | ||
| The following example shows how to see what has changed between a prior
 | ||
| snapshot of a ZFS dataset and its current state.
 | ||
| The
 | ||
| .Fl F
 | ||
| option is used to indicate type information for the files affected.
 | ||
| .Bd -literal -compact -offset Ds
 | ||
| .No # Nm zfs Cm diff Fl F Ar tank/test@before tank/test
 | ||
| M       /       /tank/test/
 | ||
| M       F       /tank/test/linked      (+1)
 | ||
| R       F       /tank/test/oldname -> /tank/test/newname
 | ||
| -       F       /tank/test/deleted
 | ||
| +       F       /tank/test/created
 | ||
| M       F       /tank/test/modified
 | ||
| .Ed
 | ||
| .
 | ||
| .Ss Example 23 : No Creating a bookmark
 | ||
| The following example creates a bookmark to a snapshot.
 | ||
| This bookmark can then be used instead of a snapshot in send streams.
 | ||
| .Dl # Nm zfs Cm bookmark Ar rpool Ns @ Ns Ar snapshot rpool Ns # Ns Ar bookmark
 | ||
| .
 | ||
| .Ss Example 24 : No Setting Sy sharesmb No Property Options on a ZFS File System
 | ||
| The following example show how to share SMB filesystem through ZFS.
 | ||
| Note that a user and their password must be given.
 | ||
| .Dl # Nm smbmount Ar //127.0.0.1/share_tmp /mnt/tmp Fl o No user=workgroup/turbo,password=obrut,uid=1000
 | ||
| .Pp
 | ||
| Minimal
 | ||
| .Pa /etc/samba/smb.conf
 | ||
| configuration is required, as follows.
 | ||
| .Pp
 | ||
| Samba will need to bind to the loopback interface for the ZFS utilities to
 | ||
| communicate with Samba.
 | ||
| This is the default behavior for most Linux distributions.
 | ||
| .Pp
 | ||
| Samba must be able to authenticate a user.
 | ||
| This can be done in a number of ways
 | ||
| .Pq Xr passwd 5 , LDAP , Xr smbpasswd 5 , &c.\& .
 | ||
| How to do this is outside the scope of this document – refer to
 | ||
| .Xr smb.conf 5
 | ||
| for more information.
 | ||
| .Pp
 | ||
| See the
 | ||
| .Sx USERSHARES
 | ||
| section for all configuration options,
 | ||
| in case you need to modify any options of the share afterwards.
 | ||
| Do note that any changes done with the
 | ||
| .Xr net 8
 | ||
| command will be undone if the share is ever unshared (like via a reboot).
 | ||
| .
 | ||
| .Sh ENVIRONMENT VARIABLES
 | ||
| .Bl -tag -width "ZFS_MODULE_TIMEOUT"
 | ||
| .It Sy ZFS_COLOR
 | ||
| Use ANSI color in
 | ||
| .Nm zfs Cm diff
 | ||
| and
 | ||
| .Nm zfs Cm list
 | ||
| output.
 | ||
| .It Sy ZFS_MOUNT_HELPER
 | ||
| Cause
 | ||
| .Nm zfs Cm mount
 | ||
| to use
 | ||
| .Xr mount 8
 | ||
| to mount ZFS datasets.
 | ||
| This option is provided for backwards compatibility with older ZFS versions.
 | ||
| .
 | ||
| .It Sy ZFS_SET_PIPE_MAX
 | ||
| Tells
 | ||
| .Nm zfs
 | ||
| to set the maximum pipe size for sends/receives.
 | ||
| Disabled by default on Linux
 | ||
| due to an unfixed deadlock in Linux's pipe size handling code.
 | ||
| .
 | ||
| .\" Shared with zpool.8
 | ||
| .It Sy ZFS_MODULE_TIMEOUT
 | ||
| Time, in seconds, to wait for
 | ||
| .Pa /dev/zfs
 | ||
| to appear.
 | ||
| Defaults to
 | ||
| .Sy 10 ,
 | ||
| max
 | ||
| .Sy 600 Pq 10 minutes .
 | ||
| If
 | ||
| .Pf < Sy 0 ,
 | ||
| wait forever; if
 | ||
| .Sy 0 ,
 | ||
| don't wait.
 | ||
| .El
 | ||
| .
 | ||
| .Sh INTERFACE STABILITY
 | ||
| .Sy Committed .
 | ||
| .
 | ||
| .Sh SEE ALSO
 | ||
| .Xr attr 1 ,
 | ||
| .Xr gzip 1 ,
 | ||
| .Xr ssh 1 ,
 | ||
| .Xr chmod 2 ,
 | ||
| .Xr fsync 2 ,
 | ||
| .Xr stat 2 ,
 | ||
| .Xr write 2 ,
 | ||
| .Xr acl 5 ,
 | ||
| .Xr attributes 5 ,
 | ||
| .Xr exports 5 ,
 | ||
| .Xr zfsconcepts 7 ,
 | ||
| .Xr zfsprops 7 ,
 | ||
| .Xr exportfs 8 ,
 | ||
| .Xr mount 8 ,
 | ||
| .Xr net 8 ,
 | ||
| .Xr selinux 8 ,
 | ||
| .Xr zfs-allow 8 ,
 | ||
| .Xr zfs-bookmark 8 ,
 | ||
| .Xr zfs-change-key 8 ,
 | ||
| .Xr zfs-clone 8 ,
 | ||
| .Xr zfs-create 8 ,
 | ||
| .Xr zfs-destroy 8 ,
 | ||
| .Xr zfs-diff 8 ,
 | ||
| .Xr zfs-get 8 ,
 | ||
| .Xr zfs-groupspace 8 ,
 | ||
| .Xr zfs-hold 8 ,
 | ||
| .Xr zfs-inherit 8 ,
 | ||
| .Xr zfs-jail 8 ,
 | ||
| .Xr zfs-list 8 ,
 | ||
| .Xr zfs-load-key 8 ,
 | ||
| .Xr zfs-mount 8 ,
 | ||
| .Xr zfs-program 8 ,
 | ||
| .Xr zfs-project 8 ,
 | ||
| .Xr zfs-projectspace 8 ,
 | ||
| .Xr zfs-promote 8 ,
 | ||
| .Xr zfs-receive 8 ,
 | ||
| .Xr zfs-redact 8 ,
 | ||
| .Xr zfs-release 8 ,
 | ||
| .Xr zfs-rename 8 ,
 | ||
| .Xr zfs-rollback 8 ,
 | ||
| .Xr zfs-send 8 ,
 | ||
| .Xr zfs-set 8 ,
 | ||
| .Xr zfs-share 8 ,
 | ||
| .Xr zfs-snapshot 8 ,
 | ||
| .Xr zfs-unallow 8 ,
 | ||
| .Xr zfs-unjail 8 ,
 | ||
| .Xr zfs-unload-key 8 ,
 | ||
| .Xr zfs-unmount 8 ,
 | ||
| .Xr zfs-unshare 8 ,
 | ||
| .Xr zfs-upgrade 8 ,
 | ||
| .Xr zfs-userspace 8 ,
 | ||
| .Xr zfs-wait 8 ,
 | ||
| .Xr zpool 8
 |