IT Pro Verdict
A powerful and highly customisable backup program, but best suited for backing up Linux computers rather than Windows
Pros
- +
Can be incorporated into external scripts; Doesn’t miss a backup if you forget to insert the target media one night
Cons
- -
Patchy documentation; Windows support an afterthought
Amanda is a free, open source network file backup system for Linux. While it's primarily designed for backing up Linux and Unix servers, it can also backup Windows and Mac machines on your network if required.
The core of Amanda is the Amanda server, which handles all the backup operations, compression, indexing and configuration tasks. You can run it on any Linux server, as it doesn't cause any conflicts with any other processes, but we recommend running it on a dedicated machine, as that removes any associated processing loads from the client machines and prevents the backup from negatively affecting the client's performance. For this review, we based our server on Ubuntu server 14.04 LTS and Amanda version 3.3.3.
Amanda was created in the days when tape backups were ubiquitous, so it can handle physical tape drives if your business uses them. Combined with Linux utilities such as mtx, it works well with most SCSI, SAS and Fiber Channel tape libraries and drives. However, the majority of businesses back up to hard disks these days, so Amanda also supports the use of a file-based virtual tape system. The virtual tape system works nicely with removable hard drives, which have become a popular alternative to tape arrays as they can easily be taken off-site for secure storage in case of fire or theft.
Server setup
Configuration of Amanda is a little different to most commercial server backup products. There's no GUI and all configuration is done via text-based config files. Although this sounds complicated, it means all of your configuration settings are human-readable and you can easily and quickly check which options have been set. This is especially important if multiple people are responsible for backups.
Dedicated config files let you define exactly how each client is backed up
Installation of Amanda was easy, as it's included in the standard Ubuntu repositories. Just log in and run "sudo apt-get install amanda-server libxml-simple-perl" to install the server and its dependencies. The software is, by default, installed and set up to run as the system backup user, sensibly called backup. Unfortunately, Ubuntu has recently changed the default settings for this user, so to make the software work you have to run "sudo chsh -s /bin/bash backup". This command will also need to be run once on any backup clients running Ubuntu. However, this is an Ubuntu-specific issue.
You can create multiple backup jobs for Amanda, each with its own complete config. You can set it up to fully back up your target every time, or you can instead use differential and incremental backups, which allow you to back up only files that have changed since the last backup. Each backup jobs' configuration files go into their own directory below /etc/amanda. For example, we called our backup ReviewConf, so its configuration files were located in /etc/amanda/ReviewConf.
There are two main config files for each job: amanda.conf and disklist. The amanda.conf file contains all the global settings and the definitions for the backup types and target devices. Different backup types can be configured for different types of system. This allows you to set the authentication, compression and backup method to match the exact requirements of differing client systems, or even apply specific settings to different folders on each client. A huge number of configuration options are available, including authentication method, compression levels and which packaging program -- such as tar or zip -- you'd like Amanda to use to compress backed up files.
The disklist file lists all the devices and folders you want backed up and which backup type to use for them, with one entry defined on each line. When listing folder paths for Windows clients, the entry must be encased in quotation marks, and you have to use a forward slash rather than a backslash. All paths are case sensitive, helping to avoid confusion between similarly named paths.
Amanda's disklist tracks all of your different backup paths
One of Amanda's most useful features is that it doesn't just dump the backups straight to the virtual tape folder. Instead, it stores the backup archives in a holding folder on the Amanda server, and then dumps them to the virtual tapes. This means that if you forget to connect your external backup drive one night, your data will still be backed up. The backed up files will be stored on the holding disk until you can connect the target drive, when it will flush them to it. This means that you're far less likely to suffer failed backups than you are with systems that save their backups directly to a removable device.
Client configuration
All client machines, including the backup server if you want it to back up its own configuration, will need to have the Amanda client installed. On our Ubuntu Linux client, this was just a matter of running "sudo apt-get install amanda-client", but for a Windows 10 PC things get a little more complicated. Recent changes to how users are set up on Windows are not reflected in Amanda's current documentation, so we recommend following the instructions below.
The Windows client installer requires some reconfiguring in order to work properly with Ubuntu, due to an incompatibility in the usernames chosen. Ubuntu runs Amanda as the user backup' but the Windows client is set to use amandabackup' as its user. However, this can be corrected thus:
- Install the Windows client as normal. Set any password you wish for the amandabackup user
- Delete the amandabackup user completely from Windows. Do not rename it as this will not work properly under recent versions of Windows
- Create a new user called backup and make that user an administrator. Note down the password you set for it.
- Change the log-on account for the ZWC service to the account you just created
- Change the following registry values to the new backup username
HKEY_LOCAL_MACHINE\SOFTWARE\Zmanda\ZWC\1.0\Install\BackupUser
HKEY_LOCAL_MACHINE\SOFTWARE\Zmanda\ZWC\1.0\Install\RecoveryUser
Now restart the ZWC Service and you should be able to run your backups.
Finally, you'll have to set up your /var/backups/.amandahosts files. On the server, that file lists all the client machines and their permissions, while on the client machines it lists the Amanda server name or IP address. This gives you granular control over the security of your backup system by allowing you to define exactly which machines are can see and interact with one another.
Scheduling and Recovery
As all backup operations are controlled by command line utilities, you can either run your backups by hand or schedule them to run whenever you like. Amanda has no built-in scheduler of its own, and instead uses the system scheduler, cron. This allows for very fine control of backup operations as you can schedule it to the minute, so as to run in the correct time slot among your other regular maintenance commands. If you want it to, it can also email you a report after each job.
Recovering files to your Linux backup clients can be performed directly on the client computer itself, or on the server. You can recover anything from one file to the entire contents of your chosen backup archive, and they'll be extracted to the directory you're in when you run the command. If you have a seven-day daily backup rotation strategy, you can choose to recover files from any backup taken over the past seven days.
A simple command line tool makes recovering backed up files a quick and easy process
If you want to overwrite the existing location of the files on the client machine, you just run the command from your system root. For Windows clients, however, you have to recover the backup archive on the server then transfer it to the Windows machine to extract your files. Windows backups are created in zip format, so they're easy to open on a Windows PC once you've recovered them.
To make recovery easier for your users, a number of third-party tools have been developed to connect to Amanda, including Amanda Restore GUI, which provides a browsable file tree and point and click front end to the 'amrecover' command. Meanwhile, Amanda's commercial sister project, Zmanda, provides a fully-graphical Management Console interface.
Conclusions
Amanda is an extremely capable file-level backup tool that can be customized to your exact requirements. Once you get over the lack of a GUI, the command line controls are simple and the level of control you can wield over your backups is exceptional. As it can be called from within your own scripts, Amanda can be incorporated into your own custom backup scheme, no matter how complicated your requirements.
We were disappointed by the Windows client, which is something of an after-thought, and Amanda's documentation leaves a lot to be desired in some places. Despite these flaws, Amanda is an ideal backup system for a network that consists primarily of Linux or Unix machines, from small business Linux file, email and storage servers, to huge corporate web hosting systems.
Verdict
A powerful and highly customisable backup program, but best suited for backing up Linux computers rather than Windows
System requirements:
Linux server
Appropriate storage capacity
K.G. is a journalist, technical writer, developer and software preservationist. Alongside the accumulated experience of over 20 years spent working with Linux and other free/libre/open source software, their areas of special interest include IT security, anti-malware and antivirus, VPNs, identity and password management, SaaS infrastructure and its alternatives.
You can get in touch with K.G. via email at reviews@kgorphanides.com.