HOME

TheInfoList



OR:

OpenZFS is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
storage platform licensed under
CDDL The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under ...
that encompasses the functionality of traditional filesystems and
logical volume manager In computer storage, logical volume management or LVM provides a method of allocating space on mass-storage devices that is more flexible than conventional partitioning schemes to store volumes. In particular, a volume manager can concatenate ...
. It includes protection against
data corruption In the pursuit of knowledge, data (; ) is a collection of discrete values that convey information, describing quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted. ...
, support for high storage capacities, efficient
data compression In information theory, data compression, source coding, or bit-rate reduction is the process of encoding information using fewer bits than the original representation. Any particular compression is either lossy or lossless. Lossless compressio ...
,
snapshots Snapshot, snapshots or snap shot may refer to: * Snapshot (photography), a photograph taken without preparation Computing * Snapshot (computer storage), the state of a system at a particular point in time * Snapshot (file format) or SNP, a file ...
and copy-on-write clones, continuous integrity checking and automatic repair,
encryption In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can d ...
, remote replication with ZFS send and receive, and RAID-Z. The OpenZFS project brings together developers from the illumos, Linux, FreeBSD and macOS platforms, and a wide range of companies via the annual OpenZFS Developer Summit. Founding members of OpenZFS include Matt Ahrens, one of the main architects of ZFS. The OpenZFS project is an open source derivative of the Oracle ZFS project. , OpenZFS (on some platforms such as
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
) is gradually being pivoted to be based upon ZFS on Linux, which has developed faster than other variants of OpenZFS and contains new features not yet ported to those other versions. The merged code-base will include a number of new features and performance enhancements, and is proposed to be known as OpenZFS 2.0.


History

The ZFS file system was originally developed by
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, t ...
for the Solaris operating system. The ZFS source code was released in 2005 under the
Common Development and Distribution License The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under ot ...
(CDDL) as part of the
OpenSolaris OpenSolaris () is a discontinued open-source computer operating system based on Solaris and created by Sun Microsystems. It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user community around t ...
operating system, and it was later ported to other operating systems and environments. The following is a list of key events to the development of ZFS and its various implementations, leading to the creation of OpenZFS as an umbrella project: * 2001: Closed-source development of ZFS started with two engineers at Sun Microsystems. * 2005: ZFS source code was released as part of OpenSolaris. * 2006: Development of a FUSE ZFS port for Linux started. * 2007: Apple started porting of ZFS to Mac OS X. * 2008: A port to FreeBSD was released as part of FreeBSD 7.0. * 2008: Development of a native ZFS Linux port started, known as ZFS on Linux. * 2009: Apple's ZFS project closed, and the
MacZFS Oracle ZFS is a proprietary file system and logical volume manager. ZFS is scalable, and includes extensive protection against data corruption, support for high storage capacities, efficient data compression, integration of the concepts of ...
project continued to develop the code. * 2010: OpenSolaris was discontinued, resulting in the further development of ZFS on Solaris being no longer open-source. * 2010: illumos was forked from OpenSolaris as its open-source successor, and continued to develop ZFS in the open. Ports of ZFS to other platforms continued pulling in upstream changes from illumos. * 2012: Feature flags were introduced to replace legacy on-disk version numbers, enabling easier distributed evolution of the ZFS on-disk format to support new features. * 2013: Coexisting with the stable version of MacZFS, its prototype generation (known as OpenZFS on OS X or O3X) uses ZFS on Linux as the new upstream codebase. * 2013: The first stable release of ZFS on Linux. * 2013: Official announcement of the OpenZFS as an umbrella project. New features and fixes are regularly pulled into OpenZFS from illumos and pushed into all ports to other platforms, and vice versa. * 2016: Ubuntu 16.04 includes the open-source ZFS file system variant by default.


Ported versions (2005–2010)

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 The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
module Module, modular and modularity may refer to the concept of modularity. They may also refer to: Computing and engineering * Modular design, the engineering discipline of designing complex devices using separately designed sub-components * Modul ...
, it wasn't merged into the Linux kernel mainline, and
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s did not include it as a precompiled kernel module. As a workaround,
FUSE Fuse or FUSE may refer to: Devices * Fuse (electrical), a device used in electrical systems to protect against excessive current ** Fuse (automotive), a class of fuses for vehicles * Fuse (hydraulic), a device used in hydraulic systems to protect ...
, a framework that allows file systems to run in
userspace A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kerne ...
, 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. However, the April 2016 release of
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All ...
16.04  LTS includes CDDL-licensed
ZFS on Linux OpenZFS is a free and open-source storage platform licensed under CDDL that encompasses the functionality of traditional filesystems and logical volume manager. It includes protection against data corruption, support for high storage capaciti ...
as a kernel module that is maintained as a separate project, outside the Linux kernel mainline, claiming license compatibility.


