Installation

From The Open Source Backup Wiki (Amanda, MySQL Backup, BackupPC)
Jump to navigationJump to search

Pre-built Amanda RPMs

Pre-built Amanda RPMs are available from

  • Zmanda Downloads web site. Amanda 2.5.0b2 binary RPMs and Source tarball and RPM are available for Redhat Enterprise 4.0, Fedora Core 3, Fedora Core 4, SuSE Linux Enterprise Server 9 and Open Suse 10.0.
    • backup_server RPM should be installed on Amanda backup server. It contains Amanda server and client.
    • backup_client RPM should be installed on Amanda client (computer that is backed up by Amanda server). It contains only Amanda client.
    • check Zmanda downloads page Zmanda Downloads for instructions how to perform signature verification.
  • Redhat and Fedora distributions

There are two binary RPMS - amanda-server and amanda-client. You can also get it from the distribution media.

  • Suse distribution

There is only one binary RPM - amanda You can also get it from the distribution media.

Installation

  • Choose the appropriate client and server package for the machine.
  • You should run installation command as super-user ("root")
  • Use the following command to install the package:
/bin/rpm -ivh <rpm name(s)>

Upgrade

  • To upgrade from earlier version of the package, use the following command:
/bin/rpm -Fvh <rpm name(s)>

Verification

After installation or upgrade, you can verify if the package has been installed correctly on the machine.

  • Use the following command to verify the installation:
/bin/rpm -Vp <rpm name(s)>

Uninstall

  • Find the package name to un-install. Use the following command to find the packages installed on the machine.
/bin/rpm -qa | grep amanda 
  • Use the following command to un-install the package:
/bin/rpm -e <rpm name(s)>

Getting Amanda source tree

At first you have to get the Amanda source tree. There are two main ways to get the source tree:

  1. You can get a tarball at www.amanda.org
  2. You can checkout a copy from the AMANDA-CVS. See CVS tree section.

CVS tree

Amanda project's SourceForge CVS repository can be checked out as "anonymous" user with the following command. The module you wish to check out must be specified as the modulename. When prompted for a password for "anonymous" user, simply press the Enter key.

 cvs -d:pserver:[email protected]:/cvsroot/amanda login 
 cvs -z3 -d:pserver:[email protected]:/cvsroot/amanda co <modulename>
 <modulename> has to be "amanda"

All CVS commands executed within the module's directory does not need the -d parameter.

Building Amanda binaries

If you have different platforms, 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 Backup client configuration).

