ZFS snapshots give the filesystem a rewind button
A ZFS snapshot is a name attached to a dataset’s block tree at one transaction group. Nothing is copied, nothing is quiesced, and the cost is a few metadata blocks: zfs snapshot tank/data@before-upgrade returns before the shell prompt redraws. Because ZFS never overwrites a live block in place, the old tree stays valid on disk until the last reference to it goes away, and the snapshot is that reference. ...