Apple/macOS

In the release version of Mac OS X 10.5, ZFS was available in read-only mode from the command line, which lacks the possibility to create zpools or write to them. Before the 10.5 release, Apple released the "ZFS Beta Seed v1.1", which allowed read-write access and the creation of zpools; however, the installer for the "ZFS Beta Seed v1.1" has been reported to only work on version 10.5.0, and has not been updated for version 10.5.1 and above. In August 2007, Apple opened a ZFS project on their Mac OS Forge web site. On that site, Apple provided the source code and binaries of their port of ZFS which includes read-write access, but there was no installer available until a third-party developer created one. In October 2009, Apple announced a shutdown of the ZFS project on Mac OS Forge. That is to say that their own hosting and involvement in ZFS was summarily discontinued. No explanation was given. Apple eventually released the legally required, CDDL-derived, portion of the source code of their final public beta of ZFS, code named "10a286". Complete ZFS support was once advertised as a feature of Snow Leopard Server ( Mac OS X Server 10.6). However, by the time the operating system was released, all references to this feature had been removed from its features page. Apple has not commented regarding the omission. Apple's "10a286" source code release, and versions of the previously released source and binaries, have been preserved and new development has been adopted by the MacZFS project to resume its development elsewhere. As of July 2012, MacZFS implements zpool version 8 and ZFS version 2, from the October 2008 release of Solaris. Additional historical information and commentary can be found on the MacZFS web site and FAQ.


Implementations


OpenSolaris

*
OpenSolaris OpenSolaris () is a discontinued open-source computer operating system based on Solaris and created by Sun Microsystems. It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user community around t ...
2008.05, 2008.11 and 2009.06 use ZFS as their default filesystem. There are over a dozen 3rd-party distributions.


OpenIndiana

*
OpenIndiana OpenIndiana is a free and open-source Illumos#Current_distributions, illumos distribution Unix-derived UNIX_System_V, System V SVR4 operating system, started as OpenSolaris continuation project. fork (software development), Forked from OpenSolar ...
uses OpenZFS with feature flags as implemented in Illumos. ZFS version 28 used up to version 151a3. * By upgrading from OpenSolaris snv_134 to both OpenIndiana and Solaris 11 Express, one also has the ability to upgrade and separately boot Solaris 11 Express on the same ZFS pool.


BSD


macOS

* ''OpenZFS on OSX'' (abbreviated to ''O3X'') is an implementation of ZFS for
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
. O3X is under active development, with close relation to ZFS on Linux and illumos' ZFS implementation, while maintaining feature flag compatibility with ZFS on Linux. O3X implements zpool version 5000, and includes the Solaris Porting Layer (SPL) originally written for MacZFS, which has been further enhanced to include a memory management layer based on the illumos kmem and vmem allocators. O3X is fully featured, supporting LZ4 compression, deduplication, ARC, L2ARC, and SLOG. * MacZFS is free software providing support for ZFS on macOS. The stable legacy branch provides up to ZFS pool version 8 and ZFS filesystem version 2. The development branch, based on ZFS on Linux and OpenZFS, provides updated ZFS functionality, such as up to ZFS zpool version 5000 and feature flags. * A proprietary implementation of ZFS (Zevo) was available at no cost from GreenBytes, Inc., implementing up to ZFS file system version 5 and ZFS pool version 28. Zevo offered a limited ZFS feature set, pending further commercial development; it was sold to Oracle in 2014, with unknown future plans.


DragonFlyBSD

* Edward O'Callaghan started the initial port of ZFS to DragonFlyBSD.


NetBSD

* The NetBSD ZFS port was started as a part of the 2007 Google Summer of Code and in August 2009, the code was merged into
NetBSD NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is ava ...
's source tree.


FreeBSD

