[OpenAFS-devel] What is needed to build an AFS fileserver on top of BTRFS?

David Howells dhowells@redhat.com
Tue, 17 Dec 2013 16:53:16 +0000


It has occurred to me and others that something like BTRFS could be a good fit
to build an AFS fileserver directly on top of.  The question is what facilities
would be needed from BTRFS to make this work?

So I thought I'd kick off a shopping list;-)

 (1) 64-bit data version numbers that increase monotonically with each write.

     Yes, this is likely to cause some performance degredation as it introduces
     an ordering over data writes and metadata writes to a file.  Maybe writes
     can be batched to improve performance?

 (2) Storage for ACLs and AFS UIDs.  Having shareable ACLs might also be useful.

     Xattrs would likely do for this.

 (3) The ability to snapshot a filesystem to make backups and for pushing to
     read-only volume servers.

 (4) A 32-bit vnode number and 32-bit vnode uniquifier/generation number.

     These don't necessarily have to be stored by BTRFS directly but could
     instead be in a separate database file that gets snapshotted also.

 (5) The ability to set the vnode number, vnode uniquifier and data version
     number to specific values.  Necessary to clone volumes and restore
     volume dumps.

David