This blog is about the Google Summer of Code project "ZFS filesystem for FUSE/Linux"

Wednesday, September 12, 2007

Irony

Hi everyone,

I'm finally updating this blog to give you an update.

The ZFS-FUSE wiki and mercurial repositories are now running on a GeoWirxXen VPS, so the long downtimes will be a thing of the past (knock knock). By the way, highly recommended service - those VPSs are good and cheap - excellent experience so far.

At the moment, a new port of ZFS-FUSE to 32-bit PowerPC is being worked on, with the kind help of Thomas Riddle (Sun engineer) and Matt Sealey (Genesi manager) and his developers. A few weeks ago I've also enabled direct I/O, which slowed performance, and I will soon implement async I/O to hopefully get it back.

As you may have noticed, progress on ZFS-FUSE has been slow. These past few months I've been finishing my degree, which has required a lot of time (only one exam left.. tomorrow!) and I've been on vacations.

What's perhaps more interesting is that back in June I was invited to work for Cluster File Systems on the Lustre file system. The idea is that Lustre will be using the DMU portion of the ZFS-FUSE port to Linux as its storage backend.

This means that the talented team of engineers who have pushed Lustre into new levels of scalability will be looking to do the same with the ZFS DMU!Of course, this doesn't necessarily mean that you will see a huge boost in performance in ZFS-FUSE, but I think many improvements are still possible. And now that I've started working for CFS I'm also learning new things by the minute :)

Oh, and expect to see the corruption issue fixed soon (kernel patch might be required, unfortunately).

What's also interesting is that just today Sun, who as you all know created ZFS, has announced that it has acquired CFS. So, if everything goes well and they still decide to keep me... next week I will be a Sun engineer!

Anyway, you may have noticed that I've removed the PayPal links (thanks to everyone who donated!), since I don't think it will make much of a difference anymore.

Well, in the midst of all this, I hope I can still dedicate some time to work on ZFS-FUSE (after all, I am also using it). And of course.. patches are always welcome!

FUSE is a kernel API.I wonder if Kernel Mode Linux http://freshmeat.net/projects/kml/ means the fuse module can easily be adapted to run in-kernel?

Also, I think GPL restrictions on "linking" are mis-understood and are based on the fact that in order to link you need API information which infers a partial derivation from the work being linked to (bringing copyright into play).

FUSE has a been a solution not because it is non-kernel but because it is a license "shim".

An in-kernel license shim would be just as good, so surely we can have ZFS in-kernel as long as it links with a dual-licensed shim instead of a non-dual licensed kernel.

To overcome the problem of the shim being derived from the kernel (and subject to it's license) it is a 2 layer shim. The ZFS layer shim is written first and dual licensed and them the kernel shim is written deriving from the kernel and the first shim, and - license problem solved!

kernel mode linux is just an intermediate step that demonstrates the solution. If you can't see the problem clearly, imagine using kernel-mode-linux to run the fuse module in kernel space and then imagine stripping away bits of fuse and making zfs nearer and nearer to the kernel VFS interface and see when the problems occur.

I'm following your developments with great interest. I'm so desperate to make ZFS my fileserver FS that I'm planning to set up a Xen domU Solaris instance on my big Linux box until one day (soon!) when I can run (and boot) my fileserver off a giant bunch of ZFS-formatted drives. Can't wait for the next update from you.