Feather is what I currently use to do my backups and offline archives, I can access any version of the backups, and since they are all burned on write once media I do not throw away old versions.
each new backup does not store data that has been stored in a previous backup (or stored in the archives), so the amount of new media required for each backup is much less than the total size of data being backed up.
once a backup is complete and at least one copy of each block exists on offline media I only have about 200 bytes of data to make sure is available, the base tag of the whole backup. This is also the size of any sub-tree in the backup, so an old 1G log file can be moved offline and a reference to it kept in a 200 byte file.
This also has been useful as a cheap version control system, since only new data is actually saved, it does not help for concurrent updates, but diff can be used for that. If full version control is needed, this does not do that.
The name of the project came from an old joke, there are plenty of things you can do to files, but you can't tar and feather them, well now you can (but it doesn't lead to very much redundancy, so don't do it yet)
$ tar -f - / | feather
The Freenet Project talks about the non-redundancy properties of their data store, so I extended the idea to permanent storage, and dropped the anonymous P2P part (at least for now).
The file format does not match up exactly with the one used on Freenet, but it is based on it.
My PGP key is listed in my contact information.
postgresql database schema description
quoted from INSTALL in the source package:
** needed stuff:
Gentoo packages:
>=dev-perl/DBD-SQLite-1.09 (1.09)
>=dev-lang/perl-5.8 (5.8.6-r5)
app-cdr/cdrtools (cdrtools-ossdvd-2.01)
dev-perl/libwww-perl (5.800)
cpan: Mcrypt (2.4.8.2)
cpan: Digest-SHA2 (1.1.0)
** To install:
install the code
$ make PREFIX=/usr/local
$ make PREFIX=/usr/local install
create yourself a configuration file, for example
-- BEG ~/.feather.conf --
# feather client setup
client=Service_Local
client.index=Index_SQLite
client.index.dsn=dbi:SQLite:/var/spool/feather/index.db
client.index.volume_sets=2
client.index.volume_sets.1=onsite
client.index.volume_sets.2=offsite
client.store=Store_Files
client.store.dir=/var/spool/feather/
client.store.min_free=10000000
client.store.space_want=1000000
-- END ~/.feather.conf --
make sure the directories named in the configuration file exist
and finally initialize the database tables
$ feather --create-tables client.index
** If perl is not at /usr/bin/perl
there are three "#!/usr/bin/perl -w" lines, "translate", "src/feather",
"src/featherd.fcgi", so those would need to be changed.
GPL
The things that I plan to do to this as time goes on, in rough order of priority...
Good luck, I have been able to use it, but that is no guarantee that you will be able to.
I can try to offer help via email <sarah_happy at fastmail dot fm> but don't expect a quick response, some day there will be a mailing list.