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

FreeBSD Manual Pages

  
 
  

home | help
ZFSCONCEPTS(7)		Miscellaneous Information Manual	ZFSCONCEPTS(7)

NAME
       zfsconcepts -- overview of ZFS concepts

DESCRIPTION
   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(8) command.

       See zpool(8) 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, visibility is determined	by the snapdev property	of the
       parent volume.

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

   Bookmarks
       A  bookmark  is	like  a	snapshot, a read-only copy of a	file system or
       volume.	Bookmarks can be created extremely quickly, compared to	 snap-
       shots, and they consume no additional space within the pool.  Bookmarks
       can also	have arbitrary names, much like	snapshots.

       Unlike  snapshots, bookmarks can	not be accessed	through	the filesystem
       in any way.  From a storage standpoint a	bookmark just provides	a  way
       to  reference  when a snapshot was created as a distinct	object.	 Book-
       marks are initially tied	to a snapshot, not the filesystem  or  volume,
       and  they will survive if the snapshot itself is	destroyed.  Since they
       are very	light weight there's little incentive to destroy them.

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

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

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

   Mount Points
       Creating	a ZFS file system is a simple operation, so the	number of file
       systems	per  system  is	likely to be numerous.	To cope	with this, ZFS
       automatically manages mounting and unmounting file systems without  the
       need  to	edit the /etc/fstab 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/fstab).	 The mountpoint	property can be	inher-
       ited, so	 if  pool/home	has  a	mount  point  of  /export/stuff,  then
       pool/home/user	 automatically	  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/fstab).  If a file	system's mount point is	set to
       legacy, ZFS makes no attempt to manage the file system, and the	admin-
       istrator	 is  responsible  for mounting and unmounting the file system.
       Because pools must be imported before a legacy mount can	 succeed,  ad-
       ministrators  should ensure that	legacy mounts are only attempted after
       the zpool import	process	finishes at boot time.	For  example,  on  ma-
       chines using systemd, the mount option

       x-systemd.requires=zfs-import.target

       will  ensure  that  the	zfs-import  completes  before systemd attempts
       mounting	the filesystem.	 See systemd.mount(5) for details.

   Deduplication
       Deduplication is	the process for	removing redundant data	at  the	 block
       level,  reducing	the total amount of data stored.  If a file system has
       the dedup property enabled, duplicate data blocks are removed  synchro-
       nously.	 The result is that only unique	data is	stored and common com-
       ponents are shared among	files.

       Deduplicating data is a very resource-intensive operation.  It is  gen-
       erally  recommended that	you have at least 1.25 GiB of RAM per 1	TiB of
       storage when you	enable deduplication.  Calculating the exact  require-
       ment depends heavily on the type	of data	stored in the pool.

       Enabling	 deduplication	on an improperly-designed system can result in
       performance issues (slow	I/O and	administrative	operations).   It  can
       potentially lead	to problems importing a	pool due to memory exhaustion.
       Deduplication can consume significant processing	power (CPU) and	memory
       as well as generate additional disk I/O.

       Before creating a pool with deduplication enabled, ensure that you have
       planned your hardware requirements appropriately	and implemented	appro-
       priate recovery practices, such as regular backups.  Consider using the
       compression property as a less resource-intensive alternative.

   Block cloning
       Block  cloning is a facility that allows	a file (or parts of a file) to
       be "cloned", that is, a shallow	copy  made  where  the	existing  data
       blocks  are  referenced rather than copied.  Later modifications	to the
       data will cause a copy of the data block	to be taken and	that copy mod-
       ified.  This facility is	used to	implement  "reflinks"  or  "file-level
       copy-on-write".

       Cloned  blocks  are  tracked  in	a special on-disk structure called the
       Block Reference Table (BRT).  Unlike deduplication, this	table has min-
       imal overhead, so can be	enabled	at all times.

       Also unlike deduplication, cloning must be requested by a user program.
       Many common file	copying	programs, including newer versions of /bin/cp,
       will try	to create clones automatically.	 Look for "clone", "dedupe" or
       "reflink" in the	documentation for more information.

       There are some limitations to block cloning.  Only whole	blocks can  be
       cloned,	and  blocks  can  not be cloned	if they	are not	yet written to
       disk,  or  if  they  are	 encrypted,  or	 the  source  and  destination
       recordsize  properties differ.  The OS may add additional restrictions;
       for example, most versions  of  Linux  will  not	 allow	clones	across
       datasets.

FreeBSD	14.3			October	6, 2023			ZFSCONCEPTS(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zfsconcepts&sektion=7&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help