Man page - zfs-snapshot(8)

Manual


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.

-o property = value

Set the specified property; see zfs create for details.

-r

Recursively create snapshots of all descendent datasets

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) OpenZFS March 16, 2022 ZFS-SNAPSHOT (8)