table of contents
- bookworm 2.1.11-1+deb12u1
- bookworm-backports 2.2.7-1~bpo12+1
- testing 2.2.7-2
- unstable 2.2.7-2
- experimental 2.3.0-1~exp1
ZFS-SNAPSHOT(8) | System Manager's Manual | ZFS-SNAPSHOT(8) |
NAME¶
zfs-snapshot
—
create snapshots of ZFS datasets
SYNOPSIS¶
zfs |
snapshot [-r ]
[-o
property=value]…
dataset@snapname… |
DESCRIPTION¶
Creates a snapshot of a dataset or multiple snapshots of different datasets.
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
-r
option are all created at the same time.
zfs
snap
can be
used as an alias for zfs
snapshot
.
See the Snapshots section of zfsconcepts(7) for details.
EXAMPLES¶
Example 1: Creating a ZFS Snapshot¶
The following command creates a snapshot named yesterday. This snapshot is mounted on demand in the .zfs/snapshot directory at the root of the pool/home/bob file system.
# zfs
snapshot
pool/home/bob@yesterday
Example 2: Creating and Destroying Multiple Snapshots¶
The following command creates snapshots named yesterday of pool/home and all of its descendent file systems. Each snapshot is mounted on demand in the .zfs/snapshot directory at the root of its file system. The second command destroys the newly created snapshots.
# zfs
snapshot
-r
pool/home@yesterday
# zfs
destroy
-r
pool/home@yesterday
Example 3: 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 4: Performing a Rolling Snapshot¶
The following example shows how to maintain a history of snapshots with a consistent naming scheme. To keep a week's worth of snapshots, the user destroys the oldest snapshot, renames the remaining snapshots, and then creates a new snapshot, as follows:
#zfs
destroy
-r
pool/users@7daysago #zfs
rename
-r
pool/users@6daysago @7daysago #zfs
rename
-r
pool/users@5daysago @6daysago #zfs
rename
-r
pool/users@4daysago @5daysago #zfs
rename
-r
pool/users@3daysago @4daysago #zfs
rename
-r
pool/users@2daysago @3daysago #zfs
rename
-r
pool/users@yesterday @2daysago #zfs
rename
-r
pool/users@today @yesterday #zfs
snapshot
-r
pool/users@today
SEE ALSO¶
zfs-bookmark(8), zfs-clone(8), zfs-destroy(8), zfs-diff(8), zfs-hold(8), zfs-rename(8), zfs-rollback(8), zfs-send(8)
March 16, 2022 | OpenZFS |