* Paweł Jakub Dawidek ported ZFS to
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, and it has been part of FreeBSD since version 7.0. This includes zfsboot, which allows booting FreeBSD directly from a ZFS dataset. * FreeBSD's ZFS implementation is fully functional; the only missing features are kernel CIFS server and
iSCSI Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
, but the latter can be added using externally available packages.
Samba Samba (), also known as samba urbano carioca (''urban Carioca samba'') or simply samba carioca (''Carioca samba''), is a Brazilian music genre that originated in the Afro-Brazilian communities of Rio de Janeiro in the early 20th century. Havi ...
can be used to provide a userspace CIFS server. * FreeBSD 7-STABLE (where updates to the series of versions 7.x are committed to) uses zpool version 6. * FreeBSD 8 includes a much-updated implementation of ZFS, and zpool version 13 is supported. zpool version 14 support was added to the 8-STABLE branch on January 11, 2010, and is included in FreeBSD release 8.1. zpool version 15 is supported in release 8.2. The 8-STABLE branch gained support for zpool version v28 and zfs version 5 in early June 2011. These changes were released mid-April 2012 with FreeBSD 8.3. * FreeBSD 9.0-RELEASE uses ZFS Pool version 28. * FreeBSD 9.2-RELEASE is the first FreeBSD version to use the new "feature flags" based implementation thus Pool version 5000. * FreeBSD 13.0-RELEASE switches ZFS implementation from illumos-based code base to the unified OpenZFS 2 code base. This change allows FreeBSD to receive OpenZFS improvements much quicker.


MidnightBSD

*
MidnightBSD MidnightBSD is a free Unix, desktop-oriented operating system originally forked from FreeBSD 6.1, and periodically updated with code and drivers from later FreeBSD releases. Its default desktop environment, Xfce, is a lightweight user friendly ...
, a desktop operating system derived from FreeBSD, supports ZFS storage pool version 6 as of 0.3-RELEASE. This was derived from code included in
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
7.0-RELEASE. An update to storage pool 28 is in progress in 0.4-CURRENT and based on 9-STABLE sources around FreeBSD 9.1-RELEASE code.


TrueOS (formerly PC-BSD)

*
TrueOS TrueOS (formerly PC-BSD or PCBSD) is a discontinued Unix-like, server-oriented operating system built upon the most recent releases of FreeBSD-CURRENT. Up to 2018 it aimed to be easy to install by using a graphical installation program, and ...
(formerly known as PC-BSD, now defunct) was a desktop-oriented distribution of FreeBSD, which inherited its ZFS support.


TrueNAS Core, (formerly FreeNAS)

* TrueNAS Core, an embedded open source
network-attached storage Network-attached storage (NAS) is a file-level (as opposed to block-level storage) computer data storage server connected to a computer network providing data access to a heterogeneous group of clients. The term "NAS" can refer to both the tech ...
(NAS) distribution based on
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, has the same ZFS support as FreeBSD and
PC-BSD TrueOS (formerly PC-BSD or PCBSD) is a discontinued Unix-like, server-oriented operating system built upon the most recent releases of FreeBSD-CURRENT. Up to 2018 it aimed to be easy to install by using a graphical installation program, and e ...
.


pfSense

* pfSense, an open source BSD based router, supports ZFS, including installation and booting to ZFS pools, as of version 2.4.


XigmaNAS

* XigmaNAS (formerly NAS4Free), an embedded open source
network-attached storage Network-attached storage (NAS) is a file-level (as opposed to block-level storage) computer data storage server connected to a computer network providing data access to a heterogeneous group of clients. The term "NAS" can refer to both the tech ...
(NAS) distribution based on
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, has the same ZFS support as FreeBSD, ZFS storage pool version 5000. This project is a continuation of FreeNAS 7 series project.


Debian GNU/kFreeBSD

* Being based on the FreeBSD kernel,
Debian GNU/kFreeBSD Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of Deb ...
has ZFS support from the kernel. However, additional userland tools are required, while it is possible to have ZFS as root or /boot file system in which case required GRUB configuration is performed by the Debian installer since the ''Wheezy'' release. * As of January 31, 2013, the ZPool version available is 14 for the ''Squeeze'' release, and 28 for the ''Wheezy-9'' release.


Linux

