[Box Backup] Unclogging data store

Jonathan Morton boxbackup@fluffy.co.uk
Tue, 22 Nov 2005 18:46:06 +0000

>>>> How do I purge them short of actually deleting them on my  
>>>> computers and waiting for data store to sync up?  Thanks.
>>> If you are hell-bent on getting rid of the files right away, I  
>>> would clear out the store on the server, and restart the backups.  
>>> That will stop the files from backing up the next time, and they  
>>> won't be backed up on the server. That also means that you don't  
>>> have to delete any files on the client machine.
>> What confuses me is the status indicating no deleted files...
> The client might not have deleted the files yet - it may be waiting  
> for a timer to expire, having detected their "supposed to be  
> absent" nature.  I'm running a test now to see whether this is  
> likely to be the case, but it will take quite a while to complete,  
> as it involves overloading an existing backup installation.  In the  
> meantime, just leave the whole thing alone overnight and see what  
> happens.

OK, I think I've identified a bug which you may be running into.  It  
effectively means that your backup client won't get around to  
deleting the files from the backup until space is created on the  
server by some other means.  Here are the symptoms:

- First, the backup client uploads sufficient data to run out of  
allocated space on the server.  In my test example, I attempted to  
backup (among other things) the whole of /usr and /var on my firewall  
machine into a 4GB allocation.  This includes /usr/portage (which has  
several hundred MB of source archives), and /var/cache/squid (which  
could be over 10GB).

- Second, the user sets an Exclude directive on some unimportant yet  
bulky set of data.  I used specific ExcludeDir directives on the two  
bulky (but non-critical) directories mentioned above.

- Third, the client is told to reload configuration.  At this point  
it is supposed to remove the excluded directories from the backup,  
despite the server being full.  (The space will not actually be freed  
until the server subsequently performs housekeeping, but this is not  
presently relevant.)

The problem is that in this third step in my example situation, the  
client will remove /usr/portage but not /var/cache/squid.  This is  
because, when the server is full, the client only examines the top- 
level directories that it is configured to backup, whereas the second  
exclusion is not visible unless at least the second level of the tree  
is traversed.

I imagine that this is also why the OP's media files (which are  
presumably tucked away neatly) were also not removed by the client.

The fix is to force a full directory traversal after SIGHUP,  
regardless of whether the server is full or not.  The present  
behaviour of not uploading new or changed files can remain, as long  
as unnecessary files are reliably removed.

As a temporary workaround, I suggest the OP temporarily increases the  
SOFT limit to be equal to his present HARD limit on the server - the  
hard limit will have to be temporarily raised to compensate.  (NB:  
you don't need any extra physical disk space to do this.)  Then  
restart the client and allow it to run once - it should now delete  
the appropriate media files if configured correctly.  Then, change  
the server limits back to the originals - it will now perform  
housekeeping and free up the appropriate amount of space.  The client  
should then run normally.

from:     Jonathan "Chromatix" Morton
mail:     chromi@chromatix.demon.co.uk
website:  http://www.chromatix.uklinux.net/
tagline:  The key to knowledge is not to rely on people to teach you it.