On the 20th of May, this year, the first European Open ZFS conference was held in Paris. It was a great event and an absolute privilege for us to participate as presenters and sponsors. The main guest was the co-creator of ZFS, Matt Ahrens.
We started by having Matt present the current state of OpenZFS, future enhancements and features that are on the roadmap. It all began with a nice presentation of the ZFS timeline. How development started with only 2 engineers in 2001 at SUN. It continued later with ZFS released as open-source in 2005 and then ported to FreeBSD, Linux and MacOSX.
Going further to the current state of OpenZFS, one feature that makes it stand apart is the smoother write latency – we can thank Adam Leventhal and Matt Ahrens for that (more details here: The OpenZFS write throttle), the feature-flags to toggle particular features like bookmarks, async dataset destroy, multi vdev crash dump or extensible dataset. Another new feature in OpenZFS is the LZ4 compression. We actually modified the management software in Syneto Storage OS to automatically create all new datasets with LZ4 compression enabled. The performance gains are really noticeable.
The reason why OpenZFS was created in the first place was to reduce code differences between platforms and to create a central repo where everyone can participate and share code. Another goal is to create a test suite that is cross-platform, so people can easily check that new features or enhancements are cross-compatible. It would be really helpful if all the changes would be pushed to a central repo from which all the different distributions would pull/push changes. That’s the future, and we should actively start working on that.
The future of OpenZFS looks very bright and there are some amazing features that are coming out really soon. To mention just a few of them:
- resumable send-receive – the work is almost done.
- support for larger block sizes (1MB+). This is a ground breaker in my opinion. This will allow adoption of ZFS in environments like streaming, video storage and so on.
- compressed ARC – will lower the memory footprint or ARC.
- device removal – this will be interesting to have. One use case would be adding, by mistake, a vdev to a pool (and yes, this really happens in real life)
- persistent L2ARC – I already get excited when I think about saving the time to get the cache hot :)
- filesystem and snapshot count limit – quite interesting for people using ZFS for example in a multi-tenant environment – to avoid letting a user create an unmanageable number of datasets or snapshots.
One thing that I find quite important as a future improvement is the ZFS channel program for richer administration. This will allow binding for different programming languages and allow scripts to execute and manipulate ZFS internals in a single atomic operation. ZFS is not very programmer friendly, as the only way to write administrative tools on top of ZFS is to either parse the output of zfs/zpool commands or use libzfs – which is quite a pain. One way we can make more developers adopt or build tools around ZFS is to provide a programmer friendly environment around it. I can’t see a better messenger for ZFS and its amazing features than the programmers themselves.
What we did to help? We had a presentation about how we use ZFS and what are it’s features on top of which we build our solutions. Dan Vatca, our CTO held the session.
As for myself, I held the technical talk about how we, here at Syneto, continuously deploy a ZFS based storage operating system. This talk was mainly about how we created the build and testing infrastructure, how on every source code commit to Syneto Storage OS, an extensive test suite of over a few thousand tests is triggered. This includes the whole zfs test suite also.
At the end of the conference people gathered together and had pizza and beers while sharing their experiences. It was a great event that we will certainly continue in the future. I really want to thank the organisers Alyseo, Erastor, Delphix, DDR Drive, Hybrid Cluster, High Availability.com and everyone that came to share their experience about ZFS. Thanks Matt for coming by and sharing. I have a feeling that I made new friends.
If you would like to take a look at all the slides and presentations they are available here: Slides&Presentations. Happy ZFS-ing.