ZFS: could have been the future of UNIX Filesystems

There was a point a few years ago where Sun could have had the next generation UNIX filesystem. It was in Solaris (and people were excited), there was a port to MacOS X (that was quite exciting for people) and there was a couple of ways to run it on linux (and people were excited). So… instead of the fractured landscape of ext3, HFS+ and (the various variations of) UFS we could have had one file system that was common between all of the commonly used UNIX-like variants. Think of being able to use a file system on a removable drive that isn’t FAT and being able to take it from machine to machine (well… Windows would be a problem, but it always is).

There was some really great work done in OpenSolaris with integration between the file manager and ZFS snapshots (a slider bar to browse the history of a directory, an idea I’ve championed for over a decade now, although the Sun implementation was likely completely independently developed). The integration with the package manager was also completely awesome, crash safe upgrades!

However, all this is pretty much moot. Solaris is used by fewer people than ever, it’s out of OS X and BTRFS is going to take the place that ZFS could have held in the Linux world. So, unfortunately, ZFS is essentially dead. This is a shame…. it could have been something huge.

27 thoughts on “ZFS: could have been the future of UNIX Filesystems

  1. This is one of the saddest and most shameful stories in the tech world.

    I blame Oracle. They’ve worked hard to put the kibosh on Sun’s former open source and community-based efforts. It seems unlikely at this point that Oracle will try to resolve the licensing issues that are keeping ZFS out of Linux.

  2. Oh yeah, it’s nothing to do with Oracle for ZFS not being in MacOS X (AFAIK). I don’t have any knowledge on if it was to do with patents or not… but it certainly seemed like a lost opportunity.

  3. Unfortunately, FreeBSD isn’t a large market and unlikely ever will be. Also, since ZFS is not BSD licensed, I’m sure it gets to be a second class citizen in the eyes of BSD developers. While having it there and well supported is great, and certainly would have added to the “one standard next-gen unix filesystem”, by itself, it’s not going to save ZFS.

  4. I’ve been using ZFS for a couple years now on my FreeNAS 7 (FreeBSD8) box. Pretty fast, efficient, and hands off after you get it setup. I run it on 1.6Ghz Intel Atom D410 with 2GB DDR3. ZFS is still alive and evolving, don’t write it off yet.

  5. I hate to say it, but FreeNAS just doesn’t have that many users. It may be great for some embedded applications, but it’s not the next generation of UNIX filesystems being made here. I can’t go and give a disk that was attached to a FreeNAS box to my parents and have them be able to read it.

    FreeNAS being one of the few places to get ZFS just proves my point, it’s a niche – an oddity in the operating systems world that no matter how good or stable or anything, just isn’t going to get widespread adoption.

  6. Well, you can blame Oracle of course, but I don’t really think that is true in this case. That Sun refused to license ZFS with a GPL license instead of CDDL was, I think, the by far biggest obstacle to Linux adoptioon. And one can discuss the pros and cons of CDDL vs. GPL at length, and the CDDL model may well be the better one, but that is a moot point again, Liux is GPL so if you want into the Linux kernel, you better use GPL.

    That Sun missed this important point was weird. When I was around at Sun (and promoting ZFS with little success, and trying my best to get Sun to GPL it, running the http://www.makezfsgpl.com website) few, besides the MySQL folks that actually understands Open Source business models and licenses, understood this point. The stand taken, instead, was that “If Linux folks want’s ZFS, they should change to CDDL licensing, which is the better model”. And CDDL may well BE the better model, just as Beta-max was the better Video-tape format.

    All this is not to say that Oracle helped much. I don’t think they understand OSS any better than the majority of Sun management did, but in the case of ZFS, the silliness started before Oracle was around to assist in screwing this up.

    /Karlsson

  7. A lot of Sun didn’t understand OSS at all, they looked upon it as some magic license change that was suddenly going to have everyone running “the one true operating system” (which was Solaris). Basically, as Val said ( http://blog.valerieaurora.org/2010/02/13/sleeping-with-the-enemy/ ) there were huge sections of Sun which had never ever heard “Run Solaris on my desktop? Are you fucking kidding me?” (yes, I replaced the dashes with the letters uc so that in future I can actually google it).

    A Sales organisation that saw its task as ensuring that no sales person could ever easily sell something also didn’t help. Also not helping was the complete lack of a “buy” button on any part of sun.com.

    Sun needed to sack probably 10,000 people – it was just so broken by the end that the right 10,000 people would never have been chosen.

  8. @Adam
    “works really well on linux” is a little bit exaggeration.
    Each time I try it with MySQL, I face different kind of problems.
    Yes, they reported in bug tracker.

    And http://zfsonlinux.org/ seems one-man project, which does not give much confidence.

  9. ZFS as an open source project is alive and well at illumos.org. There is still alot of road ahead for the community to do what sun/oracle could not.

  10. Yeah, I love what the Illumos folks are doing – and doing it pretty well I have to say. The downside? It’s on Illumos only, not everywhere else. That’s the big sad part for me.

  11. ZFS was dealt a huge blow with the Solarus debacle but we all know how important a new fs is as we move into the future. Some people didn’t understand how important it is for future computing, so we the computer geeks have taken it over.

    Give it two years and I bet people start talking about it again as the need arises to make their 5 – 1TB USB2 drives into for example, one larger striped and mirrored setup for inexpensive (old hardware), reliable and fast access to their files on their local network. The Linux users will probably drive it into the mainstream long after that. I say long after because most people don’t need that much storage yet and cloud services are solving storage problems for those that don’t mind storing their data on a server.

    Of course, these are just my opinions on how it will play out.

  12. Interesting article. I particularly enjoyed the comments that illustrated it was the choice of CDDL over GPL that prevented the larger takeup of ZFS on linux, and that the choice to do so happened before Oracle. While that softens my opinion on Oracle, they still put the kabosh on Open Solaris which at that point was the only way to get a native ZFS implementation. Whilst we now have Open Indiana and it’s getting patched, I’m not sure we can hope that ZFS on OI will actually proceed past v28; which does sadden me a bit :( fwiw at this point, i’d still much rather run ZFS than BTRFS, which as a filesystem seems to have taken an awfully long time to mature.

  13. ZFS is far from dead.

    I’m using the linux port on 3 production machines , each with 2X 12 drives in raidZ2.

    If set up correctly and used for the right purposes there’s nothing better to date.
    I’ve used hardware raid solutions from areca & lsi & adaptec and in the end zfs has so many good sides to it I just stopped buying hardware raid cards. Yanking out a drive , sticking it back in and it will resilver only if there’s data that could be missing , yank it out , copy a file to the raid , then put it back in , it will just add the missing bits , it takes seconds . Hardware raid would make a stink to no end if for some reason a drive goes offline , then another in the space of 10 minutes.

    Granted , btrfs will , when it’s ready and has raid 5-6 support and a serious integrity check could be on par with what zfs is today. It being a part of the kernel out of the box will be a definite plus as well. To work with zfs on linux safely one needs a drive to boot the os with.

    But btrfs will be a replacement for me only when I know for a fact it does the equivalent of zvols , snapshots , data security and parity , the ability to use Raid 5 and 6 and is just as flexible when it comes to temporary failures.

    Anyone who does admin work knows “shit happens” , the “you should have” pencil pushers who are permanently glued to their chairs can die in a fire where this is concerned. Sometimes a molex cable comes loose , sometimes someone bumps against a rack , sometimes the office boy opens a cradle or pulls out a caddy , sometimes a backplane just dies. ZFS handles these things in a very cool way , – some hardware raid controllers will just wake up the whole neighborhood and mostly fuck things up where you only sporadically loose all your data , granted , but mostly have a whole day work putting everything back the way it was – you just stick the molex back on , stick the caddies back , connect the drives temporarily without a backplane . and things are right as rain again.

  14. Here , read this , I stumbled upon it today, it’s a bit one-sided but that doesn’t make it untrue .

    http://rudd-o.com/linux-and-free-software/ways-in-which-zfs-is-better-than-btrfs

    Also , with this , I’d like to invite people to stick a few drives in their systems and install zfsonlinux . Not the fuse implementation , but the kernel level DKMS one. http://zfsonlinux.org/

    And give it a good whirl. Try all the features , snapshots , sending and revieving over pipes , clones , making zvols and sharing them over iscsi.. Sharing the clones over iscsi… (together with ipxe http://ipxe.org/ )

    As an example , I personally have a Win7 machine with no HDD that boots into 3 clones of a fresh , updated , win7 install . Together with a fanless nvidia video card and a noctua cpu cooler it makes no noise in the living room..
    I could have compressed the Zvols even … If you have kids a compressed clone of an up to date clean install over iscsi is really the way to go tbh. If they transform their computer in a spyware infested disaster like kids are prone to , just wipe the clone and make a new one.

    Most people have a few unused computers lying around.. If you have one with a 64 bit cpu and 4 gigs of ram , make it into your new hobby project… Stick in a few drives and a boot drive for the OS .- I have a working zfs system that boots directly into zfs but wouldn’t recommend it at this time , it’s not easy to set up . – Ubuntu server is a really good option.

    We need competition , I would like to see both ZFS and btrfs become eqals , and be equally developed . Having 2 “new generation” filesystems , which compete against one-another with features , speed and stability is the best anyone could wish for. You can’t have a healthy dollar without a healthy euro .. there is no a vs b .. This isn’t pro wrestling .

    The bottom line of this wall of text is this .. Use zfs … really _use_ it for a while , not just installing it and running a few tests , then take your time to show it off to a few friends.

    Regards. Z

  15. @zeb It’s not about how ZFS is cool, no body have dough on that and author text acknowledge that, problem is adaptation. ZFS is not supported by mainline Linux kernel and as long it won’t, it won’t be adopted widely on Linux community and btrfs as being part of kernel and work out of the box might steal the light. So at the end it’s waste of good file system which might end up being a cult fs like Raiser4 which also suppose to be super awesome.

  16. @Stewart the thing for me is, btrfs is already 5 years old. I don’t know much about it’s internas (i.e. how good the implementation itself is) but from a user PoV it’s still lightyears away from ZFS’ usability. Which is a shame since they had ZFS to copy from (feature wise). I find the handling of btrfs clumsy. Things like the subvolume IDs which I have to provide as an option in the fstab, or if I make a volume consisting of sdb, sdc, sdd, etc. I end up mounting sdb and it implicitly uses the rest of the drives with it – not very intuitive. Or the display of available space with ‘df’. I know they talk about the reasons for the erroneous display in the FAQ, but that doesn’t make it any less clunky. When working with ZFS, even on Linux, everything feels solid. If something goes wrong you get meaningful error messages that tell you what happened and what to do and overall it just works. btrfs feels nothing like that.

  17. Yeah, BTRFS UI isn’t perfect for a whole bunch of things. But the basic way to use it (as a simple file system) seems to work pretty well, and there’s serious talk about shortly having it as the default in some distros. This fact makes it infinitely more easy to use than ZFS because it’s actually remotely accessible to those who aren’t experts.

  18. Well , btrfs still hasn’t taken off as it should have , there are still some pretty huge issues when it comes to the raid 5-6 equivalents. I am starting my 4th year on zfs now and have not regretted it one bit. The doom talk everyone was aiming at ZOL simply did not apply. My second system now runs zfs on freebsd though , no longer linux, but I really can’t complain about my first machine which is hanging in there really well. The bsd one has a more exotic setup, I boot esxi from an ssd and have my 3 X 8 ports sas controllers available to 1 VM with vt-d. That vm runs freebsd and zfs . There is 1 core that this vm can use which is unusable by other vm’s (it can access the other cores too ) that way i’m sure it will never stop working at all. zfs+vmware = win.

    So bottom line , zfs is still delivering and btrfs still isn’t.

    ps: I am really still hoping for btrfs on linux to mature to the point of it being stable and fast soon.

  19. Btrfs still isn’t ready for stable reliable Raid-5 Raid-6 usage.
    ZFS still kicking ass.

  20. Another year and a half later. ZFS is still doing my laundry , ironing included. Btrfs not so much. But it’s getting there , testing new features every few kernels.

Leave a Reply