ZFS vs. OpenZFS

You’ve probably heard us say a mix of “ZFS” and “OpenZFS” and an explanation is long-overdue. Our Senior Analyst clears up what ZFS and OpenZFS refer to and how they differ.

 

 

I admit that we geeks tend to get caught up in the nuts and bolts of enterprise storage and overlook the more obvious questions that users might have. You’ve probably noticed that this blog and the FreeNAS blog refer to “ZFS” and “OpenZFS” seemingly at random when talking about the amazing file system at the heart of FreeNAS and every storage product that iXsystems sells. I will do my best to clarify what exactly these two terms refer to.

From its inception, “ZFS” has referred to the “Zettabyte File System” developed at Sun Microsystems and published under the CDDL Open Source license in 2005 as part of the OpenSolaris operating system. ZFS was revolutionary for completely decoupling the file system from specialized storage hardware and even a specific computer platform. The portable nature and advanced features of ZFS led FreeBSD, Linux, and even Apple developers to start porting ZFS to their operating systems and by 2008, FreeBSD shipped with ZFS in the 7.0 release. For the first time, ZFS empowered users of any budget with enterprise-class scalability and data integrity and management features like checksumming, compression and snapshotting, and those features remain unrivaled at any price to this day. On any ZFS platform, administrators use the zpool and zfs utilities to configure and manage their storage devices and file systems respectively. Both commands employ a user-friendly syntax such as‘zfs create mypool/mydataset’ and I welcome you to watch the appropriately-titled webinar “Why we love ZFS & you should too” or try a completely-graphical ZFS experience with FreeNAS.

Yes, ZFS is really as good as people say it is.

After enjoying nearly a decade of refinement by a growing group of developers around the world, ZFS became the property of database vendor Oracle, which ceased public development of both ZFS and OpenSolaris in 2010. Disappointed but undeterred, a group of OpenSolaris users and developers forked the last public release of OpenSolaris as the Illumos project. While most if not all users of Illumos and its derivatives are ZFS users, the majority of ZFS users are not Illumos users, thanks significantly in part to FreeNAS which uses the FreeBSD operating system. This imbalance plus several successful ZFS Day events led ZFS co-founder Matt Ahrens and a group of ZFS developers to announce the OpenZFS project, which would remain a part of the Illumos code base but would be free to coordinate development efforts and events around their favorite file system. ZFS Day has grown into the two-day OpenZFS Developer Summit and is stronger than ever, a testament to the passion and dedication of the OpenZFS community.

Oracle has steadily continued to develop its own proprietary branch of ZFS and Matt Ahrens points out that over 50% of the original OpenSolaris ZFS code has been replaced in OpenZFS with community contributions. This means that there are, sadly, two politically and technologically-incompatible branches of “ZFS” but fortunately, OpenZFS is orders of magnitude more popular thanks to its open nature. The two projects should be referred to as “Oracle ZFS” and “OpenZFS” to distinguish them as development efforts, but the user still types the ‘zfs’ command, which on FreeBSD relies on the ‘zfs.ko’ kernel module. My impression is that the terms of the CDDL license under which the OpenZFS branch of ZFS is published protects its users from any patent and trademark risks. Hopefully, this all helps you distinguish the OpenZFS project from the ZFS technology.

June, 2019 Update

As readers have correctly pointed out, the role of ZFS on Linux a.k.a. “ZoL” is a hot topic. OpenZFS has been experiencing rapid development on Illumos, FreeBSD, and GNU/Linux in recent years which has led to feature inconsistency and potential feature incompatibility. Recognizing what a disservice OpenZFS fragmentation would be to the community, the OpenZFS Project leadership is discussing how to encourage OpenZFS feature compatibility through various mechanisms such as a month and year that represent a specific set of OpenZFS features that can be expected on multiple platforms. In parallel, iXsystems is upstreaming native FreeBSD support into the ZoL code base to make the ZoL code base truly platform-agnostic. This will help the OpenZFS project reach its goal of unification on a common upstream OpenZFS source code repo for all supported platforms. This is significant, considering that OpenZFS is undergoing testing on NetBSD and Windows and this work will allow FreeNAS 12 to deliver the latest OpenZFS features. Please help test the new OpenZFS kernel module and userland tools on FreeBSD to accelerate this unification!

