Backup with Affa and FreeDup

From SME Server
Revision as of 01:08, 29 August 2008 by Mweinber (talk | contribs) (→‎Various Tests: Removed dead link to affa rpm)
Jump to navigation Jump to search

Purpose

There are situations in backup process that Affa (with or without Rsync) can't handle well.

Imagine backing up user files in a company where documents are distributed on regular basis. It is very likely that all of your users will have a copy of the same file in their documents.

Freedup walks through the file trees (directories) you specify. When it finds two identical files on the same device, it hard links them together. In this case two or more files still exist in their respective directories, but only one copy of the data is stored on disk; both directory entries point to the same data blocks.

Rsync partially does this, but it won't search for identical files within your backup. This software does just that.

This document describes the installation and configuration options of the freedup in Affa's post job for the purpose to reclaim free space on your disk occupied by duplicate files.

Installation

The FreeDup package is in the Dag repository, if you have not installed it already you need to do that first: The following command will configure the Dag repository on SME Server. EDIT NOT COMPLETE!


To create an entry in the database for the epel repository we open put the following commands in a terminal window or in a shell window:

/sbin/e-smith/db yum_repositories set epel repository \

Name 'SME Server - epel' \
BaseURL 'http://<http://download.fedoraproject.org/pub/epel/7/$basearch' \
EnableGroups yes \
GPGCheck yes \
Visible no \
status disabled

To enable the changes:

    signal-event yum-modify

Just to be sure, give yum a fresh start:

    yum clean all

After adding it to the database we have to update the changes to the configuration file:

signal-event yum-modify

To install the package issue the following command:

yum install freedup --enablerepo=dag

Usage

To use FreeDup with Affa, first install and setup latest version of Affa. Installation instructions for Affa can be found here.

Then add this

freedup -Tv <insert your directory with backups>

into

/usr/lib/affa/postJob.sh

Command line options are beyond the scope of this document, in my case I only use -T to preserve timestamps and -v for some verbosity.

Various Tests

To see how much your backup occupies, you may find these commands below useful.

Find out real, physical space occupied by your backup:

du -sh <insert your directory with backups>

Find out the space occupied by your backup if you weren't using hardlinks (counts sizes many times if hard linked):

du -shl <insert your directory with backups>

Find out what files are hardlinked:

find <insert your directory with backups> -xdev -type f -links +1 -printf '%i %p\n' | sort -n > links.txt
  Note:
Please be aware that once you launch FreeDup, it can take several hours to complete, depending on the size of backups as it its algorithm is making sure that files that are to be hardlinked are the same.



  Note:
Also, make sure you have the latest version of Affa installed. At the time of writing this document, it was Affa 1.0.0-2.


User experience

In my case I saved ONE THIRD of the backup diskspace on one single backup alone. And what is more, FreeDup found more identical files within backups' trees themselves, hence correcting Rsync and saving me terabytes of space.

Without FreeDup's hardlinks my current off-site backup would be 3.4TB, but instead it is only 270MB. That is 12 backups in total - 3x monthly, 4x weekly and 5x daily backups + the current backup running. - Giskaard (talk | contribs)