Amanda script to create zfs sendrecv
amzfs-sendrecv is an Amanda application implementing the Application API. It should not be run by users directly. It create a zfs snapshot of the filesystem and backup the snapshot with 'zfs send'. Snapshot are kept after the backup is done, this increase the disk space use on the client but it is necessary to be able do to incremental backup. If you want only full backup, you can disable this feature by setting the KEEP-SNAPSHOT property to 'NO'. Only the restoration of the complete backup is allowed, it is impossible to restore a single file.
The application is run as the amanda user, it must have many zfs privilege:
zfs allow -ldu AMANDA_USER mount,create,rename,snapshot,destroy,send,receive FILESYSTEM
Some system doesn't have "zfs allow", but you can give the Amanda backup user the rights to manipulate ZFS filesystems by using the following command:
usermod -P "ZFS File System Management,ZFS Storage Management" AMANDA_USER
This will require that your run zfs under pfexec, set the PFEXEC property to YES.
The format of the diskdevice in the disklist (DLE) must be one of:
Desciption Example ---------- ------- Mountpoint /data ZFS pool name datapool ZFS filesystem datapool/database ZFS logical volume datapool/dbvol
The filesystem doesn't need to be mounted.
This section lists the properties that control amzfs-sendrecv's functionality. See amanda-applications(7) for information on the Application API, application configuration.
DF-PATH
Path to the 'df' binary, search in $PATH by default.
KEEP-SNAPSHOT
If "YES" (the default), snapshot are kept after the backup, if set to "NO" then snapshot are no kept and incremental backup will fail.
ZFS-PATH
Path to the 'zfs' binary, search in $PATH by default.
PFEXEC-PATH
Path to the 'pfexec' binary, search in $PATH by default.
PFEXEC
If "NO" (the default), pfexec is not used, if set to "YES" then pfexec is used.
In this example, a dumptype is defined to use amzfs-sendrecv application to backup a zfs filesystem.
define application-tool amzfs_sendrecv { comment "amzfs-sendrecv" plugin "amzfs-sendrecv" #property "DF-PATH" "/usr/sbin/df" #property "KEEP-SNAPSHOT" "YES" #property "ZFS-PATH" "/usr/sbin/zfs" #property "PFEXEC-PATH" "/usr/sbin/pfexec" #property "PFEXEC" "NO" } define dumptype user-zfs-sendrecv { program "APPLICATION" application "amzfs_sendrecv" }
amanda(8), amanda.conf(5), amanda-client.conf(5), amanda-applications(7)
The Amanda Wiki: : http://wiki.zmanda.com/
Jean-Louis Martineau <[email protected]>
Zmanda, Inc. (http://www.zmanda.com)