[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [rdiff-backup-users] Question about restoration procedure
From: |
Andrew Ferguson |
Subject: |
Re: [rdiff-backup-users] Question about restoration procedure |
Date: |
Mon, 29 Sep 2008 16:04:46 -0400 |
On Sep 16, 2008, at 12:19 PM, Pedro DeRose wrote:
So if restoration is based entirely on increments, how does rdiff-
backup know backup/a was created on 1970-01-01 when there's no
increment for that date? I've looked at the files in rdiff-backup-
data, and the only thing I can find that ties backup/a to 1970-01-01
is the files statistics. Does restoration use that to find out when
files are created? If not, what does it do?
Hi Pedro,
Sorry for taking so long to answer your question.
Rdiff-backup uses the mirror_metadata files as a history of the
repository. The mirror_metadata file for 1970-01-01 contains an entry
for backup/a, which is how rdiff-backup knows when files are created.
The mirror_metadata file is the key to rdiff-backup's process: it
stores all the the information about all files in the repository, and
is how rdiff-backup is able to preserve FS-defined metadata (eg, HFS+
resource forks, permissions, etc.) across platforms and users.
When asked to restore a time T, rdiff-backup first determines how the
mirror_metadata (MM) file looked at that time. To do this, it first
first checks if there is a 'snapshot' of the MM at time T. A snapshot
is a complete dump of the mirror_metadata at that time (all non-zero
snapshots and diffs are gzip'd to conserve space, although this is
configurable). If there is not a snapshot at time T, then it finds the
earliest snapshot in the range (T, now]. There is always a snapshot at
the most recent backup. After finding the earliest snapshot, it
applies the reverse-diff files which bring the MM file from that time
back to time T. Rdiff-backup stores a new snapshot after every 10
increments, both as a disaster prevention and to try and limit the
amount of time needed to restore very old increments.
The file_statistics file is mostly for the curious user and can be
read by other programs. At the moment, rdiff-backup does nothing with
it except write it. This behavior can be disabled with the --no-file-
statistics option.
You may also wish to read the dated, but still applicable, page 'rdiff-
backup file format' -- http://www.nongnu.org/rdiff-backup/
format.html It has a useful overview, but does not go into all
details.
best,
Andrew