TimeVault

Revision 8 as of 2007-06-28 01:53:03

Clear message

Overview

TimeVault is a simple front-end for making snapshots of a set of directories. Snapshots are a copy of a directory structure or file at a certain point in time. Restore functionality is integrated into Nautilus - previous versions of a file or directory that has a snapshot can be accessed by examining the properties and selecting the 'Previous Versions' tab.

Snapshots are protected from accidental deletion or modification since they are read-only by default. The super-user can delete intermediate snapshots to save space, but files and directories that existed before or after the deletion will still be accessible. Quick Start

After installing the .deb file, there are two steps required to complete installation:

  • You must select a backup directory from System->Administration->Manage Snapshots.

  • You have to log out of and back into GNOME to have the Previous Versions option appear in file properties in Nautilus. Alternately, you can restart Nautilus from the command line: 'nautilus -q'.

What is a Snapshot

A snapshot is a copy of a directory at a certain point in time. Snapshots don't use space for the files that haven't changed but instead simply increment the link count for them. On Linux, when a file is deleted, the link count is decremented, but it isn't actually removed until the link count hits zero.

Only files are hard-linked this way. Directories have to be recreated for technical reasons (since a hard-link is actually the file it points to, you would find yourself in a completely different path if directories were hard-linked). Configuration

To configure TimeVault, go to the System->Administration menu and select 'Manage Snapshots'.

There are four tabs: General, Include, Exclude, and Management. General

  • Enable Automated Snapshots: By default, TimeVault will not automatically take snapshots of your system. Checking this box will tell it to automatically take daily snapshots.

  • Allow users readonly access to snapshots: If this box is not checked, only the superuser (root, or a sudoer) can access the snapshots. If it is, then users will be able to browse snapshots according to their rights. So a user that does not have access to a directory or file will not have access to the snapshot of the directory or file. Note that only read access is granted - snapshots cannot be changed except by the root user (in the Management tab)
  • Snapshot Root Directory: Where to store the snapshots. Ideally, you should pick a directory that is mounted onto another physical drive from the data you are backing up. This is so that, in the case of a hard-disk failure, the backups will remain intact (unless the drive containing the backups fails, in which case the current version of the data remains).

Include

Backup paths are listed here. Every directory that you want to be snapshotted should be added to this list.

Exclude

Paths or patterns to exclude from the snapshots should be listed here

Management

To-Do

Snapshot Backend

The snapshot backend initially utilized was rsnapshot. While rsnapshot is an excellent enterprise-level piece of software, it has significant complexity that would make configuration by a casual or beginning user uncomfortable (as it might someone one who is unaccustomed to rsync command-line parameters and cron files). The plethora of features available in rsnapshot and other snapshot software would also remain unused in such a simple interface, and additional layers of software would have to be built on top of rsnapshot (or any of the other many snapshot solutions available - see below).

So the approach taken in TimeVault is to implement the snapshot mechanism from scratch (as explained in this seminal paper by Mike Rubel).

TimeVault Development

* New snapshot mechanism: TimeVaultRestructure (you should check this page for development information)

Other snapshot solutions include:

  • dirvish
  • glastree
  • pdumpfs
  • rsnapshot

Contributors

Testing and Bug Triage

* KieranHogg

Logo Design

* DaveE

Volunteers

If you are interesting in helping out, please volunteer here under the appropriate category or create one that suites you.

Testing and Bug Triage

Graphics

Documentation

ToDo

  • Make a To-Do list
  • KDE-port: I've done the GUI for KDE port, the code obviously needs a fair few changes but it's on the back boiler for a few weeks. -- KieranHogg


CategorySpec