As a mere operator, I've been fascinated by ZFS ever since I first heard of it 15+ years ago. It seems so elegant, like it really is the last generalist filesystem one would ever need. Performant, reliable, fundamentals easy to comprehend. I've never tried managing LVM configs because zpools and raidz are just so damned easy. Native encryption. Datasets can be as simple or as complicated as you need them to be. send/recv dataset syncing at the block level vs having to decrypt and sync files individually.
A lot of this goes over my head as someone who isn't familiar with filesystem internals, but I appreciate the effort and the homage to a great tool.
> Native encryption.
I think maybe that's the one feature that's iffy? Theoretically great but bad history of bugs. (Unfortunately)
I've been using encrypted datasets for years without problems. I don't used `send` and `receive` for backups though.
So many really brilliant people keep saying this, so I don't doubt that it's true. Can you explain to an ordinary user why ZFS isn't everywhere? It seems to be a marvel, yet ext4 lives on.
Everyone has mentioned the license, which is the reason ZFS isn't everywhere. I just wanted to add: Don't let the license scare you away. The CDDL is actually a nice compromise between copyleft (GPL) and copyfree (BSD). The CDDL is essentially the same as GPL except the GPL applies to everything it touches (include a single GPL *.c file in your project and now your entire project is subject to the GPL). Whereas the CDDL only applies to the CDDL-licensed files themselves. So you can include ZFS in your project without making your entire project subject to the CDDL.
The issue is, the GPL wants to spread to everything it touches (including the CDDL-licensed ZFS files), which would make the ZFS files subject to both the GPL and the CDDL. But the CDDL and the GPL are incompatible, which is why Linux can't include ZFS whereas more permissively licensed projects like the BSDs can.
So it's an unfortunate situation, but ZFS' license is not "bad". It's just the GPL and the CDDL are incompatible.
Because ZFS is complicated to use and isn’t necessary for most workloads.
The licensing issues don’t help. Consider that most Linux machines are in commercial settings (Google runs more of them than all individuals combined) and they don’t need Oracle on their backs.
> Because ZFS is complicated to use
There is nothing complicated about having zfs be your filesystem. You can use its extra features like snapshots, send/receive, etc, but only if you wanted to. Otherwise it's just a filesystem, there is nothing to use as such, so nothing complicated.
> and isn’t necessary for most workloads.
Not sure what that means. What workload wouldn't benefit from a reliable filesystem?
The fact that ZFS isn’t massively popular after close to 30 years, and after nearly 20 years of availability via OSS, suggests that the benefits aren’t really that meaningful to most users.
Others have answered this: licensing
Linux is the most common platform and many Linux distributions have an issue with license compatibility (or perceived one), which hinders adoption.
I agree partially. In the age of cheap backups and cloud storage, having super-high-integrity filesystems with easy RAID is more of a niche, so the need for ZFS on desktop and app servers is low. ZFS is fine as a general purpose filesystem, too.
In the end, I think it's momentum and licensing. AFAICT btrfs only exists because ZFS can't be shipped in Linux kernel. Defaults are insanely powerful, and ext4/xfs is good enough for a lot of use cases. If ZFS were BSD or GPL licensed, I think every Linux distro would ship with it as an option, if not a default.
I would say (in no particular order) that the CDDL license is not innocent, ext4 is good enough for many usages, cost ? ZFS is RAM hungry ... but ZFS is well present where it means most (NASes , Proxmox , backups to tell some)
Primarily licensing, IMO. Its license is incompatible with inclusion in the Linux kernel. Ubuntu ships with native support for it anyway; I guess they're not worried about legal issues. It's completely functional in Linux, you just have to take an extra step to install it, which is enough to keep it from mass non-techie adoption.
Totally worth it for NAS. I think there are more systems that utilize its advanced dataset features in the BSD world.
Thanks, that's exactly the reader I'd like to reach, and you're not the first to say it goes over your head. Honestly, I'm still trying to figure out who it doesn't go over the head of. Matt Ahrens, maybe? ^^ Next is a "start here" route: one plain question per room, answered before any code. Copy-on-write and snapshots are probably the best rooms to start with today.