Discovering XenFS

I just discovered a developement project parallel to Xen called XenFS.

Developed by Mark Williamson this aims to be an underlying reliable architecture for file sharing among Xen domains.
The planned features are:

  • Super fast coherent filesytem sharing between Xen domains.
  • Shared buffer cache functionality for improved sharing performance and reduced memory footprint.
  • Application level interdomain memory sharing using standard mmap API.
  • Copy-on-write filesystem functionality enabling multiple domains to share a common base filesystem. This will be supported by CoW mechanisms at the memory level.

Mark was kindly enough to give some more details about it:

I’m hoping to get XenFS working fully over the next couple of years, all (with luck) the next few months will see some reasonably usable functionality.

The basic usage model for XenFS is “NFS but better”. Running in a tightly-coupled virtualisation environments gives us loads of opportunities for optimisation that NFS just doesn’t allow. We want to enable things like efficiently sharing data between VMs, running from a XenFS root filesystem, etc. The interdomain memory sharing is a neat party trick that falls out “for free” as a result of my implementation.

Other stuff that’s interesting includes how to handle live-migration: it’ll require a certain amount of cunningness but I think a correctly configured XenFS domain should actually show better migration performance.

Right now I’m working on some other stuff and thinking about a new control plane to fit in the the XenBus. Once that’s done, I’ll get working on the core FS and things should really start moving again.