My experience with ZFS on Linux: it's worked pretty well for me
A while back I wrote an entry about the temptation to switch my office
workstation to having my data in ZFS on Linux.
Not that long after I wrote the entry, in early August according to
zpool history', I gave in to the temptation and did just that. I've
been running with everything except the root filesystem and swap in a
ZoL pool ever since, and the short summary is everything has worked
(Because I'm crazy, I did some wrestling with systemd and bind mounts instead of just using symlinks. That was about all of the hassles required to get things going.)
I'm running the development version of ZFS, hot from the git
repository and generally the latest version, mostly because I wanted
all of the bugfixes and improvements from the official release. At
this point, I've repeatedly upgraded kernels (including over several
significant kernel bumps) without any problems with the ZFS modules
being able to rebuild themselves under DKMS. There was one unfortunate
bit where the ZFS modules got broken by a DKMS update because they'd
been doing something that was actually wrong, but that would have
been much less alarming (ie, less of a surprise) if I'd actually
paid attention to various messages and failures during my '
(The issue was also promptly fixed by the ZFS on Linux people, and I fixed it by reverting to the previous version of the Fedora DKMS package.)
My moderately big worry beforehand was memory issues, but I didn't really have any problems. I ran into one interesting issue with kernel memory usage that I'm going to write up as another entry, but it wasn't a problem as such; the short summary is that ZFS was using too little memory instead of too much. However my system did get happier with life when I increased its memory from an already relatively large 16 GB all the way up to 32 GB, and I don't know how ZFS on Linux would do on a machine with only, say, 4 GB of RAM.
The major benefit of using ZoL instead of my previous approach of
ext4 over LVM over MD has been the great reassurance value of ZFS
checksums and '
zpool scrub'. I took advantage of ZFS's support
for L2ARC to safely add a caching SSD to the pool (which is not
currently possible with Fedora's version of LVM),
but I don't know if it's doing me much good. And of course I like
the flexible space usage that ZFS gives me, as I no longer have to
preallocate space to each filesystem and then watch them all to
expand them as needed. I haven't attempted any sort of performance
measurements, so all I say is that my machine doesn't feel noticeably
slower or faster than before.
(I've taken advantage of ZFS snapshots a couple of times in little ways, but so far that's basically just been playing around with them on Linux.)
Thus, on the whole I would say that if you're tempted by the idea of ZoL that you should try it out, and you should definitely try it out from the latest development version. I watch the ZoL git changelogs carefully and the changes that get committed are almost entirely fixes for bugs, with periodic improvements and things from other ZFS implementations. Building RPMs for a DKMS install from the source tree is just as simple as the ZoL site describes it.
(I was hoping to be able to report that my ZoL setup had also survived a Fedora 20 to Fedora 21 upgrade without problems, but I haven't been able to try that for other reasons. I honestly don't expect any problems because the F20 and F21 kernel versions are just about the same. I did do a test upgrade on a virtual machine with the ZoL DKMS packages installed and a ZFS pool configured, and had no problems with it (apart from the systemd crash, which happens with or without ZoL).)
After this positive experience (and after reading about various btrfs things), I expect that my next home machine build will also use ZFS on Linux. ZFS checksums and pool scrubs are enough of a reason to do it all on their own, never mind the other advantages. But that's probably several years in the future at this point, as my current home machine isn't that old by my standards.