1000/1000
Hot
Most Recent
The history and implementations of ZFS covers the development of the ZFS file system. ZFS began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris - including ZFS - were published under an open source license as OpenSolaris for around 5 years from 2005, before being placed under a closed source license when Oracle Corporation acquired Sun in 2009/2010. During 2005 - 2010, the open source version of ZFS was ported to Linux, Mac OS X (continued as MacZFS) and FreeBSD. In 2010, the illumos project forked a recent version of OpenSolaris, to continue its development as an open source project, including ZFS. In 2013 the co-ordination of open source ZFS moved to an umbrella organization, OpenZFS, which allowed any person or organization that wished to use the open source version of ZFS, to collaborate in developing and maintaining a single common version of ZFS. illumos remains very closely involved with OpenZFS. As of 2018, there are two main implementations of ZFS, both quite similar: Oracle's implementation, which is closed source and part of Solaris, and OpenZFS, which is widely used to provide ZFS on many unix-like operating systems.
In 1987, AT&T Corporation and Sun announced that they were collaborating on a project to merge the most popular Unix variants on the market at that time: Berkeley Software Distribution, UNIX System V, and Xenix. This became Unix System V Release 4 (SVR4).[1] The project was released under the name Solaris, which became the successor to SunOS 4 (although SunOS 4.1.x micro releases were retroactively named Solaris 1).[2]
ZFS was designed and implemented by a team at Sun led by Jeff Bonwick, Bill Moore[3] and Matthew Ahrens. It was announced on September 14, 2004,[4] but development started in 2001.[5] Source code for ZFS was integrated into the main trunk of Solaris development on October 31, 2005,[6] and released for developers as part of build 27 of OpenSolaris on November 16, 2005. In June 2006, Sun announced that ZFS was included in the mainstream 6/06 update to Solaris 10.[7]
Historically, Solaris was developed as proprietary software. Sun Microsystems was a strong proponent of open source software. In June 2005, Sun released most of the codebase under the CDDL license, and founded the OpenSolaris open-source project.[8] Sun was an early proponent of open source software, and with OpenSolaris, Sun wanted to build a developer and user community around the software. In Solaris 10 6/06 ("U2"), Sun added the ZFS file system. During the next 5 years (2006 to 2010), Sun frequently updated ZFS with new features, and ZFS was ported to Linux, Mac OS X (continued as MacZFS) and FreeBSD, under this open source license.
The name at one point was said to stand for "Zettabyte File System",[9] but by 2006 was no longer considered to be an abbreviation.[10] A ZFS file system can store up to 256 quadrillion zettabytes (ZB).
In September 2007, NetApp sued Sun claiming that ZFS infringed some of NetApp's patents on Write Anywhere File Layout. Sun counter-sued in October the same year claiming the opposite. The lawsuits were ended in 2010 with an undisclosed settlement.[11]
As the FSF claimed a CDDL and GPL legal incompatibility in 2005, Sun's implementation of the ZFS file system wasn't used as a basis for the development of a Linux kernel module, it wasn't merged into the Linux kernel mainline, and Linux distributions did not include it as a precompiled kernel module.[12][13] As a workaround, FUSE, a framework that allows file systems to run in userspace, was used on Linux as a separation layer for which the licensing issues are not in effect, although with a set of its own issues that include performance penalty.[14][15] However, the April 2016 release of Ubuntu 16.04 LTS includes CDDL-licensed ZFS on Linux[16] as a kernel module that is maintained as a separate project, outside the Linux kernel mainline, claiming license compatibility.[17][18][19]
In January 2010, Oracle Corporation acquired Sun Microsystems, and quickly discontinued the OpenSolaris distribution and the open source development model.[20][21] In August 2010, Oracle discontinued providing public updates to the source code of the Solaris kernel, effectively turning Solaris 11 back into a closed source proprietary operating system.[22]
In response to the changing landscape of Solaris and OpenSolaris, the illumos project was launched via webinar[23] on Thursday, 3 August 2010, as a community effort of some core Solaris engineers to continue developing the open source version of Solaris, and complete the open sourcing of those parts not already open sourced by Sun.[24] illumos was founded as a Foundation, the illumos Foundation, incorporated in the State of California as a 501(c)6 trade association. The original plan explicitly stated that illumos would not be a distribution or a fork. However, after Oracle announced discontinuing OpenSolaris, plans were made to fork the final version of the Solaris ON kernel allowing illumos to evolve into a kernel of its own.[25] As part of OpenSolaris, an open source version of ZFS was therefore integral within illumos.
ZFS was widely used within numerous platforms, as well as Solaris. Therefore, in 2013, the co-ordination of development work on the open source version of ZFS was passed to an umbrella project, OpenZFS. The OpenZFS framework allows any interested parties to collaboratively develop the core ZFS codebase in common, while individually maintaining any specific extra code which ZFS requires to function and integrate within their own systems.
The following is a list of open-source ZFS ports and forks:[27][28]
Old release |
Latest FOSS stable release |
Latest Proprietary stable release |
Latest Proprietary beta release |
Note: The Solaris version under development by Sun since the release of Solaris 10 in 2005 was codenamed 'Nevada', and was derived from what was the OpenSolaris codebase. 'Solaris Nevada' is the codename for the next-generation Solaris OS to eventually succeed Solaris 10 and this new code was then pulled successively into new OpenSolaris 'Nevada' snapshot builds.[29] OpenSolaris is now discontinued and OpenIndiana forked from it.[31][32] A final build (b134) of OpenSolaris was published by Oracle (2010-Nov-12) as an upgrade path to Solaris 11 Express.
In OpenZFS, the pool version is permanently set to 5000, signifying that the pool indicates new features by setting or unsetting ZFS feature flags rather than by incrementing the pool version.[33] The number 5000 was chosen because it is expected to never conflict with version numbers given by Oracle. Legacy version numbers still exist for pool versions 1–28.[34][35][36] Future on-disk format changes are enabled / disabled independently via these feature flags.