Although the ZFS filesystem supports
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
-based operating systems, difficulties arise for
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
maintainers wishing to provide native support for ZFS in their products due to potential legal incompatibilities between the
CDDL The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under ...
license used by the ZFS code, and the GPL license used by the Linux kernel. To enable ZFS support within Linux, a
loadable kernel module In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called ''base kernel'', of an operating system. LKMs are typically used to add support for new hardware (as device drivers) and ...
containing the CDDL-licensed ZFS code must be compiled and loaded into the kernel. According to the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985, to support the free software movement, with the organization's preference for software being distributed under copyleft ( ...
, the wording of the GPL license legally prohibits redistribution of the resulting product as a
derivative work In copyright law, a derivative work is an expressive creation that includes major copyrightable elements of an original, previously created first work (the underlying work). The derivative work becomes a second, separate work independent in ...
, though this viewpoint has caused some controversy.


ZFS on FUSE

One potential workaround to licensing incompatibility was trialed in 2006, with an experimental port of the ZFS code to Linux's
FUSE Fuse or FUSE may refer to: Devices * Fuse (electrical), a device used in electrical systems to protect against excessive current ** Fuse (automotive), a class of fuses for vehicles * Fuse (hydraulic), a device used in hydraulic systems to protect ...
system. The filesystem ran entirely in
userspace A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kerne ...
instead of being integrated into the Linux kernel, and was therefore not considered a derivative work of the kernel. This approach was functional, but suffered from significant performance penalties when compared with integrating the filesystem as a native kernel module running in
kernel space A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
. As of 2016, the ZFS on FUSE project appears to be defunct.


Native ZFS on Linux

A native port of ZFS for Linux produced by the
Lawrence Livermore National Laboratory Lawrence Livermore National Laboratory (LLNL) is a federal research facility in Livermore, California, United States. The lab was originally established as the University of California Radiation Laboratory, Livermore Branch in 1952 in response ...
(LLNL) was released in March 2013, following these key events: * 2008: prototype to determine viability * 2009: initial ZVOL and Lustre support * 2010: development moved to
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, cont ...
* 2011:
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming in ...
layer added * 2011: community of early adopters * 2012: production usage of ZFS * 2013: stable GA release , ZFS on Linux uses the OpenZFS pool version number 5000, which indicates that the features it supports are defined via feature flags. This pool version is an unchanging number that is expected to never conflict with version numbers given by Oracle.


KQ InfoTech

Another native port for Linux was developed by KQ InfoTech in 2010. This port used the ''zvol'' implementation from the Lawrence Livermore National Laboratory as a starting point. A release supporting ''zpool'' v28 was announced in January 2011. In April 2011, KQ Infotech was acquired by
sTec, Inc. sTec is an American computer data storage technology company headquartered in California,Bloomberg BusinessWeek. �STEC Profile” September 20, 2010. with research and development, sales, support or manufacturing sites in China, India, Japan, ...
, and their work on ZFS ceased. Source code of this port can be found on
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, cont ...
. The work of KQ InfoTech was ultimately integrated into the LLNL's native port of ZFS for Linux.


Source code distribution

While the license incompatibility may arise with the distribution of compiled binaries containing ZFS code, it is generally agreed that distribution of the source code itself is not affected by this. In Gentoo, configuring a ZFS root filesystem is well documented and the required packages can be installed from its package repository. Slackware also provides documentation on supporting ZFS, both as a kernel module and when built into the kernel.


Ubuntu integration

The question of the CDDL license's compatibility with the GPL license resurfaced in 2015, when the Linux distribution
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All ...
announced that it intended to make precompiled OpenZFS binary kernel modules available to end-users directly from the distribution's official package repositories. In 2016, Ubuntu announced that a legal review resulted in the conclusion that providing support for ZFS via a binary kernel module was not in violation of the provisions of the GPL license. Others, such as the
Software Freedom Law Center The Software Freedom Law Center (SFLC) is an organization that provides '' pro bono'' legal representation and related services to not-for-profit developers of free software/open source software. It was launched in February 2005 with Eben Mogle ...
followed Ubuntu's conclusion, while the FSF and SFC reiterated their opposing view.
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All ...
16.04 LTS ("Xenial Xerus"), released on April 21, 2016, allows the user to install the OpenZFS binary packages directly from the Ubuntu software repositories. , no legal challenge has been brought against Canonical regarding the distribution of these packages. As of 2019, Ubuntu supports experimental installation of ZFS as a root filesystem, starting with the 19.10 release ("Eoan Ermine"), to support coexistence of a nearly pure ZFS OS with GRUB and other operating systems on the same disk.


TrueNAS Scale

A version of TrueNAS by iXsystems, but based on Debian Linux still uses OpenZFS for main storage but adds some container support via Kubernetes & Docker. Furthermore, it will allow clustered Docker and ZFS via gluster. It is in Beta as of 22 June 2021.


