This plugin provides support for LVM snapshots in Amanda dumps. It interfaces with Amanda through the Script API.
Sorry, there's no Makefile yet. Simply copy the amlvm-snapshot.pl script into Amanda's application directory.
For example:
install -m 755 -o root -g root amlvm-snapshot /usr/lib/amanda/application/amlvm-snapshot
You may need to edit the location of Amanda's Perl libraries in the script itself, the following line.
use lib '/usr/lib/amanda/perl/';
Somewhere in your Amanda config you must define a script-tool
that loads the
plugin. You can simply include the provided lvm-snapshot.conf
file if you like.
cp lvm-snapshot.conf /etc/amanda/DailySet1/lvm-snapshot.conf
echo 'includefile "lvm-snapshot.conf"' >> /etc/amanda/DailySet1/amanda.conf
Once you have the lvm-snapshot
script-tool
defined, you can include it in
a dumptype
definition. Note, however, that your dumptype must use an
application-tool program: Only application-tool programs can handle the
alternate mount point—of the snapshot device—that the script defines.
define dumptype lvm-comp-amgtar {
comment "LVM snapshot dumped with amgtar"
global
program "APPLICATION"
application "app_amgtar"
script "lvm-snapshot"
compress client fast
index
}
To allow Amanda to dump more than one snapshot of the same volume in parallel, you must specify a snapshot size (in PEs) such that multiple snapshots can fit in the available free space—by default, all available free space is used.
For example, if you had a volume with 1000 free extents and required that up
to four backups could successfully run in parallel, you would specify the
following configuration in lvm-snapshot.conf
.
property "SNAPSHOT-SIZE" "250"
This plugin requires elevated permissions in order to create and remove LVM
devices. There are two ways to provide access: setting setuid on the plugin
script itself, or by configuring sudo
to allow execution of the LVM
programs.
NOTE: I'm currently having trouble getting this to work right, as Amanda's Perl libraries don't seem to play nice with setuid scripts.
For setuid, simply configure the ownership and mode on amlvm-snapshot
. In
this example, disk
is the group that Amanda runs under.
chown root:disk /usr/libexec/amanda/application/amlvm-snapshot
chmod 4750 /usr/libexec/amanda/application/amlvm-snapshot
This will require that you have a version of Perl installed that was compiled
with ENABLE_SUIDPERL
.
For sudo, add the following to the /etc/sudoers
file where "amandabackup" is
the name of your Amanda user.
amandabackup ALL=(ALL) NOPASSWD: /sbin/lvcreate, /sbin/lvdisplay, /sbin/lvremove, /sbin/vgdisplay, /bin/readlink, /bin/mount, /bin/umount, /sbin/blkid
The commands listed are those used by amlvm-snapshot
to interact with the
LVM volumes.
Remember to enable the SUDO
property. This is already included in the
example lvm-snapshot.conf
file.
define script-tool lvm-snapshot {
# ...
property "SUDO" "1"
}
Enjoy, Daniel