mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 11:29:36 +03:00
d0d2733204
Fixes a small inaccuracy in the description of snapshot atomicity zfs-snapshot(8) appears to contain a small error. The existing version reads "Snapshots are taken atomically, so that all snapshots correspond to the same moment in time." Per zfs_main.c, which in do_snapshot() simply loops over argv, this does not appear to be correct when multiple snapshots are specified explicitly on the command line. I believe the intent of the man page was to say that *recursive* snapshots are all created atomically. This proposed change fixes that error. Because the existing statement may confuse some readers anyway, the commit also also adds a small amount of general explanatory information that may be helpful. The change also adds an introductory sentence that summarizes what 'zfs snapshot' does in the first place. In that sentence, the text "different datasets" is intended to indicate that (again per the code) the same dataset cannot be specified multiple times on the command line. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Shawn Bayern <sbayern@law.fsu.edu> Closes #15857
143 lines
5.1 KiB
Groff
143 lines
5.1 KiB
Groff
.\"
|
|
.\" 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) 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 2019 Richard Laager. All rights reserved.
|
|
.\" Copyright 2018 Nexenta Systems, Inc.
|
|
.\" Copyright 2019 Joyent, Inc.
|
|
.\"
|
|
.Dd March 16, 2022
|
|
.Dt ZFS-SNAPSHOT 8
|
|
.Os
|
|
.
|
|
.Sh NAME
|
|
.Nm zfs-snapshot
|
|
.Nd create snapshots of ZFS datasets
|
|
.Sh SYNOPSIS
|
|
.Nm zfs
|
|
.Cm snapshot
|
|
.Op Fl r
|
|
.Oo Fl o Ar property Ns = Ns Ar value Oc Ns …
|
|
.Ar dataset Ns @ Ns Ar snapname Ns …
|
|
.
|
|
.Sh DESCRIPTION
|
|
Creates a snapshot of a dataset or multiple snapshots of different
|
|
datasets.
|
|
.Pp
|
|
Snapshots are created atomically.
|
|
That is, a snapshot is a consistent image of a dataset at a specific
|
|
point in time; it includes all modifications to the dataset made by
|
|
system calls that have successfully completed before that point in time.
|
|
Recursive snapshots created through the
|
|
.Fl r
|
|
option are all created at the same time.
|
|
.Pp
|
|
.Nm zfs Cm snap
|
|
can be used as an alias for
|
|
.Nm zfs Cm snapshot .
|
|
.Pp
|
|
See the
|
|
.Sx Snapshots
|
|
section of
|
|
.Xr zfsconcepts 7
|
|
for details.
|
|
.Bl -tag -width "-o"
|
|
.It Fl o Ar property Ns = Ns Ar value
|
|
Set the specified property; see
|
|
.Nm zfs Cm create
|
|
for details.
|
|
.It Fl r
|
|
Recursively create snapshots of all descendent datasets
|
|
.El
|
|
.
|
|
.Sh EXAMPLES
|
|
.\" These are, respectively, examples 2, 3, 10, 15 from zfs.8
|
|
.\" Make sure to update them bidirectionally
|
|
.Ss Example 1 : 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 2 : 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 3 : 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 4 : 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
|
|
.
|
|
.Sh SEE ALSO
|
|
.Xr zfs-bookmark 8 ,
|
|
.Xr zfs-clone 8 ,
|
|
.Xr zfs-destroy 8 ,
|
|
.Xr zfs-diff 8 ,
|
|
.Xr zfs-hold 8 ,
|
|
.Xr zfs-rename 8 ,
|
|
.Xr zfs-rollback 8 ,
|
|
.Xr zfs-send 8
|