Cluster Filesystem for FreeBSD - any interest?

Bakul Shah bakul at BitBlocks.com
Wed Jun 22 14:45:46 GMT 2005


> Hmm.  I'm not sure if it can or not.  I'll try to explain what I'm 
> dreaming of.  I currently have about 1000 clients needing access to the 
> same pools of data (read/write) all the time.  The data changes 
> constantly.  There is a lot of this data.  We use NFS currently. 

Sounds like you want SGI's clustered xfs....

> I'll be honest here - I'm not a code developer.  I would love to learn 
> some C here, and 'just do it', but filesystems aren't exactly simple, so 
> I'm looking for a group of people that would love to code up something 
> amazing like this - I'll support the developers and hopefully learn 
> something in the process.  My goal personally would be to do anything I 
> could to make the developers work most productively, and do testing.  I 
> can probably provide equipment, and a good testbed for it.

If you are not a seasoned programmer in _some_ language, this
will not be easy at all.

One suggestion is to develop an abstract model of what a CFS
is.  Coming up with a clear detailed precise specification is
not an easy task either but it has to be done and if you can
do it, it will be immensely helpful all around.  You will
truly understand what you are doing, you have a basis for
evaluating design choices, you will have made choices before
writing any code, you can write test cases, writing code is
far easier etc.  etc.  Google for clustered filesystems.
The citeseer site has some papers as well.

A couple FS specific suggestions:
- perhaps clustering can be built on top of existing
  filesystems.  Each machine's local filesystem is considered
  a cache and you use some sort of cache coherency protocol.
  That way you don't have to deal with filesystem allocation
  and layout issues.

- a network wide stable storage `disk' may be easier to do
  given GEOM.  There are atleast N copies of each data block.
  Data may be cached locally at any site but writing data is
  done as a distributed transaction.  So again cache
  coherency is needed.  A network RAID if you will!

But again, let me stress that one must have a clear *model* 
of the problem being solved.  Getting distributed programs
right is very hard even at an abstract model level.
Debugging a distributed program that doesn't have a clear
model is, well, for masochists (nothing against them -- I
bet even they'd rather get their pain some other way:-)


More information about the freebsd-fs mailing list