I am going to setup Amanda backup into our office’s server to enable network backup to all of our servers located in different geographical area. The idea will be as below:
All servers are running on CentOS 6 64bit with iptables and SELINUX have been turned off.
Install Amanda Server
1. Install amanda packages using yum:
$ yum install -y amanda* |
2. Create the configuration file. I am going to name this backup project is ServerNetBackup. We need to create a directory named by this project and all configuration files for this project will be underneath it:
$ mkdir /etc/amanda/ServerNetBackup |
3. Create the core configuration file, amanda.conf:
$ vim /etc/amanda/ServerNetBackup/amanda.conf |
And paste following line:
org "ServerNetBackup" # Organization name for reports mailto "[email protected]" # Email address to receive reports netusage 10000 Kbps # Bandwidth limit, 10M dumpcycle 1 week # Backup cycle is 7 days runspercycle 7 # Run 7 times every 7 days tapecycle 15 tapes # Dump to 15 different tapes during the cycle tpchanger "chg-disk" # The tape-changer glue script changerfile "/etc/amanda/ServerNetBackup/changer" # The tape-changer file tapedev "file://central_backup/ServerNetBackup/slots" # The no-rewind tape device to be used tapetype HARDDISK # Define the type of tape infofile "/etc/amanda/ServerNetBackup/curinfo" # Database directory logdir "/etc/amanda/ServerNetBackup/logs" # Log directory indexdir "/etc/amanda/ServerNetBackup/index" # Index directory define tapetype HARDDISK { # Define our tape behaviour length 100000 mbytes # Every tape is 100GB in size } amrecover_changer "changer" # Changer for amrecover define dumptype global { # The global dump definition maxdumps 2 # The maximum number of backups run in parallel estimate calcsize # Estimate the backup size before dump holdingdisk yes # Dump to temp disk (holdingdisk) before backup to tape index yes # Generate index. For restoration usage } define dumptype root-tar { # How to dump root's directory global # Include global (as above) program "GNUTAR" # Program name for compress comment "root partitions dumped with tar" compress none # No compress index # Index this dump priority low # Priority level } define dumptype user-tar { # How to dump user's directory root-tar # Include root-tar (as above) comment "user partitions dumped with tar" priority medium # Priority level } define dumptype comp-user-tar { # How to dump & compress user's directory user-tar # Include user-tar (as above) compress client fast # Compress in client side with less CPU (fast) } |
Configure Backup Location
1. Prepare the directory to store all backups:
$ mkdir -p /central_backup/ServerNetBackup/slots |
2. Assign correct permission to user amandabackup for the configuration directory and backup directory:
$ chown amandabackup.disk /central_backup -Rf $ chown amandabackup.disk /etc/amanda/ServerNetBackup -Rf |
3. Login as user amandabackup:
$ su - amandabackup |
4. Create the virtual tape. This is where the backup files will be stored. We will need to create 15 slots as per tapecycle keyword:
$ for n in `seq 1 15`; do mkdir /central_backup/ServerNetBackup/slots/slot${n}; done |
5. We then need to label all slots:
$ for n in `seq 1 15` ; do amlabel ServerNetBackup ServerNetBackup-${n} slot ${n}; done |
4. Create all required directories as defined in the configuration file:
$ mkdir /etc/amanda/ServerNetBackup/curinfo $ mkdir /etc/amanda/ServerNetBackup/logs $ mkdir /etc/amanda/ServerNetBackup/index |
Configure Service and What to Backup
1. We need to define what to backup in a file called disklist. As user amandabackup, create this file:
$ su - amandabackup $ vim /etc/amanda/ServerNetBackup/disklist |
And add following line:
sv101.krispykream.net /home/webby/public_html comp-user-tar gogogo.my-server.org /etc root-tar |
Notes: Make sure the hostname is FQDN and can be resolved to an IP. Add the host entry into /etc/hosts is recomended.
2. Exit from amandabackup user and get back to root user:
$ exit |
3. Enable amanda service in xinetd.d directory:
$ vim /etc/xinetd.d/amanda |
And change following line from “yes” to “no”:
disable = no |
4. Enable on boot and restart xinetd service:
$ chkconfig xinetd on $ service xinetd restart |
5. Check the amanda server whether it is running properly by using following command:
$ netstat -a | grep amanda udp 0 0 *:amanda *:* |
If you see result as above, amanda server is ready to serve!
Install Amanda Backup Client
1. Login to the client’s server and install required package for Amanda using yum:
$ yum install -y amanda amanda-client |
2. As user amandabackup, add following line into /var/lib/amanda/.amandahosts to specify where is Amanda backup server:
$ su - amandabackup $ vim /var/lib/amanda/.amandahosts |
And make sure the value as below:
office.servering.com amandabackup amdump localhost amandabackup amdump localhost.localdomain amandabackup amdump |
3. Exit from user amandabackup and turn to root user:
$ exit |
4. Enable amanda service in xinetd.d directory:
$ vim /etc/xinetd.d/amanda |
And change following line from “yes” to “no”:
disable = no |
5. Enable on boot and start the xinetd service:
$ chkconfig xinetd on $ service xinetd start |
6. Add an entry in /etc/hosts to define backup server IP by adding following line:
125.10.90.90 office.servering.com |
7. In some case, you may need to change the permission of the directory that you want to backup. For example, I need to allow user amandabackup to access directory /home/webby/public_html to create backup:
As root user, change the permission of the directory:
$ chmod 755 /home/webby |
Run the Backup Process
1. Now go back to the Amanda server and check our configuration file as amandabackup user:
$ su - amandabackup
$ amcheck ServerNetBackup |
You should see the output similar to this:
Client check: 2 host checked in 2.070 seconds. 0 problems found. |
2. If no error found, you can start the backup process immediately by running following command:
$ amdump ServerNetBackup |
Or, we can automate this process using cronjob. Run following command as amandabackup user:
$ crontab -e |
And add following line:
45 0 * * 2-6 /usr/sbin/amdump ServerNetBackup |
3. As root user, reload the crond service to activate this job:
$ service crond reload |
If the backup process completed, you should receive an email with backup report. In this email, it will tell you where is the backup location and process summary. I will continue on Amanda restoration process on the next post!
Update: I just updated this post on 5th Feb 2013 to use yum repository instead of package from zmanda.