The potential risk to ZFS created by the shift in its userbase

January 28, 2019

The obvious conclusion we can draw from FreeBSD ZFS's shift to being based on ZFS on Linux is that the center of gravity of open source ZFS development has shifted to ZFS on Linux. FreeBSD ZFS is shifting its upstream because ZFS on Linux is increasingly where new development happens. A more imprecise and deeper conclusion is that in some sense, the ZFS userbase as a whole is increasingly shifting to Linux.

(It may be that the total numbers of people using ZFS on FreeBSD and Illumos is higher than the people using ZFS on Linux. But if so, the users of FreeBSD and Illumos ZFS don't seem to drive development in the way that happens with ZFS on Linux. There are many possible explanations for this, of course, because there are many factors involved.)

Unfortunately, I think that this shift creates risk due to a consequence of ZFS on Linux not being GPL-compatible, which is that working with the Linux kernel's ever-changing API could become sufficiently much of a problem that ZFS on Linux development could end up coming to a halt. If ZFS as a whole is increasingly dependent on ZFS on Linux development and ZFS on Linux development is partly a hostage to the not particularly friendly views of Linux kernel developers, a problem there affects not just ZFS on Linux but everyone.

At least some of the users of ZFS on Linux are OS-agnostic and are using Linux because they feel it is their best overall choice (that's certainly our view for our new fileservers). If ZoL ground to a halt and stopped being viable, they'd switch over to other OSes (FreeBSD for us). But the question there is whether they'd bring the development resources with them, so that people would do and fund more ZFS development on non-Linux platforms, or if some of the work that is currently being done to ZoL would basically just evaporate.

(One of the things I wonder about is if ZFS on Linux's existence outside the kernel has helped drive development of it. If you're interested in a new ZoL feature, you can develop or fund it on your own schedule, then probably deploy it even on old Linux kernels such as those found in the various 'long term support' Linuxes (because ZoL as a whole is careful to support them). In FreeBSD and Illumos, I think you're much more locked to the overall kernel version and thus the OS version; if you fund a new ZFS feature, you could wind up needing to deploy a whole new OS release to get what you want. If nothing else, this is a longer deployment cycle.)

Given this risk, I definitely hope that people keep doing ZFS work (and funding it) outside of ZFS on Linux. But unfortunately I'm not sure how likely that is. It's quite possible that there are plenty of other people like us, making a pragmatic choice that ZoL is currently good enough and means we can use Linux instead of having to build out and maintain another OS.

(Illumos is not viable for us today for various reasons. FreeBSD might have been, but we didn't try to evaluate it since Linux worked well enough and we already run lots of other Linux machines.)

Comments on this page:

By Captain Nemo at 2019-01-28 11:37:58:

"One of the things I wonder about is if ZFS on Linux's existence outside the kernel has helped drive development of it."

I don't know. I think XFS is so active because it's in Linux. It would have probably died 15 years ago if it were not in Linux.

By cks at 2019-01-28 12:08:33:

I see a difference between being available on Linux and being integrated into the main kernel source. XFS has unquestionably benefitted from being available on Linux ('in Linux' in one sense), but it might not have needed to be in the main kernel source to achieve much of that. Certainly XFS users on, say, RHEL/CentOS, generally aren't able to take advantage of the latest features being added to XFS, because to get them you have to use an entire current kernel (or painfully backport things).

The same is true of ZFS on FreeBSD and Illumos; you generally can't get a new version of ZFS with new features unless you take the entire kernel with it. And with Illumos and FreeBSD, you can't just take the kernel, you generally have to take a whole new distribution update (if only to get the new versions of the ZFS userland tools, which are tightly coupled to the kernel side of ZFS).

Written on 28 January 2019.
« How to handle Unicode character decoding errors depends on your goals
Go 2 Generics: some features of contracts that I like »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Mon Jan 28 00:33:54 2019
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.