> θfs(4)        http://www.9atom.org/magic/man2html/4/%CE%B8fs
> is designed for this.  it serves nfs as well as 9p directly.

I've been meaning to send out an announcement for a while, but this
has been a pretty hectic week with the SIGCSE conference.  Thanks to
Coraid and Brantely Coile, I am releasing an early version of the file
system I've been using for several months now.  It's actually the 7th
in a series named by letters from the Greek alphabet.  Some of it's
general characteristics include:

- Runs in user-space on a CPU server or terminal
- When used with the snap device, supports snapshots that are
compatible with the existing file history utilities
- Taking a snapshot is an O(1) operation
- Serves both 9P and NFSv3, including symbolic links and device nodes
- NFS support has been tested with MacOS, Linux, and FreeBSD
- Serves block storage via AoE
- Serves object storage via an experimental object extension to AoE
- There are rough ports to UNIXish systems via P9P
- With suitable changes to boot/local.c, can be used for a file server
root

Some of the downsides are:

- No lock daemon for NFS
- There's an odd error when unmounting from FreeBSD
- Rather un-parsimonious in its space usage: relatively big block
size, no compression, no de-duping (so far)
- No significant work on performance yet
- Very little in the way of documentation

It's been my primary file server since about October.  So as you might
guess, most of the development has taken place on it.  Naturally,
quite a few bugs have been found and sorted out, but I can't make any
guarantees about stability or prime-time readiness.

The snapshot kernel device is available in contrib/blstuart/snap, and
the file system is in contrib/blstuart/θfs.  It's also included in
9atom, and we're working on getting it included in the installer as an
alternative to kfs and fossil-venti.

If you want to use it outside of 9atom, you'll need a modification to
lib9p that's in P9P and 9atom, but as I recall, not in the Labs'
distribution.  In particular, θfs expects the start and end function
pointers in the Srv structure.

Feel free to use it if you have any interest.  I'll be glad to help
try to sort out any issues you run into.

Thanks,
BLS


Reply via email to