Table of Contents
This document covers the compilation, installation, and runtime setup of Amanda 2.4.2 and higher.
Read this document all the way through.
Consult Amanda 2.4.x - System-Specific Installation Notes for installation notes specific to particular operating systems. There is often important information there, so don't forget this step.
Read Upgrade Issues if you are upgrading from a previous Amanda version. There are some issues that you will need to be aware of.
If you are using KERBEROS authentication, read Kerberos for details on installing and running the kerberized version of Amanda.
Check the Amanda Patches Page, http://www.amanda.org/patches/.
If you have multiple architectures, you only need to install the whole Amanda package on the tape server host (the one with tape drive). On the backup client hosts (the ones you are going to dump), you only need to compile some of the Amanda programs (see section Set up the Backup Client Hosts below).
Amanda can optionally make use of the following packages to back up different types of clients or clients with different filesystem dumping programs.
GNU-tar:
If you wish to use GNU-tar to back up filesystems, it is recommended to use GNU-tar 1.13.25. Plain GNU-tar 1.12 needs to be patched to handle large files (> 2GB). Plain GNU-tar 1.13 creates bad index-lists which amrecover cannot handle, as does the rarely used GNU-tar 1.13.9x, which changed the index-format again in an incompatible way.
Refer to the Amanda FAQ for more information about issues with the various releases of GNU-tar.
If you need to use GNU-tar 1.12, get it at
ftp://ftp.gnu.org/pub/gnu/tar/tar-1.12.tar.gz
and apply the patch from patches/tar-1.12.patch
. The first hunk
may be enough, unless it's a SunOS4 host. Read more about the
patches in the patch file itself.
GNU-tar 1.13.25 can be found at:
Samba:
Samba allows Unix systems to talk to PC clients. Amanda can back up Microsoft Windows clients using Samba:
Read Backup PC hosts using Samba for configuration tips and known limitations.
Look at http://www.amanda.org/patches/ for up to date information on patches.
Perl:
If you wish to make use of some of the scripts that come with Amanda, you will need to install Perl. You can get Perl from any CPAN site.
Awk:
One of the programs included in this package is amplot, which reads a data file that Amanda generates for each dump and translates that information in it into a nice picture that can be used to determine how your installation is doing and if any parameters need to be changed. To use amplot, you need a version of awk that understands command line variable substitutions, such as nawk or gawk, which is available from
GNUplot:
Amplot also required that gnuplot be installed on your system. Gnuplot is available at
Other packages:
The process of building Amanda requires that some other packages be installed on your system. The following packages are used:
ftp://ftp.gnu.org/pub/gnu/readline/readline-5.0.tar.gz
amrecover optionally uses the readline library for its command-line edition mechanisms. (If you use a package-based distribution, check for the package readline-devel-X.Y.rpm.) This library itself requires either termcap, curses or ncurses. termcap is preferred, and it may be obtained from:
ftp://ftp.gnu.org/pub/gnu/termcap/termcap-1.3.1.tar.gz.
If you wish to edit and enhance Amanda, you may need to install the following tools. Autoconf and automake are required if you are going to rebuild the Makefiles and auto configuration scripts. Bison is only needed if you are going to work on the index server and client code.
ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.53.tar.gz ftp://ftp.gnu.org/pub/gnu/automake/automake-1.6.3.tar.gz ftp://ftp.gnu.org/pub/gnu/bison/bison-1.27.tar.gz ftp://ftp.gnu.org/pub/gnu/flex/flex-2.5.4a.tar.gz
Read about the different configuration options available for building and running Amanda. To see the options, do both:
Run ./configure --help
to see the available options that configure takes.
Read the file example/config.site
which gives longer
descriptions to the same options.
Choose which user and group you will run the dumps under. Common choices for user are `bin' or another user specifically created for Amanda, such as `amanda'; common choices for group are `operator' or `disk'. If you do not specify --with-user=<username> and --with-group=<groupname>, configure will abort. Also choose the default name for your configuration, such as `csd' or `DailySet1'). This name is used by the Amanda commands to choose one of multiple possible configurations. You may specify it using the --with-config=<confgname>.
Decide where Amanda will live. You need to choose a root directory for Amanda. Let this root directory be called $prefix. Unless you change the default behavior with the appropriate command line options, Amanda will install itself as. Listed below you find the appropriate configure-option for each directory to change the location of this part of Amanda.
--sbindir=$prefix/sbin Amanda server side programs --libexecdir=$prefix/libexec Amanda backup client programs --libdir=$prefix/lib Amanda dynamic libraries --with-configdir=$prefix/etc/amanda Runtime configuration files --with-gnutar-listdir=$prefix/var/amanda/gnutar-lists Directory for GNU-tar lists (client) --mandir=$prefix/man Directory for manual pages
Note that the GNU-tar listdir should be a local filesystem on each client that is going to be backed up with GNU-tar. If it really must be NFS-mounted, make sure the filesystem is exported so that the client has root access to it.
Decide if you are compiling Amanda on a server only or a
client only platform. If you have a particular operating system
that will only be a Amanda client and will never run as the
master tape host, then add the --without-server option to
configure. In the unlikely case that you have a particular
operating system that will serve as the tape host and you do
not wish to back up any machines that run this operating system,
add the --without-client option to the configure options.
There are many other configuration switches for Amanda. You
may learn more about them by running configure --help
and by
reading examples/config.site
.
Now configure Amanda. There are two ways of doing this. If you are running Amanda on a single OS, then probably the first method works better for you. If you need to support multiple platforms, then the second method will work better.
Run configure as non-root-user with the appropriate command line options. You will probably want to remember the command line options for future builds of Amanda.
Edit examples/config.site
and install it in the directory
$prefix/etc or $prefix/share. When configure runs
the next time it will look for this file and use it to
configure Amanda.
Back at the top-level source directory, build the sources:
make su root; make install
Make sure that you don't build the software as root, you may run the first make-command as the Amanda-user, for example. On the other hand you have to run make install as root to get the binaries installed with the proper permissions. If you want to change the compiler flags, you can do so like this:
make CFLAGS="-O3 -Wall"
If you have built with USE_VERSION_SUFFIXES, you will want to
create symlinks to the version you wish to use, eg:
ln -s amdump-x.y.z amdump
This is not done automatically by the install process, so that
you can have multiple Amanda versions co-existing, and choose
yourself which to make the default version. The script
contrib/set_prod_link.pl
may save you some keystrokes.
Run ldconfig
as root to update the paths to the recently installed
shared libraries.
Create the config directory (eg.
/usr/local/etc/amanda/confname
)
and copy the example/ files into that directory. Edit these
files to be correct for your site, consulting the amanda(8) man
page if necessary. You can also send mail to
mailto://[email protected] if you are having trouble deciding how
to set things up. You will also need to create the directory
for the log and database files for the configuration to use (eg
/usr/local/var/amanda/confname
), and the work directory on the
holding disk. These directories need to agree with the
parameters in amanda.conf
. Don't forget to make all these
directories writable by the dump user!
Make sure that you specify the *no-rewind* version of the tape
device in your amanda.conf
file. This is a frequently
encountered problem for new sites.
Note that you might want to temporarily set the option "no-record" in all your dumptypes when first installing Amanda if you'd like to run tests of Amanda in parallel with your existing dump scheme. Amanda will then run but will not interfere with your current dumpdates. However, you don't want to run with "no-record" under normal operations.
Put Amanda into your crontab. Here's a sample:
Example 2.1. /etc/crontab
0 16 * * 1-5 /usr/local/sbin/amcheck -m confname 45 0 * * 2-6 /usr/local/sbin/amdump confname
This is for SunOS 4.x, which has a per-user crontab; most other
systems also require a userid on each cron line. See your
cron(8) for details. With these cron lines, Amanda will check
that the correct tape is in the drive every weekday afternoon
at 4pm (if it isn't, all the operators will get mail). At
12:45am that night the dumps will be run.
Put the Amanda services into your /etc/services
file. Add
entries like:
You may choose a different port number if you like, but it must
match that in the services file on the client hosts too.
If you are running NIS (aka YP), you have to enter the Amanda service into your NIS services database. Consult your NIS documentation for details.
You may use the `patch-system' script, from client-src, in order to modify this file. Run it with a `-h' argument for usage.
If you are going to use the indexing capabilities of Amanda, follow one of the following steps:
If your server uses inetd, then add these lines to your
inetd.conf
on the tape server host:
Example 2.3. /etc/inetd.conf
amandaidx stream tcp nowait $USER $AMINDEXD_PATH amindexd amidxtape stream tcp nowait $USER $AMIDXTAPED_PATH amidxtaped
where $AMINDEXD_PATH
and $AMIDXTAPED_PATH
are the complete paths
to where the amindexd and amidxtaped executables (usually
libexec_dir/amindexd and libexec_dir/amidxtaped), and USER is
the Amanda user.
You may use the `patch-system' script, from client-src, in order to modify this file. Run it with a `-h' argument for usage.
If your tape server uses xinetd instead of inetd, then you have
to add the following two files to your xinetd-configuration
(usually /etc/xinetd.d
) and edit the paths:
Example 2.4. /etc/xinetd.d/amandaidx
service amandaidx { socket_type = stream protocol = tcp wait = no user = $USER group = $GROUP groups = yes server = $AMINDEXD_PATH/amindexd }
Example 2.5. /etc/xinetd.d/amidxtape
service amidxtape { socket_type = stream protocol = tcp wait = no user = $USER group = $GROUP groups = yes server = $AMIDXTAPED_PATH/amidxtaped }
If your tape server uses Dan Bernstein's daemontools http://cr.yp.to/daemontools.html) instead of (x)inetd, you have to create amandaidx and amidxtape services by hand.
Create service directories:
mkdir -p $prefix/etc/amanda/supervise/amandaidx mkdir -p $prefix/etc/amanda/supervise/amidxtape
Create service startup files and make them executable:
Example 2.6. /etc/amanda/supervise/amandaidx/run
#!/bin/sh exec /usr/local/bin/setuidgid amanda \ /usr/local/bin/tcpserver -DHRl0 0 10082 \ /usr/local/libexec/amindexd >/dev/null 2>/dev/null
Example 2.7. /etc/amanda/supervise/amidxtape/run
#!/bin/sh exec /usr/local/bin/setuidgid amanda \ /usr/local/bin/tcpserver -DHRl0 0 10083 \ /usr/local/libexec/amidxtaped >/dev/null 2>/dev/null
Link service directories into your svscan directory:
cd /service ln -s $prefix/etc/amanda/supervise/amandaidx . ln -s $prefix/etc/amanda/supervise/amidxtape .
If the tape server host is itself going to be backed up (as is
usually the case), you must also follow the client-side install
instructions below on the server host, INCLUDING setting up the
file .amandahosts
so that the server host lets itself in.
This is a frequently encountered problem for new sites.
When using BSD-style security (enabled by default), set up
your ~dumpuser/.amandahosts
(or
~dumpuser/.rhosts
and/or
/etc/hosts.equiv
, if you have configured
--without-amandahosts) so that the dumpuser is allowed in from
the server host. Only canonical host names will be accepted
in .amandahosts
, and usernames must be present in every line,
because this is safer.
Set up your raw disk devices so that the dumpuser can read
them, and /etc/dumpdates
so that the dumpuser can write to it.
Normally this is done by making the disk devices readable by
(and dumpdates read/writable by) group `operator', and putting
the dumpuser into that group.
Put the Amanda service into your /etc/services
file. Add
entry like:
You may choose a different port number if you like, but it must
match that in the services file on the tape server host too.
If you are running NIS (aka YP), you have to enter the Amanda service into your NIS services database. Consult your NIS documentation for details.
You may use the `patch-system' script, from client-src, in order to modify this file. Run it with a `-h' argument for usage.
Follow one of the following steps to set up the Amanda client service:
If your Amanda client uses inetd, put the Amanda client service
into inetd's config file.
This file is usually found in /etc/inetd.conf
, but on older systems
it is /etc/servers
. The format is different on different OSes,
so you must consult the inetd man page for your site. Here is
an example from our site, again from SunOS 4.x:
You may use the `patch-system' script, from client-src, in order to modify this file. Run it with a `-h' argument for usage.
If your Amanda client uses xinetd, you have to add the following
file to your xinetd-configuration (usually
/etc/xinetd.d
) and edit it to reflect your settings and paths:
Example 2.10. /etc/xinetd.d/amanda
service amanda { socket_type = dgram protocol = udp wait = yes user = $USER group = $GROUP groups = yes server = $AMANDAD_PATH/amandad }
If your Amanda client uses Dan Bernstein's daemontools (http://cr.yp.to/daemontools.html) instead of (x)inetd, you have to create the amanda service by hand. You will need also an UDP super-server (netcat in this example).
Create service directory:
mkdir -p /etc/amanda/supervise/amanda
Create service startup file and make it executable:
Example 2.11. /etc/amanda/supervise/amanda/run
#!/bin/sh exec /usr/local/bin/setuidgid amanda \ /usr/bin/netcat -l -u -p 10080 -q 0 \ -e /usr/local/libexec/amandad >/dev/null 2>/dev/null
/usr/bin/nc
on your system, depending on the
OS-distribution you use.
Refer to http://netcat.sourceforge.net for details of
netcat.
Link service directory into your svscan directory:
cd /service ln -s /etc/amanda/supervise/amanda .
If you are using (x)inetd, kick inetd/xinetd to make it read its config file.
On most systems you can just execute kill -HUP inetd
(or xinetd).
On older systems you may have to kill it completely and restart it.
Note that killing/restarting (x)inetd is not safe to do unless you are sure that
no (x)inetd services (like rlogin) are currently in use, otherwise (x)inetd will not be able
to bind that port and that service will be unavailable.
If you are using the daemontools, svscan should detect and start your new services automatically.
If you intend to back up xfs filesystems on hosts running IRIX,
you must create the directory /var/xfsdump/inventory
, otherwise
xfsdump will not work.
Please send mail to mailto://[email protected] if you have any comments or questions. We're not afraid of negative reviews, so let us have it!
Before writing questions, you may prefer to take a look at the Amanda FAQ and at the Amanda home page, at http://www.amanda.org. Browsable archives of Amanda mailing-lists are available at http://marc.theaimsgroup.com/?l=amanda-users and http://marc.theaimsgroup.com/?l=amanda-hackers.