Microsoft Windows

A port of open source ZFS was attempted in 2010 but after a hiatus of over one year development ceased in 2012. In October 2017 a new port of OpenZFS was announced by Jörgen Lundman at OpenZFS Developer Summit.


Releases and feature histories


Within illumos and (from 2013) OpenZFS

* 2010: illumos founded as an open source successor, and continued to develop ZFS in the open. Ports of ZFS to other platforms continued porting upstream changes from illumos. * 2013: OpenZFS project founded, aiming at coordinated open-source development of ZFS. The OpenZFS project provides a common foundation for any interested groups and organizations to contribute and collaborate towards a common open source ZFS core, and in addition, to also maintain any specific code and validation processes needed for core ZFS code to work with their own individual systems.


Other ports and forks

The following is a list of open-source ZFS ports and forks: * 2006: Development of a FUSE port for Linux started. * 2007: Apple started porting ZFS to
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
. * 2008: A port to FreeBSD was released as part of FreeBSD 7.0. * 2008: Development of a native Linux port started. * 2009: Apple's ZFS project closed. The
MacZFS Oracle ZFS is a proprietary file system and logical volume manager. ZFS is scalable, and includes extensive protection against data corruption, support for high storage capacities, efficient data compression, integration of the concepts of ...
project continued to develop the code.


Detailed release histories

With ZFS in Oracle Solaris: as new features are introduced, the version numbers of the pool and file system are incremented to designate the format and features available. Features that are available in specific file system versions require a specific pool version. Distributed development of OpenZFS involves feature flags and pool version 5000, an unchanging number that is expected to never conflict with version numbers given by Oracle. Legacy version numbers still exist for pool versions 1–28, implied by the version 5000. Illumos uses pool version 5000 for this purpose. Future on-disk format changes are enabled / disabled independently via feature flags.


Version history


Pool versions and feature flags

Originally, version numbers of the pool and file system were incremented as new features were introduced, in order to designate the on-disk file system format and available features. This worked well when a single entity controlled the development of ZFS, and this versioning scheme is still in use with the ZFS in
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word ...
Solaris. In a more
distributed development A distributed development project is a research and development (R&D) project that is done across multiple business worksites or locations. It is a form of R&D where the project members may not see each other face to face, but they are all worki ...
model, having a single version number is far from ideal as all implementations of OpenZFS would need to agree on all changes to the on-disk file system format. The solution selected by OpenZFS was to introduce ''feature flags'' as a new versioning system that tags on-disk format changes with unique names, and supports both completely independent format changes and format changes that depend on each other. A pool can be moved and used between OpenZFS implementations as long as all feature flags in use by the pool are supported by both implementations. 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. 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. Future on-disk format changes are enabled / disabled independently via these feature flags. Legacy version numbers still exist for pool versions 1–28, and are implied by the pool version 5000; the initial proposal was to use 1000 as the pool version. Future on-disk format changes are enabled and disabled independently via feature flags. Feature flags are exposed as pool properties, following these naming scheme rules: * Format of the property name is * is the reverse DNS name of the organization that developed the feature, ensuring unique property names. * Property names can be shortened to when they remain unambiguous. For example, is a valid property name, and it could be shortened to . Each pool feature can be in either ''disabled'', ''enabled'', or ''active'' state. Disabled features are those that will not be used, and no on-disk format changes will be made; as a result, such features are backward-compatible. Enabled features are those that will be used, no on-disk format changes have been made yet, but the software may make the changes at any time; such features are still backward-compatible. Active features are those that have made backward-incompatible on-disk format changes to the pool. When any pool feature is enabled, legacy version of the pool is automatically upgraded to 5000 and any other prerequisite features are also enabled. By default, new pools are created with all supported features enabled. In general, state of a feature can be changed from ''active'' back to ''enabled'', undoing that way performed on-disk format changes and making the pool compatible again with an older OpenZFS implementation; however, for some features that might not be possible. On-disk format changes can be associated with either ''features for write'' or ''features for read''. The former are the features that an OpenZFS implementation must support to be capable of writing to the pool, while supporting such features is not mandatory for opening the pool in read-only mode. The latter are the features that an OpenZFS implementation must support to be able to read from the pool or to just open it, because opening a pool is not possible without actually reading from it. For example, feature adds a new on-disk data structure to keep track of freed datasets, but an OpenZFS implementation does not need to know about this data structure to access the pool in read-only mode. Additionally, writing to a pool that has some features in ''active'' state is not possible by an OpenZFS implementation that does not support the same features. A list of feature flags and which operating systems support them is available from the Open-ZFS.org Web site


