rdiff-backup-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[rdiff-backup-users] rdiff-backup for "hot" and "cold" backups of home d


From: Louis-Dominique Dubeau
Subject: [rdiff-backup-users] rdiff-backup for "hot" and "cold" backups of home directories
Date: Fri, 30 May 2008 20:59:22 -0400

Hello everyone,

I've used rsync in the past for backups but my needs have changed
recently so I'm evaluating other solutions.  rdiff-backup has a good
chance of being the backup engine I will rely on.  But I have some
questions.

Basically, I need to be able to backup the data from the home
directories of two laptops (mine and my wife's laptops) running Kubuntu
8.04.  The data will be sent to a backup server under my control.  I'm
thinking about devising a system in which there are two types of
backups.  I'm borrowing terminology from the domain of database
administration by calling them "hot" and "cold" backups.  I'm going to
explain how I see thing happening in principle and then how I think
rdiff-backup can handle my needs.

In Principle
------------

1. Hot backups are meant to be performed hourly (or maybe every 2 or 3
hours). The idea behind a hot backup is that it should be non-intrusive
to the user's experience. So the backup can happen in the background
while the user still works.

These backups can be interrupted at any time by the user putting the
laptop to sleep or turning it off. That is, it is acceptable if an
hourly backup is incomplete or even corrupted (e.g. a file not
completely transferred) at the backup software level. I just need to
detect this case and handle it appropriately. The hot backups above are
performed "live", while the data on disk may change, and are performed
on a "best effort" basis. A hot backup could have three outcomes: 

* complete 
* incomplete or corrupted 
* failed (nothing went through) 

Even an incomplete or corrupted hot backup has value.  (By corrupted, I
mean for instance a file which has not completely transferred so it is
cut in half.  The difference with incomplete is that in the incomplete
case all files are intact but not all files have transferred.)

2. A cold backup is performed every day (or every two days, or
whatever). This backup must be performed while the data is not being
changed. This kind of backup is intrusive to the user but the goal is
complete data consistency. A cold backup has two outcomes: 

* successful 
* failed (this includes the cases where the backup is incomplete or
corrupted) 

To be successful, the entire transfer of a cold backup must happen
without a hitch. 


rdiff-backup
------------

1.  Hot backups. I can use rdiff-backup to perform hot backups with the
following understanding.  A backup will have one of three outcomes:

* successful

Everything went through.

* incomplete

´╗┐With rdiff-backup, if a file changes during backup an UpdateError
occurs and this file is not backed up.  In effect, the backup is
"successful" in the sense that it can be used for restoring data but it
is "incomplete" in the sense that the file which changed during the
backup has not been backed up.

* failed: this includes any kind of corruption

If the backup cannot complete for any reason whatsoever the backup has
failed.  Upon future execution of rdiff-backup, it will discover that a
previous backup has failed and perform the necessary cleanup.

[The difference between the principle of the system I thought about and
what rdiff-backup can give me is that I think in principle it would be
possible to recover from an interrupted backup but rdiff-backup does not
currently have that functionality.  I can live with that.]

2. Cold backups.  I just need to use rdiff-backup like I do with hot
backups with the additional constraint that I must perform the backup
from a consistent and unchanging filesystem.  (BTW, I know about the
trick of doing an LVM snapshot.  That's how I do my backups right now
with rsync.)

Am I understanding correctly what rdiff-backup can do for me?

Thanks,
Louis





reply via email to

[Prev in Thread] Current Thread [Next in Thread]