Dependencies

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: Use GNU tar 1.15 or later version on Amanda clients. Earlier versions of GNU tar (some versions of 1.13 and 1.14 are known to have problems. The backups taken using these versions cannot be restored.
GNU tar can be downloaded from http://www.gnu.org/software/tar/tar.html#downloading
  • Samba: Samba allows Unix systems to talk to Windows clients. AMANDA can back up Microsoft Windows clients using samba. Read Backup PC hosts using Samba for configuration tips and known limitations.
  • 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 ftp://ftp.gnu.org/pub/gnu/gawk/gawk-3.1.1.tar.gz
  • readline library: amrecover command 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 both libraries can be obtained from:
           ftp://ftp.gnu.org/pub/gnu/readline/readline-5.0.tar.gz
           ftp://ftp.gnu.org/pub/gnu/termcap/termcap-1.3.1.tar.gz
  • Build tools (autoconf, automake, bison): If you are an AMANDA developer, 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

Compile time parameters

Read about the different configuration options available for building and running AMANDA. To see the options, do both:

  1. Run ./configure --help to see the available options that configure takes.
  2. Read the file example/config.site which gives longer descriptions to the same options.


Configure command line 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.
  • 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.


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.

  1. 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.
  1. 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.

Installing Amanda binaries

  • 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.


OS specific installation notes

Solaris 2.6

You may have compilation errors on statfs.c if you're running, on a Solaris 2.6 host, a gcc that was not build on a Solaris 2.6 host. This happens because gcc stores fixed copies of some Solaris header files on an internal directory. You must rebuild gcc if you get this kind of trouble. Note, however, that gcc 2.7.2.3 does not support Solaris 2.6, you should upgrade to 2.8.0 or higher, or egcs.

Solaris

You may get errors running make: Assure that you use the BSD-version of make, usually /usr/ccs/bin/make. Add /usr/ccs/bin to the path before running configure.

Trusted Solaris

According to Julian Stevens <[email protected]>, the format of inetd on Trusted Solaris 1.2 is a bit different. Just before the user name, you should insert the word `untrusted':

amanda dgram udp wait untrusted amuser /usr/local/libexec/amandad amandad

The patch-system script is *NOT* aware of this detail; you must fix it yourself.

SunOS 4.x

A bug in GNU-tar 1.12 causes it to miscalculate (in fact, to misreport) the size of filesystems. A patch for GNU-tar is available in the patches directory.

Ultrix

The Ultrix dump program contains an explicit check that it is being run by root. This defeats the usual practice of a non-root "operator" userid for dumps. For this reason, the rundump program (a setuid-root wrapper for dump) is enabled by default. If you find rundump is not necessary for you, just run

configure --without-rundump

The Ultrix restore program will fail if it is not connected to a tty. Since the restore program is invoked in the clients in order to create index files, and it the client is not connected to a tty, index creation will fail. Using GNU-tar instead of DUMP is an option. Thanks to Edwin Wiles <[email protected]> for the investigation. Another alternative proposed by Martyn Johnson <[email protected]> is to use a modified restore program: use a binary program editor and replace `/dev/tty' with `/dev/nul', for instance, and link /dev/nul to /dev/null. Note that the chosen file name must be exactly 8 bytes long, otherwise you'll break the restore program. A nice one-liner perl script by Martyn Johnson will do the trick (make sure you preserve a copy of the original restore program, it will be rewritten by running this script!):

perl -pi -e 'BEGIN { $/ = "/dev/tty" } s-$/-/dev/nul-' restore

The Ultrix C compiler seems to be too broken to compile AMANDA. You are likely to need gcc or egcs.

HP/UX

You may run into an internal /bin/sh limit when running the configure script. The error message is:

./configure: sh internal 2K buffer overflow

Using /bin/posix/sh usually works around the problem. Another solution is to install GNU bash and use it instead of /bin/sh.

If `configure' complains about not finding `lex', you'll have to get `flex' installed. Look for its URL in Amanda Installation Notes.

If you use logical volumes, you may refer to mountpoints or full device pathnames instead of device names in the disk list file.

According to Stan Brown <[email protected]>, amverify won't work with HP/UX's stock mt. The work-around is to install GNU cpio, that contains an implementation of mt, and edit amverify so that MT points to GNU mt and MTOPT is `-f', or reconfigure and rebuild amanda from scratch, making sure it finds GNU mt before the stock mt in the PATH.

If you have vxfs filesystems to back up, AMANDA will pick vxdump automatically.

GNU-tar 1.12 will incorrectly report the size of backups. There's a patch in the patches directory that fixes this problem.

The use of `amhpfixdevs' is deprecated, since you can list mount-points or full device names in the disklist. The script may be removed in future releases of AMANDA.

Sometimes you may get the error message `Link severed' from an HP/UX client. This is just a cute name the developers of HP/UX found for `Network error'. Reported by Michael Brehl <[email protected]>

Linux

Linux hosts intended to back up efs partitions with dump should install the dump package, as it is not installed by default on most Linux distributions. It is possible to find compiled versions of dump on most Linux sites and CD-ROMs.

Note, however, that DUMP for Linux has been quite unreliable, sometimes being unable to perform backups, producing weird error messages such as `master/slave protocol botched', and sometimes creating unrestorable dump images, especially of active filesystems. The first problem can sometimes be fixed by cleaning up outdated entries in /etc/dumpdates, but your best bet is probably GNU-tar.

Make sure the user that runs configure has permission to run the dump program, otherwise configure may misdetect an ability of dump to accept a -E (for estimates) switch.

GNU-tar 1.11.8, distributed with some Linux versions, will cause index failures (Index returned -1). Upgrading to GNU-tar 1.12 fixes this problem. This is not a Linux-specific problem, but it is quite common in this platform.

AMANDA now supports the ftape driver version 3.04d. It adjusts the blocksize automatically to 32k and supports QIC volume tables. More details con be found in the file ZFTAPE in this directory.

Some releases of dump for Linux, such as the one distributed with Debian 2.0, have modified dump so that it stores dumpdates in /var/lib. If this is your case, you should create a link to it in /etc. Suggested by David Wolfskill <[email protected]>

Digital Unix 4

According to Michael Galloway <[email protected]>, the stock DUX4 dump is broken. There is a patch available at ftp://ftp.service.digital.com/public/dunix/v4.0b/duv40bas00005-19970926.README

When both dump and vdump are available, AMANDA will use vdump for backing up advfs filesystems only, and dump will be used for the rest. If you'd rather back up all filesystems with vdump, #undef DUMP in config/config.h after running configure.

Unfortunately, the output of `dump -E' incorrectly matches a line of output from SAMBA, which gets AMANDA's estimate process confused. client-src/sendsize.c will refuse to compile if both HAVE_DUMP_ESTIMATE and SAMBA_CLIENT are defined in config/config.h. AMANDA will work correctly if you undefine HAVE_DUMP_ESTIMATE in config/config.h; if you prefer to have incorrect estimates for SAMBA backups, follow the instructions in client-src/sendsize.c on removing the compile-time error.

According to Oren Laadan <[email protected]>, DEC compiler version "DEC C V5.2-033 on Digital UNIX V4.0 (Rev. 564)" (obtained with "cc -V") does not build AMANDA properly, in particular, taper.c. Using gcc is OK.

Sinix 5.43 (Reliant Unix)

The use of `amsinixfixdevs' is deprecated, since you can list mount-points or full device names in the disklist. The script may be removed in future releases of AMANDA.

Sinix port originally by Michael Schmitz <[email protected]>.

IRIX (all)

When setting the tape device name in either amanda.conf or one of the changer configuration files, make sure you specify the "variable" device name, which has a 'v' on the end. If not, IRIX will write 4KByte blocks instead of the 32KByte blocks AMANDA tells it to. This apparantly works OK unless you take the tape to a non-IRIX system, where amrestore will complain about a short (4096) read.

If you do end up in this situation, the dd command to use to pipe into your system restore program is:

dd if=/dev/whatever bs=4k skip=8 | ...

Jean-Francois Malouin <[email protected]> reports that, if you are going to use an IRIX host as the tape server, you *must* patch your system with *all* kernel and scsi rollup patches, otherwise you may end up with useless tapes, due to tape rewinding after short periods of inactivity. See http://www-viz.tamu.edu/~sgi-faq/ for more details.

Some unpatched version of xfsdump are reported as not printing estimates. This causes estimates to take much longer than they had to, because backups are always performed twice. According to Mike Acar <[email protected]>, patch 2333 for IRIX 5.3 and 6.1 will fix this problem.

IRIX 6

Seems like SGI make program is a bit broken, in a way that causes it to rebuild some files if doesn't have to if you happen to run make again. Using GNU make fixes this problem.

If you have xfs filesystems to back up, AMANDA will pick xfsdump automatically.

IRIX 6.5.x

Luc Lalonde <[email protected]> contributed the following notes:

If you use a jukebox, you must set the ownership of the robot-changer device to the AMANDA operator:group in /etc/ioperms. Here's my configuration:

/etc/ioperms: /dev/scsi/sc8d6l0 0600 amanda backup

Otherwise the ownership:group is changed to "root:sys" after each reboot. When you do upgrades, check the file /var/sysgen/master.d/scsi to see if it has changed. Otherwise your jukebox could be rendered unuseable. In particular, check if it has been replaced by a new version and renamed to "./scsi.O/.".

If you use the AMANDA package provided by freeware.sgi.com, you are not affected by the first question since at compile time the AMANDA operator is "root:sys".

SCO

Jens Krause <[email protected]> has reported some problems with GNU-tar 1.12 on SCO Release 5. Although the `sparse' files patch was applied, GNU-tar would consistently crash. GNUtar had to be built linked with malloc-libraries, and the `--sparse' switches had to be removed from client-src/sendbackup-gnutar.c and client-src/sendsize.c.

FreeBSD 3.0

chg-scsi was not updated to support the new camlib.h-dependent chio.h, so chg-scsi will be automatically disabled if camlib.h is found. You may use chg-chio instead.

FreeBSD 4.9

Sep. 28th, 2004: Jason Miller <[email protected]> reported problems with setting up the AMANDA-client on FreeBSD 4.9. He wrote:

Due to the need for read permissions for AMANDA-client the default user and group for this on FreeBSD 4.9 is "operator:operator" which I found a write up on that as well. Just a note the port wanted to install it with these user permissions by default and I initially changed them to match my Redhat 9.0 install. So just doing a make distclean uninstall install AMANDA_SERVER=servername

fixed that for me. Then I just followed the below instructions and everything was good to go.

Refer to this link for more details: http://www.freebsd.org/cgi/query-pr.cgi?pr=59302.

FreeBSD 5.1

Nicolas Ecarnot <[email protected]> discovered that for FreeBSD 5.1 (maybe earlier, and surely further), you have to set the net.inet.udp.maxdgram TCP/IP variable to 65535. The default is 9216, and this is a problem when trying to backup a large number of clients as indicated by errors in during amcheck or the estimate phase.

You can just run the command:

sysctl net.inet.udp.maxdgram=63535

but this won't last until the next reboot.

To make it permanent, just add this line:

net.inet.udp.maxdgram=65535

in the file /etc/sysctl.conf.

AIX

sendsize is reported to coredump on AIX 4.3.3, this is a linking problem, try configuring AMANDA with the option "--disable-shared".

Microsoft Windows

Although AMANDA won't run standalone on MS-Windows hosts, it is possible to use it to back up their disks, by using SAMBA. Please read Backup PC hosts using Samba for more information.

SAMBA may be unable to back up some files due to file locking restrictions. Particularly, paging and registry files usually present problems. Backing up page files is pointless, but registry files are quite important to back up. It is possible to create regular files that contain registry information by using the Regback utility, from the Windows NT Resource Kit. Unfortunately, it is not part of the Windows NT standard distribution, you have to purchase it separately. Thanks to Ernie Oporto <[email protected]> for the tip.

Another possibility is Cygwin, see: Amanda running on Cygwin server.

Mac OS X

For notes on how to setup AMANDA under Apple's OS X, please refer to http://web.brandeis.edu/pages/view/Bio/AmandaMacOSXCompileNotes, written by Steven Karel<[email protected]>. Thanks to Jose L.Hales-Garcia <[email protected]> for the tip.

For the Apple G5 Xserve, please read on.

Apple G5 Xserve architecture

Amanda (client and server) is working fine on a 1U Apple Xserve G5 running Yellow Dog Linux 4, attached to an Exabyte VXA-2 Packetloader 1x10 1U via 800mbit Firewire (chg-zd-mtx changer script).

$ cat /etc/yellowdog-release Yellow Dog Linux release 4.0 (Orion)

$ cat /proc/cpuinfo processor : 0 cpu : PPC970FX, altivec supported clock : 2000.000000MHz revision : 3.0

timebase : 33333333 machine : RackMac3,1 motherboard : RackMac3,1 MacRISC4 Power Macintosh detected as : 336 (XServe G5) pmac flags : 00000000 pmac-generation : NewWorld

$ /usr/sbin/amadmin test version build: VERSION="Amanda-2.4.4p3"

     BUILT_DATE="Fri Dec 9 19:18:46 PST 2005"
     BUILT_MACH="Linux andromeda 2.6.10-1.ydl.1g5 #1 Mon Feb 7

10:12:08 MST 2005 ppc64 ppc64 ppc64 GNU/Linux"

     CC="gcc"
     CONFIGURE_COMMAND="'./configure'

'--host=powerpc-yellowdog-linux-gnu' '--build=powerpc-yellowdog-linux-gnu' '--target=ppc64-yellowdog-linux' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/lib64/amanda' '--localstatedir=/var/lib' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--enable-shared' '--with-index-server=localhost' '--with-gnutar-listdir=/var/lib/amanda/gnutar-lists' '--with-smbclient=/usr/bin/smbclient' '--with-amandahosts' '--with-user=amanda' '--with-group=disk' '--with-tmpdir=/var/log/amanda' '--with-gnutar=/bin/tar'" paths: bindir="/usr/bin" sbindir="/usr/sbin"

     libexecdir="/usr/lib64/amanda" mandir="/usr/share/man"
     AMANDA_TMPDIR="/var/log/amanda"
     AMANDA_DBGDIR="/var/log/amanda" CONFIG_DIR="/etc/amanda"
     DEV_PREFIX="/dev/" RDEV_PREFIX="/dev/" DUMP="/sbin/dump"
     RESTORE="/sbin/restore" VDUMP=UNDEF VRESTORE=UNDEF
     XFSDUMP=UNDEF XFSRESTORE=UNDEF VXDUMP=UNDEF VXRESTORE=UNDEF
     SAMBA_CLIENT="/usr/bin/smbclient" GNUTAR="/bin/tar"
     COMPRESS_PATH="/bin/gzip" UNCOMPRESS_PATH="/bin/gzip"
     LPRCMD="/usr/bin/lpr" MAILER="/usr/bin/Mail"
     listed_incr_dir="/var/lib/amanda/gnutar-lists"

defs: DEFAULT_SERVER="localhost" DEFAULT_CONFIG="DailySet1"

     DEFAULT_TAPE_SERVER="localhost"
     DEFAULT_TAPE_DEVICE="/dev/null" HAVE_MMAP HAVE_SYSVSHM
     LOCKING=POSIX_FCNTL SETPGRP_VOID DEBUG_CODE
     AMANDA_DEBUG_DAYS=4 BSD_SECURITY USE_AMANDAHOSTS
     CLIENT_LOGIN="amanda" FORCE_USERID HAVE_GZIP
     COMPRESS_SUFFIX=".gz" COMPRESS_FAST_OPT="--fast"
     COMPRESS_BEST_OPT="--best" UNCOMPRESS_OPT="-dc"

$ rpm -q mtx # default package from Yellow Dog distribution mtx-1.2.18-3

amanda was compiled on the machine using the CentOS 4 (free RedHat Enterprise Linux 4 clone) amanda source RPM after commenting out the two lines that refer to patch1 (amanda-2.4.4p2-pie.patch) in amanda.spec.

The tape device used was: /dev/nst0 The changer device used was: /dev/sg2 With a blocksize of 32kbytes, backups are purged to tape at a sustained average of about 3MByte/sec.