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/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.