|
NAMEzap —
maintain and replicate ZFS snapshots
SYNOPSIS
DESCRIPTIONzap automates the management of zfs snapshots. With a
few simple crontab entries, it can be used to create a comprehensive zfs
backup system. There are no configuration files. All parameters are supplied
on the command line or in zfs properties and all snapshot information is
stored in snapshot names.
If the pool is in a DEGRADED state, then snapshots will still be
created, replicated, and destroyed unless SUBCOMMANDSsnap|snapshotUse the snap subcommand to create snapshots that will expire after TTL (time to live) has elapsed. An expired snapshot will be destroyed the next timezap
destroy is run. TTL takes the form
[0-9]{1,4}[dwmy]. That is, one to four digits followed by a character to
represent the time unit (day, week, month, or year). If datasets are not not
supplied on the command line, snapshots will be created for datasets with the
property zap:snap set to on.
rep|replicateUse the rep subcommand to replicate datasets. If a destination and datasets are not supplied on the command line, datasets with a destination set in the zap:rep user property are replicated. If the destination does not contain a host, or if the supplied host is localhost, 127.x.x.x, or ::1, then any user@ is ignored and ssh is not used. If the canmount property of the local dataset is set to on, after replication an attempt is made to set canmount to noauto on the remote side. This is done to prevent mountpoint collisions. By default, snapshots originating from the local host (as returned byhostname
-s ) are replicated, but -h host can be used to
replicate snapshots originating from host . Set the
ZAP_FILTER environment variable to a command to filter the transfer. For
example, ZAP_FILTER="mbuffer -s 128k -m 10M" will filter the
transfer through mbuffer. Note that the filter command must be available on
both the sending and receiving hosts.
destroyUse the destroy subcommand to destroy expired snapshots. By default, only snapshots originating from the local host are destroyed. If a comma separated list of hosts are specified, then only destroy snapshots originating from those hosts. Hosts are specified without any domain information, that is, as returned byhostname -s .
OPTIONS
ENVIRONMENTThe following environment variable affects the execution ofzap :
EXAMPLESCreate snapshots that will expire after three weeks.zfs set zap:snap=on zroot/usr/home/nox zroot/var/ zfs set zap:snap=off zroot/var/crash zroot/var/tmp zroot/var/mail zap snap 3w Create snapshots specifying the datasets on the command line. zap snap 3w zroot/usr/home/nox -r zroot/var Recursively create snapshots that will expire after one day. Be verbose. zfs set zap:snap=on zroot/usr/home zap snap -v 1d Replicate datasets to the remote host bravo, under the zback/phe dataset. If you use a non-default ssh port, specify it in ~/.ssh/config. zfs set zap:rep='zap@bravo:zback/phe' zroot/ROOT zroot/usr/home/jrm zap rep -v Replicate datasets (recursively for zroot/ROOT) to the remote host bravo, under the rback/phe dataset, but this time specify the datasets on the command line. If you use a non-default ssh port, specify it in ~/.ssh/config. zap rep zap@bravo:rback/phe -r zroot/ROOT zroot/usr/home/jrm Replicate datasets originating from awarnach to the remote host bravo, under the zback/phe dataset. If you use a non-default ssh port, specify it in ~/.ssh/config. Filter the transfer through mbuffer by setting the ZAP_FILTER environment variable. Note that mbuffer must be available on both the sending and receiving hosts. zfs set zap:rep='zap@bravo:zback/phe' zroot/ROOT zroot/usr/home/jrm zap rep -v -h awarnach Destroy expired snapshots. Be verbose. zap destroy -v Destroy expired snapshots that originated on either the host awarnach or the host gly. Be verbose. zap destroy -v awarnach,gly Example crontab entries for rolling snapshots and remote replication. Taking snapshots is normally cheap, so do it often. Destroying snapshots can thrash disks, so only do it every 24 hours. #minute hour mday month wday command # take snapshots */5 * * * * zap snap 1d 14 */4 * * * zap snap 1w 14 00 * * 1 zap snap 1m # destroy snapshots 44 04 * * * zap destroy # replicate datasets 54 */1 * * * zap rep -v SEE ALSOAUTHOR AND CONTRIBUTORS
BUGSIssue tracker
Visit the GSP FreeBSD Man Page Interface. |