Differences between revisions 22 and 23
Revision 22 as of 2006-07-02 18:23:07
Size: 1614
Comment:
Revision 23 as of 2006-07-02 18:32:16
Size: 1922
Comment:
Deletions are marked like this. Additions are marked like this.
Line 19: Line 19:
== Available parameters == == Usage ==
Line 21: Line 21:
 * {{{--roots=/root1,/root2}}}
 * {{{--stats}}}
{{{
unionfs [options] root[:root...] mountpoint
The first argument is a colon separated list of directories to merge

general options:
    -o opt,[opt...] mount options
    -h --help print help
    -V --version print version

UnionFS options:
    -o stats show statistics in the file 'stats' under the mountpoint
}}}

Foreword

This is my effort to create a unionfs filesystem implementation which is probably slower but way more flexible than the current in-kernel unionfs solution. Currently it's almost fully usable, the only problem is new file/directory creation which I will fix soon...

I'm open to patches, suggestions, whatever (at radek@podgorny.cz)...

GoogleAd()

Why choose this stuff

  • The filesystem has to be mounted after the roots are mounted when using the standard module. With unionfs-fuse, you can mount the roots later and their contents will appear seamlesly
  • You get caching which speeds things up a lot for free
  • You get nice stats (optional)

Why NOT choose it

  • Compared to kernel-space solution we need lots of useless context switches which makes kernel-only solution clear speed-winner

Usage

unionfs [options] root[:root...] mountpoint
The first argument is a colon separated list of directories to merge

general options:
    -o opt,[opt...]        mount options
    -h   --help            print help
    -V   --version         print version

UnionFS options:
    -o stats               show statistics in the file 'stats' under the mountpoint

TODO

  • Add support for creating directories
  • Add support for choice which roots are read-only and which are not
  • Add cache controls
  • Handle writing to /stats intelligently

GoogleAd()

Download

If you want to follow the development closely, see my experimental mercurial repository at:

My older tinyrcs repository is at:

(tinyrcs is my currently-under-development revision control system) -> ["TinyRCS"]