Open-Source Backups Using Amanda
August 19th, 2004 by Phil Moses in
Those of us who have received the call can feel the tension and nervous tone in the caller's voice when he or she asks, “How good are the backups?” A failed disk, files deleted by mistake, a disgruntled coworker or, worse, a security breach all can be times when you need to depend on backups.
Data probably is the most important element in computing, but in too many cases I see data backups overlooked or approached in such a carefree manner that I shiver. To this end, this article discusses the University of Maryland's Amanda (advanced Maryland automatic disk archiver) backup software, a relatively easy-to-use disk archiver built upon native dump and/or GNU tar tools. I often feel Amanda does not get the respect it deserves in a Linux/UNIX cross-platform environment. I confidently can say, however, that Amanda is a reliable platform for many Linux and UNIX users who are comfortable with a command-line interface.
I began using Amanda approximately three years ago as a backup platform in an educational environment. Working in an educational and research environment provides many challenges when it comes to backups. Many technical professionals and hobbyists face these same challenges related to their own backups. The challenges include the lack of a budget large enough to include backup software, a wide variety of OSes and distributions to back up and limited human resources to accomplish all the backups.
For myself and others, the ideal solution would be to have a central backup server that can accommodate multiple configurations as well as multiple backup tape devices, while requiring a minimum amount of time and resources. Amanda meets these requirements and and many more.
Installing Amanda is a straightforward process. Whether you install from source or a binary package, you need to have a backup user and a backup group. You also need to enable disk access permission to the Amanda user and backup group. The default install from RPM takes care of this step for you, adding Amanda as a user and including Amanda as a member of the disk group.
With a default installation of Amanda, the majority of your server configuration files are placed in subdirectories of /etc/amanda/, for example /etc/amanda/DailySet1. The minimal files to place in /etc/amanda/<amanda_config> are the amanda.conf file and the disklist file. The amanda.conf file holds the configuration settings for that backup run and the disklist file holds a list of disks to be backed up with that configuration. Additional files, which are placed in /var/lib/amanda by default, include index files, log file, current info files as well as additional configuration files. If the administrator prefers, the executable files are normally placed in /usr/sbin and include amdump, the actual Amanda dump program; amcheck, the Amanda pre-dump check utility; amverify, the Amanda utility to verify the integrity of the dumps; amrecover and amrestore, the recovery programs; and various other Amanda utilities.
Once Amanda is installed, amcheck and amdump search the default config directory of /etc/amanda/<configuration> for the configuration files unless it is told to do otherwise. Within /etc/amanda, you need a directory for each configuration to be run. The amanda.conf file may appear somewhat complex, but it is, in fact, rather self explanatory. It contains plenty of documentation, and once read it is easy to interpret and customize for your environment. On both the client and server end, inetd.conf or xinetd.conf must contain entries for Amanda. On the server, you also need to have entries for the index server, amandaidx, and the tape server, amidxtaped (Listing 1). In addition to the xinetd settings, for each host within the Amanda user's home directory, an .amandahosts file is required. This file defines each host and the user from that host who is allowed to access the machine (Listing 2). Particular attention should be paid to the permissions on the Amanda user's home directory and the accompanying files, for obvious security reasons.
If you run a firewall, initially it can be somewhat of a challenge to work out the rules that allow Amanda access. The Amanda server contacts the clients on port 10080. At this point, the Amanda client forks the amandad process and seek random UDP ports on the Amanda server. In turn, the server opens a couple of ports to the client for the data and messages. If indexes are enabled, they also need an additional port open on the server, TCP 10082.
The random ports can be addressed in multiple ways. Beginning with Amanda version 2.4.2, a compile option, --with-portrange=xxx,yyy, directs Amanda to use the given port ranges to connect clients and servers. The selected port range needs to be opened on both the client and server ends of the firewalls. If you plan on running amrecover on the client end, you should plan on opening TCP ports 10083 and 10082 on the server, in addition to UDP port 10080 on both the server and client machines. All to these are in addition to the ports defined with --with-portrange.
Amanda has the ability to work with most tape devices and libraries. The tricks are defining the proper tape type in the amanda.conf file and selecting and defining the proper changer scripts (Listing 3). A single tape drive is by far the least complicated method and simply by defining the type of drive and tape type in the amanda.conf file you are on your way. If a tape library or stacker is available, the configuration is a multiple-step process consisting of defining the tape changer program in amanda.conf (cgh-multi, chng-scsi and chg-zd-mtx are three examples of configurations) and providing a changer file directly within amanda.conf. With the Amanda server running on a Linux platform, you need the sg (scsi -- generic) module compiled into the kernel. You also need the mtx program if you are running any of the mtx-based changer scripts. Amanda seeks a valid header on tapes, and without it amcheck and/or amdump fails. Use the amlabel tool to label the tapes, along with the regular expression defined in the amanda.config file, for example:
/usr/sbin/amlabel DailySet DailySet1
When dealing with multiple computing groups or business departments, you may determine that a separate backup scheme for each group is required. This is accomplished easily using Amanda with separate backup configurations. An example of this would be two backup environments, one for each of two projects being funded independently and therefore requiring that you account for the time and resources spent on each. Environment one is labeled DailySet-BigFunds and environment two is labeled DailySet-LilFunds. For the DailySet-BigFunds project, you have a large tape library that houses ten tapes. DailySet-LilFunds provides you with a single DLT IV drive whose tapes must be changed daily. To keep these two projects separate but housed on the same backup server, you would set up the separate directories in /etc/amanda as DailySet-BigFunds[number of runs] and DailySet-LilFunds[number of runs]. Each of the mentioned directories would contain an amanda.conf file and a disklist of the included filesystems to be backed up. This pattern allows mutually exclusive backups to be performed on separate tape devices. If and when configuration changes must be made, you need to make them only to the relevant files. This is handy in an educational environment where you often have multiple groups with varied hardware and backup media.
Here we are with the software installed, the tape and library devices working and the tapes all labeled, loaded and ready to go. So, who do we call to begin our virtually hands-off backups? None other than crontab, which helps make our backups as hands-off as possible (Listing 4). It is recommended that your crontab contain two entries for each Amanda run that will take place. The first entry should be an amcheck to check the tape drive, tape header and each Amanda client to ensure that the backup operation is carried out as planned. A good idea is to have this mailed back to a system account that is checked often enough so that any problems can be corrected prior to run time. The second entry per job in the crontab should be the amdump command itself, which allows Amanda to begin the backups without user intervention.
Each Amanda client stores helpful information from the crontab runs in /tmp/amanda. Here you can find logs from amandad, selfcheck (the check that runs prior to backup) and sendbackup, all with an accompanying date. Once the backups are completed, the tapes stored and changed and all backup procedures completed, it is not yet time to call it a wrap on the data. Amanda includes a couple of handy programs, amverify and amverifyrun, that verify the media as well as the data from any Amanda run that already has taken place. It is a good idea to run through amverify from time to time (as time allows, if not every time) to verify that your backups actually are going to be recoverable. Because you have dedicated the time and effort to configure and carry out a mostly automated and consistent backup scheme, it only makes sense to verify that all is well. And, you are keeping some of your sets of tapes off site, right?
I must quickly mention the sole visual utility available with Amanda, amplot. amplot has the ability to read an Amanda output file and create a graphical interpretation of your backups, allowing the administrator to determine the efficiency of the Amanda install and configuration and whether any changes need to be made.
Walking barefoot through broken glass is no fun. That being said, I have been in situations where I would rather walk through that broken glass barefoot than have to deal with miserable data recovery. Data recovery with Amanda, however, is both simple and fun. Well, maybe it isn't exactly fun, but a certain amount of satisfaction comes from restoring data. Running amrecover provides you with an easy-to-use command-line interface for browsing files and directories. The interface allows you to browse, add and extract single files or directories. This entails multiple steps, setting the date, setting the disk and setting the host. For example,
/usr/sbin/amrecover -C myconfig1 -t localhost -s localhost
instructs amrecover to use the DailySet1 configuration (-C), the index host of localhost (-t) and the Amanda server of localhost (-s); see Listing 4.
One fear when dealing with backups, especially indexed backups, is what happens when your master index drive fails. If you're recovering from indexes and your master Amanda drive fails, are you out of luck? Not at all. amrestore allows you to restore a full Amanda image without using indexes and without the need for any configurations. amrestore also can be used to do complete filesystem restores. In my experience, amrestore is most useful if you lose your master Amanda drive. You can start with a fresh install and run amrestore, recover the complete image and begin where you left off with all previous indexes and configurations. As a side note, I make a monthly dump of both the Amanda home directory and the Amanda configuration directories to an alternate machine. This allows me to reference the config files should a master drive die and unexpected problems arise.
Amanda is an excellent open-source backup application that is highly configurable to accommodate cross-platform backups. As with all software, it may not be the right application for every environment, but it does fit many backup needs. The following are what I see to be the pros and cons of the Amanda backup software.
Once Amanda is configured and the crontab is set up accordingly, it is possible to have hands-off consistent backups. Amanda can run on almost every UNIX and Linux platform available. It also is able to back up Windows data through Samba shares. In addition, Amanda is highly compatible with most backup media and hardware.
As for the cons, Amanda does not have the ability to span tapes at this time. This means that once each Amanda run is completed, the tape is moved to the bottom of the heap and a new tape is requested. Some users might consider the command-line interface to be a disadvantage. Finally, although it currently can be done, backing up to media other than tape, such as disk arrays, is somewhat difficult with Amanda.
Subscribe now!
Breaking News
| Charter Trades Privacy for Pocketbook | 18 hours 11 min ago |
| SSL Glitch Unlocks Debian, Ubuntu, & Others | 1 day 17 hours ago |
| MySpace Cashes in Spam to the Tune of $234 Million | 1 day 19 hours ago |
| Google Shoos the Trustbusters Away | 2 days 16 hours ago |
Featured Video
Linux Journal Gadget Guy, Shawn Powers, takes us through installing Ubuntu on a machine running Windows with the Wubi installer.
Delicious
Digg
Reddit
Newsvine
Technorati