Michael Dexter, Senior Analyst

14 Comments

  1. Calvin Levy

    This is a well spoken description of ZFS in terms of understanding deployments. Distinguishing “Oracle ZFS” and “OpenZFS” certainly increases my appreciation of the work and effort that FreeNAS/TrueNAS/iXsystems have added to the storage market. May the future of OpenZFS continue to be bright and illuminate the lives of storage and computer professionals!

    Reply
  2. Kevdog

    Am I mistaken but I thought freenas added feature flags to their version of zfs which made their version of zfs incompatible with Linux versions of zfs.

    Reply
    • Caleb

      I’m no ZFS expert. But as I understand it any incompatibility has to do with available versions. FreeBSD tends to use a more recent version of ZFS which can have features that are incompatible with the Linux version.

      That said as long as the the applications make the same calls to ZFS same the incompatibilities are not visible.

      Reply
    • Jeff Bezos

      FreeNAS doesn’t do any ZFS development. FreeBSD might have some feature flags that aren’t yet upstream. Both FeeeBSD and ZoL submit code upstream to OpenZFS.

      Recently the FreeBSD guys announced they will be rebasing their efforts treating ZoL as upstream because that’s where the majority of ZFS development is these days.

      Reply
    • Bill S

      ZFS on Linux and ZFS on Freenas both support feature flags, the problem has been that various new flags have rolled out from different vendors at different times and it’s taken a long time to reach parity between ZoL, Illumos and FreeBSD and it’s vary easy to create a pool on one system that can’t be imported on a system that doesn’t yet support the flags used by the pool. Of course you can always make a pool as an ‘older’ version but it requires effort and care. FreeBSD and ZoL can still import old Solaris 10 zpools, as long as they weren’t upgraded to a newer Oracle ZFS version post openzfs split for example.

      The general goal now from what I understand is to unify the BSD and ZoL codebase into a singular unit reducing the problem and adding tools to make it easier to create portable pools.

      Reply
  3. Johnw

    So on freebsd and linux, both are use the same openzfs?

    Reply
    • Joe

      No they do not. It is an entirely different development branch, however, they try to remain comparable with freeBSD’s openzfs. To my knoledge, FreeNAS does not add anything to OpenZFS.

      Im curious why ZOL (“ZFS on Linux”) was left out of this explanation when the purpose of the article is to differentiate between the different ‘common’ ZFS branches. ZFS on Linux is plenty popular to add to the discussion and is also fully supported on Ubuntu Linux (though it can be installed on any popular distribution such as CentOS, Debian, Arch).

      In short, Ive used ZOL for a very long time and have only recently switched to FreeBSD (not FreeNAS) full time and I am noticing zero difference (my configuration is not that complex). They both just work.

      Reply
    • Marcin

      Both FreeBSD and Linux ZFS implementations originate from and share majority code of OpenZFS which is part of illumos. Both develop they own features hidden behind feature flags but work on integrating them in reference illumos implementation.

      Reply
  4. Seth

    I hope for the day OpenZFS has replaced all the CDDL code with a GPL-compatible and non-patent-encumbered code base. 😀
    ZFS in the Linux kernel would be a dream come true.

    Reply
    • Steve M

      Highly unlikely, unless someone criminally releases the code.
      Stop stealing other’s work, create your own file system.

      Reply
      • Jim Floberts

        You’ve got no clue what yo are talking about, do you…..

        Reply
      • ZFSlover

        Clearly somebody doesn’t know what open-source is. Patent issues could be fixed by filing with OIN. Code base has changed enough (over 50%) that I’m pretty sure they could have their own patent now. That or somehow convince evil Oracle to put the patent for ZFS currently under CDDL license under OIN. But Oracle won’t because that isn’t the type company they are. Microsoft did for everything and no one saw that coming so who knows? But Oracle continues to be a beast that needs to be put down.

        Reply
    • Jeff Bezos

      CDDL provides patent protections that evaporate if the license starts to change. All the code that’s been replaced has been replaced with CDDL code. The project won’t switch licenses.

      Reply
  5. Yatti420

    One of these days Sun Oracle will just let it all out. No worries.

    Reply

Submit a Comment

Your email address will not be published. Required fields are marked *