A sort-of distributed filesystem

Ivan Voras ivoras at fer.hr
Wed Jan 4 16:22:40 PST 2006

I've threatened several times to make a distributed filesystem (or 
something like it) using FUSE, so I found the time over the holiday and 
did it.


This is a FUSE (userland) filesystem that propagates write requests to a 
remote daemon, while implementing read (and fstat and the like) requests 
locally. In short, this implements single-writer-multiple-readers 
scenario, where on one machine the filesystem is both readable and 
writeable and on multiple others it's only readable. (Actually, it's 
also writeable there, but the changes are not propagated). It's not 
a complete new filesystem but acts on existing filesystems, like an 
overlay / stacked filesystem (it's completely independant of the underlying 
filesystem type, but it's not tested on msdosfs :) ). The idea is that 
this could be used for hot-backups, load balancing, etc.

This is only a proof of concept implementation, undertested and possibly 
with several bugs (I noticed late that timestamps are not always correctly 
propagated but will look into it tomorrow). To make it faster and possibly 
more robust for general usage it would have to be reimplemented in kernel.

It's developed and tested on FreeBSD 6-stable and is currently not 
very portable to other operating systems (except 7-current and up). FUSE 
libraries and kernel module are required for operation. Don't forget to 
load the fuse.ko module.

More information is provided in the README file so read it before trying 
to use it.

If anyone wants to contact me off-list, please use the address in the 
README file.

Preserve wildlife -- pickle a squirrel today!

More information about the freebsd-current mailing list