New documentation
On February 28th, 2006 Anonymous (not verified) says:
Amanda project has seen lots of new developments lately. It also has a cool new wiki with great documentation:
Amanda Wiki
fsbackup
On August 21st, 2004 Anonymous says:
Other very flexible backup tool:
http://freshmeat.net/projects/fsbackup_project/
Re: Open-Source Backups Using Amanda
On August 20th, 2004 Anonymous says:
Another backup tool to consider:
http://flexbackup.sourceforge.net/
up and running in less then 10 minutes
Supprots incremental and differential backups,
a lot of backup methods: tar/star afio cpio ...
so you don't restricted to something specific
On the fly cdrw?
On August 19th, 2004 Anonymous says:
Although I prefer the command line for burning iso images, when it comes to making data backups, I have an easier time with k3b. I recently tried backing up my mail directory, but I have so many emails (maildir, heavy mailing lists), that the k3b app locked up, and I wasn't able to use it. It's probably about 5 GB in size, including sub-directories. I was attempting to span the mail directory across multiple cdrws for backup, but since it crashed...
Also, from what I understand, since it is about 5 GB, I'm assuming I have to make a 5 GB size iso image, split to fit on the 700 MB disks. Can this be done on-the-fly?
In other words, is there a way to backup a directory, say 5 GB in size, so that the directory is compressed to (example, approximate) about 2 GB using tar or other compression utility, then break that 2 GB tarred file into 3 files, 700 MB, 700 MB, 600 MB, and burn those files to 3 CDs, without needing 2 GB hard disk space to temporarily store the files?
2 GB may not sound like much with today's hard drive sizes, but if the above is possible, I'm also planning on backing up entire partitions, using multiple CD disks (I'm sticking with CDR/RW until the larger DVD drives, 50+GB, come out).
Manually creating tar files, then breaking them up to 700 MB each, then organizing the disks, and making sure there is enough room on partitions for all the data, starts turning into such a logistical hassle that it never gets done. I just want to type out a command, write the label for the cd, stick the cd in the drive, hit enter, have the cd eject, put the next cd in, hit enter again, and continue the process until done.
Is this a possibility? Anyone care to share commands used to tar and burn in the same command using pipes? Or should the commands be separated because of the risk of making coasters?
tia.
Re: On the fly cdrw?
On August 20th, 2004 Anonymous says:
Mondo Rescue + Mindi - http://www.microwerks.net/~hugo/ will compress the source(s) and create and burn multiple iso's for CDs spanning the source. Besides the link to Hugo's (the author) site, see "Bootable Restoration CDs with Mondo", Linux Journal, October 2003. Though, it is meant as a bare metal recovery tool.
mondoarchive for Enterprise Linux... Is there such a thing.
On March 15th, 2006 Anonymous (not verified) says:
I've used mondoarchive for other distributions, RH7.3, Rh8.0, RH9.0, but I haven't been able to make it work with enterprise es. I've looked all over the net, but I cannot seem to find information about this, binaries, howto...nothing. Almost, like they were swallowed by the earth.
Thanks.
Re: On the fly cdrw?
On August 20th, 2004 Anonymous says:
cdbkup is an excellent tool for this. It will, on the fly, tar the data and split the tar files up onto individual CD's. It has similar tools to concatenate the files back together and untar them to restore. It only needs 650MB of space in /tmp during the backup procedure (as it works with 1 iso at a time)
Re: On the fly cdrw?
On August 20th, 2004 Anonymous says:
I too have the need to backup up a few gigs of data to CDRW.
I use Mondo Rescue, as you can set it to backup direct to the CDRW (it'll prompt you to change CDs) or if like me you want it done overnight, you can tell it to backup to ISO images of the size you specify, then burn the ISOs manually.
Re: Open-Source Backups Using Amanda
On February 4th, 2005 Anonymous (not verified) says:
Another backup tool to consider:
http://flexbackup.sourceforge.net/
up and running in less then 10 minutes
Supprots incremental and differential backups,
a lot of backup methods: tar/star afio cpio ...
springbreak so you don't restricted to something specific
On the fly DVD should be possible
On August 20th, 2004 Anonymous says:
In other words, is there a way to backup a directory, say 5 GB in size, so that the directory is compressed to (example, approximate) about 2 GB using tar or other compression utility, then break that 2 GB tarred file into 3 files, 700 MB, 700 MB, 600 MB, and burn those files to 3 CDs, without needing 2 GB hard disk space to temporarily store the files?
2 GB may not sound like much with today's hard drive sizes, but if the above is possible, I'm also planning on backing up entire partitions, using multiple CD disks (I'm sticking with CDR/RW until the larger DVD drives, 50+GB, come out).
I have been wondering about a similar situation, and
am beginning to lean towards a DVD solution. The reason is
that some DVD formats (DVD+RW and DVD-RAM) can be made
to act almost like a hard disk. If this works as advertised,
writing a compresed 4G archive without intermediate ISO images is
easy.
This inspired by the writeup at
http://fy.chalmers.se/~appro/linux/DVD+RW/
However, not yet tried this in practice. Should get and installl a DVD drive first (but now DVD writers, even multi-standard ones, are finally begining to be reasonably priced).
But has anyone yet tries this strategy?
I Use Amanda - but am going to move to something else
On August 19th, 2004 langles (not verified) says:
While the only backup tool I've used to date is Amanda, I'm prepared to abandon it for another tool with features more to my liking - still open-source, of course. Others must have felt the same way, given the number of different backup programs out there. In my search, I've come across these tools with no special support for backups across a network:
afio - http://freshmeat.net/projects/afio/
Mondo Rescue + Mindi - http://www.microwerks.net/~hugo/
storebackup - http://sourceforge.net/projects/storebackup/
Taper - http://taper.sourceforge.net
and these tools that do offer some support for backups across a network:
afbackup - http://sourceforge.net/projects/afbackup/
Amanda CD-RW Taper - http://www.tivano.de/software/amanda/
bacula - http://www.bacula.org
BackupPC - http://backuppc.sourceforge.net
Box Backup - http://www.fluffy.co.uk/boxbackup/
DAR - http://dar.linux.free.fr
Drakbackup - http://people.mandrakesoft.com/~sbenedict/
duplicty - http://www.nongnu.org/duplicity/
FauBackup - http://faubackup.sourceforge.net
Hdup - http://miek.nl/projects/hdup16/hdup16.html
rdiff-backup - http://rdiff-backup.stanford.edu/
There's even a few more tools listed at these two pages:
http://www.backupcentral.com/free-backup-software2.html
http://directory.fsf.org/sysadmin/Backup/
This long introduction leads me to the one page I've found so far comparing various open-source backup tools:
http://www.fluffy.co.uk/boxbackup/comparison.html
By the author of Box Backup - which I'm sure reflects his biases.
It would be nice to see more such comparisons as well as hear peoples' experiences with these various tools.
Backup utilities - open source
On June 1st, 2007 turtlewax (not verified) says:
I have used cobian backup for some time on the windows OS with great success. Supports compressed backups, FTP, network, encrypted and password locked archives, full/incremental/scheduled backups, more.
It has been freeware for a long time and now it is open source too.
http://sourceforge.net/projects/cobianbackup
In response to the above, the
On June 22nd, 2005 Mark Ferrel (not verified) says:
In response to the above, the closest free/open-source alternative to Amanda that I've found until now is Bacula. While most of the other systems mostly seem to focus on small backups to harddrive or CD/DVD, Bacula is a real client/server backup system (like Amanda) that caters for users who backup a network of multiple clients/servers to tape (ie it has built-in tape/volume handling, scheduling, ...) or other storage systems. Given the problems Amanda had with backing up Win32 machines (when the Samba team changed a single line of output, my whole backup system fell apart) and handling the spanning of backups to multiple tapes, I've migrated to Bacula (that has 'native' backup agents for Win32 and supports tape spanning like everybody else) and never looked back again.
Re: I Use Amanda - but am going to move to something else
On August 19th, 2004 Anonymous says:
I came across this,
http://www.tpci.com/linux_backup_software.htm
it may interest you.