OpenZFS 2.0

Historically, OpenZFS has been implemented as a core ZFS code, with each operating system's team adapting it to fit into their projects. This led in some cases to feature stagnation and divergence of features and command lines, as different operating systems developed divergent features and bug fixes, often for a single platform rather than across all platforms. Over time, new feature development shifted from Illumos to
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
. These new features and fixes then had to be backported to Illumos before they could be re-ported for FreeBSD. But this was difficult because the Linux version also included many smaller changes, which were hard to disentangle. In 2018, it was agreed that OpenZFS development would be overhauled to remedy these issues. Rather than try to import all the Linux changes to other platforms piecemeal, the entire Linux ZFS code would be 'pivoted' as a whole, with other platforms being based on the more actively developed Linux version. A wide range of ported and new features, including many long-desired enhancements, would also be rolled out or ported across platforms, and future changes would be discussed across platforms before being implemented. The plans included appropriate porting layers to prevent Linux, GPL or Linux-KPI
shim Shim may refer to: * Shim (spacer), a thin and often tapered or wedged piece of material ** CPU shim, a spacer for a computer heat sink ** Shim (fencing), a device used in the sport fencing ** Shim (lock pick), a tool used to bypass padlocks * Sh ...
code from being introduced to other platform kernels. The features in progress or ported for OpenZFS 2.0 is lengthy, and includes: * Faster rollout of enhancements and new features across platforms * Command line standardisation * Improved pool portability (ZFS pools created on one system can be equally used by another) * Wider cross-platform feature parity and platform independence * Overlay (union) mounts accepted by default * Bug fixes and enhancements * ZTS and various other features working on FreeBSD *
TRIM Trim or TRIM may refer to: Cutting * Cutting or trimming small pieces off something to remove them ** Book trimming, a stage of the publishing process ** Pruning, trimming as a form of pruning often used on trees Decoration * Trim (sewing), ...
and ACLMODE enhancements * ZFS holds (from FreeBSD) * Enhanced native NFSv4 ACLs (FreeBSD) * Enhanced
AES-GCM In cryptography, Galois/Counter Mode (GCM) is a mode of operation for symmetric-key cryptographic block ciphers which is widely adopted for its performance. GCM throughput rates for state-of-the-art, high-speed communication channels can be achiev ...
performance for encrypted pools * Redacted send/receive * Log spacemap and other metaslab management enhancements - a project to re-implement ZFS' management of free space and "metaslabs" for much greater efficiency * Fast clone deletion * Zstd data compression as a new option * Channel program property inheritance * AltiVec RAID-Z * Bookmark support and copying * Direct IO support * Persistent L2ARC (L2ARC retained across reboots) * Sequential (high speed) scrub and resilver * Scrub pause/resume * Resilver restart * Device (VDEV) removal * Zpool initialize and checkpoint * Channel programs * Large Dnode * Allocation classes (allowing specific high speed storage to be designated for
metadata Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive metadata – the descriptive ...
and deduplication tables) * Parallel pool mounting * Per-vdev properties * Deduplication enhancements – dedup-log (high speed deduplication), dedup table size limits, and deduplication table preloading (loaded fully at one time rather than piecemeal as needed), listed as "nice to have" in 2018, were all stated in April 2020 to be "coming along nicely" or largely complete


See also

* Comparison of file systems * Btrfs—a copy-on-write file system for Linux *
HAMMER A hammer is a tool, most often a hand tool, consisting of a weighted "head" fixed to a long handle that is swung to deliver an impact to a small area of an object. This can be, for example, to drive nails into wood, to shape metal (as wi ...
—a high-availability file system for DragonFly BSD * Write Anywhere File Layout (WAFL)—NetApp's proprietary file layout


References


External links


The OpenZFS Project
and list of *FreeBSD
WebpageGitHubwiki
*illumos
WebpageGitHub
*Linux
WebpageGitHub
*macOS
WebpageGitHubGoogle
*Windows
WebpageGitHub
* , October 11, 2013, by Matt Ahrens
OpenZFS Device Removal
, January 15, 2015, by Alex Reece {{MacOS Compression file systems Disk file systems File systems supported by the Linux kernel RAID Software using the CDDL license Volume manager