Another BackupPC Fuse filesystem
Pieter Wuille <[email protected]>
| Newsgroups | gmane.comp.sysutils.backup.backuppc.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello BackupPC devs,
i've already sent a mail to the users list about this as well, but since
i see there's been discussion about it here too, i'll mention it here also.
I've been rewriting (allmost all) parts of Stephen Day's fuse filesystem, to
add some features and improve performance. You can find the latest version
here:
https://svn.ulyssis.org/repos/sipa/backuppc-fuse/backuppcfs.pl
Some changes:
* statefulness
* The directory tree is internally cached, which speeds up browsing
significantly. It also allows a more dynamic approach to the
structure (merging of shares, see further), and re-using dirattrib
data (not re-reading it for every file in the same directory).
Directory entries in this cache will expire after a certain amount of
time, or when errors occur or non-existing entries are requested (cd'ing
into a directory that doesn't exist yet in the cache works)
* File handles are remembered together with their file position,
and reused. This means sequential reads are very fast.
As an answer to Jon Craig's mail on Jan 29th: the FUSE documentation
states that there will be one "release" call per "open" call, so it
is very simple to keep track of the amount of open files, and so far
tests of slightly contrived situations involving multiple processes
reading from the same file at the same time, show that indeed all
file descriptors are closed at the right time.
* support for character devices/block devices/symlinks/hardlinks
* although the linkcount of hardlinked files is still shown as 1
* support for XferMethods that don't set filetype bits in the mode (like tar)
* tested for tar, rsync and rsyncd
* share merging
* all shares for a given host/archive are merged into a single directory
structure. Eg. the contents of a '/' share will be shown directly under
<mountpoint>/<host>/<archivenum>/, while the contents of a '/usr/local'
share will be found onder <mp>/<host>/<archivenum>/usr/local.
(Stephen Day's version didn't seem to support /'es inside sharenames -
except for '/' itself). In case directory names collide, they will be
merged too (eg. having a '/', a '/usr' and '/usr/local' share will work
as expected).
* support for empty files
* correct showing of incremental backups
* daemonization (though that suppresses error output, use -f to keep it in
forground)
* correct linkcount for directories (2 + # of subdirs)
* a latest/oldest symlink to first/last backup for a given host - idea taken
from Alex Harrington's version
* some command-line options
After some tests/bugfixes and suggestions from Jeffrey on the users list, i
think it is pretty stable and usable now. I'd appreciate it if it could be
tested in more setups (eg. smb shares, strange share/hostnames, other backuppc
versions (only tested on 3.1), non-linux systems, ...). Of course, bug reports,
questions, suggestions or feature requests are welcome.
--
Pieter
------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises
looking to deploy the next generation of Solaris that includes the latest
innovations from Sun and the OpenSource community. Download a copy and
enjoy capabilities such as Networking, Storage and Virtualization.
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
BackupPC-devel mailing list
[email protected]
List: https://lists.sourceforge.net/lists/listinfo/backuppc-devel
Wiki: http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/