OpenZFS

Last updated

OpenZFS
Original author(s) Sun Microsystems
Developer(s) OpenZFS Project
Initial releasePorted to various systems between 2006 and 2010. Forked from OpenSolaris August 2010;14 years ago (2010-08)
Stable release
2.2.7 [1]   OOjs UI icon edit-ltr-progressive.svg / 12 December 2024;4 days ago (12 December 2024)
Preview release
2.3.0-rc4 [2] / December 13, 2024;3 days ago (2024-12-13) [2]
Repository github.com/openzfs/zfs
Written inC
Operating system OpenSolaris, illumos, OpenIndiana, FreeBSD, NetBSD, macOS, Linux, OSv
License Common Development and Distribution License
Website openzfs.org

OpenZFS is an open-source implementation of the ZFS file system and volume manager initially developed by Sun Microsystems for the Solaris operating system, and is now maintained by the OpenZFS Project. Similar to the original ZFS, the implementation supports features like data compression, data deduplication, copy-on-write clones, snapshots, RAID-Z, and virtual devices that can create filesystems that span multiple disks.

Contents

One of the main capabilities of OpenZFS is self-healing. The file system can detect and correct errors while in use, without the need for a dedicated file system checker. This feature makes it suitable for mission-critical applications that require high availability.

OpenZFS is mainly used in enterprise and data center environments, as well as consumer devices like network-attached storage (NAS) devices, where data reliability and safety is essential. While initially designed for Solaris, development has since focused on Linux, while ports exist for various BSD distributions and macOS. Unlike Oracle ZFS, OpenZFS is licensed under the Common Development and Distribution License (CDDL), enabling both open-source and commercial use of the file system.

Founding members of OpenZFS include Matt Ahrens, one of the main architects of ZFS. [3] In 2020, the codebases of OpenZFS and ZFS on Linux, a kernel module allowing ZFS to be used on Linux, were merged and released as OpenZFS 2.0, allowing other non-Linux operating systems to receive the various improvements that the Linux driver had incorporated over time. [4] [5]

History

The ZFS file system was originally developed by Sun Microsystems for the Solaris operating system. The ZFS source code was released in 2005 under the Common Development and Distribution License as part of the OpenSolaris operating system, and it was later ported to other operating systems and environments. [6] [7]

The following is a list of key events in the development of ZFS and its various implementations: [6] [8]

Ports

As the FSF (Free Software Foundation) claimed that there was a legal incompatibility between the CDDL and the GPL in 2005, Sun's implementation of the ZFS file system couldn't be used as a basis for the development of a module in the Linux kernel, couldn't be merged into the mainline Linux kernel, and Linux distributions generally did not include it as a precompiled kernel module. [17] [18] [19] 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 did not apply, although with a set of its own issues that includes a performance penalty. [7] [20] However, the April 2016 release of Ubuntu 16.04  LTS includes ZFS as a kernel module. [21] [22]

Apple and OS X

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 z-pools or write to them. [23] Before the 10.5 release, Apple released the "ZFS Beta Seed v1.1", which allowed read-write access and the creation of z-pools; [24] 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. [25] 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, [26] but without an installer. [27] In October 2009, Apple discontinued development of the ZFS project on Mac OS Forge with no explanation. Apple removed everything but the CDDL-licensed portion of the source code for their final build of the ZFS project, code named "10a286". Complete ZFS support was originally advertised as a feature of Snow Leopard Server before launch, [28] but by the time the operating system was released all references to this feature had been removed from its features page. [29]

Apple's "10a286" source code release, and versions of the previously released source and binaries, have been preserved and new development had been adopted by the MacZFS project [30] [31] [32] to continue development outside of Apple. As of July 2012, Mac ZFS implements z-pool version 8 and ZFS version 2, released with the October 2008 release of Solaris. Additional historical information and commentary can be found on the Mac ZFS web site and FAQ. [33] However, the project ceased development in mid 2013 with a message asking users to switch to O3X. [34]

Implementations

OpenSolaris

OpenIndiana

  • OpenIndiana uses OpenZFS with feature flags as implemented in Illumos. ZFS version 28 used up to version 151a3. [35]
  • 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. [36]

macOS

BSD

DragonFlyBSD

NetBSD

FreeBSD

  • Paweł Jakub Dawidek ported ZFS to FreeBSD, and it has been part of FreeBSD since version 7.0. [43] This includes zfsboot, which allows booting FreeBSD directly from a ZFS dataset. [44] [45]
  • FreeBSD's ZFS implementation is fully functional; the only missing features are kernel CIFS server and iSCSI, but the latter can be added using externally available packages. [46] Samba can be used to provide a userspace CIFS server.
  • FreeBSD 13.0-RELEASE switches ZFS implementation from illumos-based code base to the unified OpenZFS 2 code base. [47] This change allows FreeBSD to receive OpenZFS improvements much quicker. [48]

MidnightBSD

  • MidnightBSD, 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 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.[ citation needed ]

TrueOS (formerly PC-BSD)

  • TrueOS (formerly known as PC-BSD, now defunct [49] ) was a desktop-oriented distribution of FreeBSD, which inherited its ZFS support.[ citation needed ]

TrueNAS Core, (formerly FreeNAS)

pfSense

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

OPNsense

XigmaNAS

  • XigmaNAS (formerly NAS4Free), an embedded open source network-attached storage (NAS) distribution based on FreeBSD, has the same ZFS support as FreeBSD, ZFS storage pool version 5000. This project is a continuation of FreeNAS 7 series project. [51]

Debian GNU/kFreeBSD

  • Being based on the FreeBSD kernel, Debian GNU/kFreeBSD has ZFS support from the kernel. However, additional userland tools are required, [52] while it is possible to have ZFS as root or /boot file system [53] in which case required GRUB configuration is performed by the Debian installer since the Wheezy release. [54]
  • As of January 31, 2013, the ZPool version available is 14 for the Squeeze release, and 28 for the Wheezy-9 release. [55]

Linux

Although the ZFS filesystem supports Linux-based operating systems, difficulties arise for Linux distribution maintainers wishing to provide native support for ZFS in their products due to legal incompatibilities between the ZFS's CDDL license and the GPL license used by the Linux kernel. To enable ZFS support within Linux, a loadable kernel module containing the CDDL-licensed ZFS code must be compiled and loaded into the kernel. According to the Free Software Foundation, the wording of the GPL license legally prohibits redistribution of the resulting product as a derivative work, [56] [57] though this viewpoint has caused some controversy. [58] [59]

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 system. The filesystem ran entirely in userspace 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. [60] As of 2016, the ZFS on FUSE project appears to be defunct, as the ZFS on Linux kernel driver has prevailed over the userspace one.

Native ZFS on Linux

A native port of ZFS for Linux produced by the Lawrence Livermore National Laboratory (LLNL) was released in March 2013, [61] [62] following these key events: [63]

  • 2008: prototype to determine viability
  • 2009: initial ZVOL and Lustre support
  • 2010: development moved to GitHub
  • 2011: POSIX layer added
  • 2011: community of early adopters
  • 2012: production usage of ZFS
  • 2013: stable GA release

As of August 2014, 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. [64]

KQ InfoTech

Another native port for Linux was developed by KQ InfoTech in 2010. [65] [66] 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. [67] In April 2011, KQ Infotech was acquired by sTec, Inc., and their work on ZFS ceased. [68] Source code of this port can be found on GitHub. [69]

The work of KQ InfoTech was ultimately integrated into the LLNL's native port of ZFS for Linux. [68]

Source code distribution

While license incompatibilities 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 Linux, configuring a ZFS root filesystem is well documented and the required packages can be installed from its package repository. [70] Slackware also provides documentation on supporting ZFS, both as a kernel module and built into the kernel. [71] [72]

Ubuntu integration

The question of the CDDL license's compatibility with the GPL license resurfaced in 2015, when the Linux distribution Ubuntu announced that it intended to make precompiled OpenZFS binary kernel modules available to end-users directly from the distribution's official package repositories. [73] 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. [74] Other organizations such as the Software Freedom Law Center followed Ubuntu's conclusion, [75] while the FSF and SFC reiterated their opposing views. [76]

Ubuntu 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. [21] [77] As of 2024, 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. [78] [79]

TrueNAS Scale

A version of TrueNAS by iXsystems, based on Debian Linux. As with TrueNAS Core (based on FreeBSD), it uses OpenZFS for storage and adds a variety of additional features. These include expanded device driver support, KVM virtual machines, PCIe passthrough and container support via Kubernetes and Docker. Furthermore, it allows clustered Docker and ZFS via gluster. Information about the current release can be found at the iXsystems Software Status page. [80]

Microsoft Windows

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

A newer open source port of ZFS which is considered a BETA release, can be found also on GitHub. [84]

Version history

Legend:
Latest FOSS stable release
ZFS Pool Version NumberRelease dateSignificant changes
5000OpenZFSUnchanging pool version to signify that the pool indicates new features after pool version 28 using ZFS feature flags rather than by incrementing the pool version

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 Solaris. [85] [86]

In a more distributed development 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. [8] :20,26–27 [87] :2–3 [88]

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. [38] 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. [89] [90] [91] 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; [92] the initial proposal was to use 1000 as the pool version. [87] :4 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: [87] :4

For example, feature@com.foocompany:async_destroy is a valid property name, and it could be shortened to feature@async_destroy. [87] :4

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. [87] :5

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. [87] :5,9 [92]

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. [87] :7

For example, async_destroy 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. [87] :7–8

A list of feature flags and which operating systems support them is available from the OpenZFS documentation Web site [93] (here the old Open-ZFS.org Web site [94] )

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. [95] These new features and fixes then had to be backported to Illumos before they could be re-ported for FreeBSD. [95] But this was difficult because the Linux version also included many smaller changes, which were hard to disentangle. [95]

In 2018, it was agreed that OpenZFS development would be overhauled to remedy these issues. [95] 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. [95] 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. [95] The plans included appropriate porting layers to prevent Linux, GPL or Linux-KPI shim code from being introduced to other platform kernels. [95]

The features in progress or ported for OpenZFS 2.0 is lengthy, and includes:

  • Faster rollout of enhancements and new features across platforms [95]
  • Command line standardisation [95]
  • Improved pool portability (ZFS pools created on one system can be equally used by another) [96]
  • Wider cross-platform feature parity and platform independence [96]
  • Overlay (union) mounts accepted by default [96]
  • Bug fixes and enhancements [96]
  • ZTS and various other features working on FreeBSD [96]
  • TRIM and ACLMODE enhancements [96] [95]
  • ZFS holds (from FreeBSD) [96]
  • Enhanced native NFSv4 ACLs (FreeBSD) [96]
  • Enhanced AES-GCM performance for encrypted pools [96]
  • Redacted send/receive [96]
  • Log spacemap and other metaslab management enhancements - a project to re-implement ZFS' management of free space and "metaslabs" for much greater efficiency [96]
  • Fast clone deletion [96]
  • Zstd data compression as a new option [96]
  • Channel program property inheritance [96]
  • AltiVec RAID-Z [96]
  • Bookmark support and copying [96]
  • Direct IO support [96]
  • Persistent L2ARC (L2ARC retained across reboots) [96]
  • Sequential (high speed) scrub and resilver [95]
  • Scrub pause/resume [95]
  • Resilver restart [95]
  • Device (VDEV) removal [95]
  • Zpool initialize and checkpoint [95]
  • Channel programs [95]
  • Large Dnode [95]
  • Allocation classes (allowing specific high speed storage to be designated for metadata and deduplication tables) [95]
  • Parallel pool mounting [95]
  • Per-vdev properties [95]
  • 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 [97]

See also

Related Research Articles

<span class="mw-page-title-main">Oracle Solaris</span> Unix operating system originally developed by Sun Microsystems

Oracle Solaris is a proprietary Unix operating system offered by Oracle for SPARC and x86-64 based workstations and servers. Originally developed by Sun Microsystems as Solaris, it superseded the company's earlier SunOS in 1993 and became known for its scalability, especially on SPARC systems, and for originating many innovative features such as DTrace, ZFS and Time Slider. After the Sun acquisition by Oracle in 2010, it was renamed Oracle Solaris.

The Open Sound System (OSS) is an interface for making and capturing sound in Unix and Unix-like operating systems. It is based on standard Unix devices system calls. The term also sometimes refers to the software in a Unix kernel that provides the OSS interface; it can be thought of as a device driver for sound controller hardware. The goal of OSS is to allow the writing of sound-based applications that are agnostic of the underlying sound hardware.

<span class="mw-page-title-main">DTrace</span> Dynamic tracing framework for kernel and applications

DTrace is a comprehensive dynamic tracing framework originally created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time. Originally developed for Solaris, it has since been released under the free Common Development and Distribution License (CDDL) in OpenSolaris and its descendant illumos, and has been ported to several other Unix-like systems.

Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a bridge to the actual kernel interfaces.

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 other licenses, whether open source or proprietary. In 2005 the Open Source Initiative approved the license. The Free Software Foundation (FSF) considers it a free software license, but one which is incompatible with the GNU General Public License (GPL).

init UNIX system component

In Unix-based computer operating systems, init is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes. Init is started by the kernel during the booting process; a kernel panic will occur if the kernel is unable to start it, or it should die for any reason. Init is typically assigned process identifier 1.

OS-level virtualization is an operating system (OS) virtualization paradigm in which the kernel allows the existence of multiple isolated user space instances, including containers, zones, virtual private servers (OpenVZ), partitions, virtual environments (VEs), virtual kernels, and jails. Such instances may look like real computers from the point of view of programs running in them. A computer program running on an ordinary operating system can see all resources of that computer. Programs running inside a container can only see the container's contents and devices assigned to the container.

<span class="mw-page-title-main">Nexenta OS</span> Discontinued computer operating system

Nexenta OS, officially known as the Nexenta Core Platform, is a discontinued computer operating system based on OpenSolaris and Ubuntu that runs on IA-32- and x86-64-based systems. It emerged in fall 2005, after Sun Microsystems started the OpenSolaris project in June of that year. Nexenta Systems, Inc. initiated the project and sponsored its development. Nexenta OS version 1.0 was released in February 2008.

These tables compare free software / open-source operating systems. Where not all of the versions support a feature, the first version which supports it is listed.

<span class="mw-page-title-main">PulseAudio</span> Sound server for Unix-like operating systems

PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as FreeBSD, OpenBSD, and macOS; as well as Illumos distributions and the Solaris operating system. It serves as a middleware in between applications and hardware and handles raw PCM audio streams.

<span class="mw-page-title-main">FreeBSD</span> Free and open-source Unix-like operating system

FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD) which currently runs on IA-32, x86-64, ARM, PowerPC and RISC-V based computers. The first version was released in 1993 developed from 386BSD—the first fully functional and free Unix clone—and has since continuously been the most commonly used BSD-derived operating system.

<span class="mw-page-title-main">NTFS-3G</span> Implementation of NTFS file system

NTFS-3G is an open-source cross-platform implementation of the Microsoft Windows NTFS file system with read/write support. NTFS-3G often uses the FUSE file system interface, so it can run unmodified on many different operating systems. It is runnable on Linux, FreeBSD, NetBSD, OpenSolaris, illumos, BeOS, QNX, WinCE, Nucleus, VxWorks, Haiku, MorphOS, Minix, macOS and OpenBSD. It is licensed under the GNU General Public License. It is a partial fork of ntfsprogs and is under active maintenance and development.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

License compatibility is a legal framework that allows for pieces of software with different software licenses to be distributed together. The need for such a framework arises because the different licenses can contain contradictory requirements, rendering it impossible to legally combine source code from separately-licensed software in order to create and publish a new program. Proprietary licenses are generally program-specific and incompatible; authors must negotiate to combine code. Copyleft licenses are commonly deliberately incompatible with proprietary licenses, in order to prevent copyleft software from being re-licensed under a proprietary license, turning it into proprietary software. Many copyleft licenses explicitly allow relicensing under some other copyleft licenses. Permissive licenses are compatible with everything, including proprietary licenses; there is thus no guarantee that all derived works will remain under a permissive license.

<span class="mw-page-title-main">Illumos</span> Free software implementation of the Solaris kernel

Illumos is a partly free and open-source Unix operating system. It has been developed since 2010 and based on OpenSolaris—after the discontinuation of that product by Oracle—and comprises a kernel, device drivers, system libraries, and utility software for system administration. The core is now the base for many different open-sourced Illumos distributions, in a similar way in which the Linux kernel is used in different Linux distributions.

<span class="mw-page-title-main">LXC</span> Operating system-level virtualization for Linux

Linux Containers (LXC) is an operating system-level virtualization method for running multiple isolated Linux systems (containers) on a control host using a single Linux kernel.

<span class="mw-page-title-main">SmartOS</span> Operating system

SmartOS is a free and open-source SVR4 hypervisor based on the UNIX operating system that combines OpenSolaris technology with bhyve and KVM virtualization. Its core kernel contributes to the illumos project. It features several technologies: Crossbow, DTrace, bhyve, KVM, ZFS, and Zones. Unlike other illumos distributions, SmartOS employs NetBSD pkgsrc package management. SmartOS is designed to be particularly suitable for building clouds and generating appliances. It was originally developed for and by Joyent, who announced in April 2022 that they had sold their business supporting and developing of Triton Datacenter and SmartOS to MNX Solutions. It is open-source and free for anyone to use.

LZ4 is a lossless data compression algorithm that is focused on compression and decompression speed. It belongs to the LZ77 family of byte-oriented compression schemes.

Zstandard is a lossless data compression algorithm developed by Yann Collet at Facebook. Zstd is the corresponding reference implementation in C, released as open-source software on 31 August 2016.

ZFS is a file system with volume management capabilities. It 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 to 2010, the open source version of ZFS was ported to Linux, Mac OS X and FreeBSD. In 2010, the illumos project forked a recent version of OpenSolaris, including ZFS, to continue its development as an open source project. In 2013, OpenZFS was founded to coordinate the development of open source ZFS. OpenZFS maintains and manages the core ZFS code, while organizations using ZFS maintain the specific code and validation processes required for ZFS to integrate within their systems. OpenZFS is widely used in Unix-like systems.

References

  1. "zfs-2.2.7". December 12, 2024. Retrieved December 12, 2024.
  2. 1 2 Releases · openzfs/zfs on GitHub
  3. "OpenZFS – Communities co-operating on ZFS code and features". freebsdnews.net. September 23, 2013. Archived from the original on October 14, 2013. Retrieved March 14, 2014.
  4. "FreeNAS and TrueNAS are Unifying". March 5, 2020. Archived from the original on June 4, 2020. Retrieved June 7, 2020.
  5. "OpenZFS 2.0 · openzfs/ZFS". GitHub . Archived from the original on April 17, 2020. Retrieved June 7, 2020.
  6. 1 2 3 "OpenZFS History". open-zfs.org. Archived from the original on December 24, 2013. Retrieved September 24, 2013.
  7. 1 2 Koutoupis, Petros (June 1, 2016). "ZFS: Finding Its Way to a Linux Near You?". Linux Journal . Archived from the original on June 27, 2016. Retrieved July 4, 2016.
  8. 1 2 Ahrens, Matt; Behlendorf, Brian (September 17, 2013). "LinuxCon 2013: OpenZFS" (PDF). Linux Foundation. Archived (PDF) from the original on November 13, 2013. Retrieved November 13, 2013.
  9. Cantrill, Bryan (December 8, 2011). "Fork Yeah! The Rise and Development of illumos". SlideShare. Archived from the original on September 27, 2013. Retrieved September 24, 2013.
  10. "illumos FAQs". illumos.org. Archived from the original on December 24, 2013. Retrieved September 24, 2013.
  11. "MacZFS: Official Site for the Free ZFS for Mac OS". code.google.com. Archived from the original on February 11, 2014. Retrieved March 2, 2014.
  12. "OpenZFS on OS X". openzfsonosx.org. November 15, 2014. Archived from the original on November 29, 2014. Retrieved November 23, 2014.
  13. Corbet, Jonathan (March 29, 2013). "ZFS on Linux 0.6.1". LWN.net. Archived from the original on July 30, 2016. Retrieved July 4, 2016.
  14. "The OpenZFS project launches". LWN.net. September 17, 2013. Archived from the original on October 11, 2016. Retrieved October 1, 2013.
  15. "OpenZFS Announcement". open-zfs.org. September 17, 2013. Archived from the original on April 2, 2018. Retrieved September 19, 2013.
  16. "Release OpenZFS 2.0.0 · openzfs/zfs". GitHub. Retrieved March 11, 2024.
  17. Moglen, Eben; Choudharyl, Mishi (February 26, 2016). "The Linux Kernel, CDDL and Related Issues". softwarefreedom.org. Archived from the original on April 1, 2016. Retrieved March 30, 2016.
  18. Kuhn, Bradley M.; Sandler, Karen M. (February 25, 2016). "GPL Violations Related to Combining ZFS and Linux". sfconservancy.org. Archived from the original on April 3, 2016. Retrieved March 30, 2016.
  19. Bottomley, James (February 23, 2016). "Are GPLv2 and CDDL incompatible?". hansenpartnership.com. Archived from the original on March 1, 2016. Retrieved July 3, 2016.
  20. Paul, Ryan (June 9, 2010). "Uptake of native Linux ZFS port hampered by license conflict". Ars Technica . Archived from the original on July 14, 2014. Retrieved July 1, 2014.
  21. 1 2 Sharwood, Simon (April 21, 2016). "Ubuntu 16.04 LTS arrives today complete with forbidden ZFS". The Register . Archived from the original on July 8, 2016. Retrieved July 3, 2016.
  22. Larabel, Michael (October 6, 2015). "Ubuntu is Planning to Make The ZFS Filesystem a "Standard" Offering". Phoronix. Archived from the original on June 30, 2016. Retrieved July 3, 2016.
  23. "Apple: Leopard offers limited ZFS read-only". MacNN. June 12, 2007. Archived from the original on June 19, 2007. Retrieved June 23, 2007.
  24. "Apple delivers ZFS Read/Write Developer Preview 1.1 for Leopard". Ars Technica. October 7, 2007. Archived from the original on October 10, 2007. Retrieved October 7, 2007.
  25. Kristo, Ché (November 18, 2007). "ZFS Beta Seed v1.1 will not install on Leopard.1 (10.5.1) " ideas are free". Archived from the original on December 24, 2007. Retrieved December 30, 2007.
  26. "ZFS". November 2, 2009. Archived from the original on November 2, 2009. Retrieved September 19, 2024.
  27. http://alblue.blogspot.com/2008/11/zfs-119-on-mac-os-x.html Archived February 20, 2012, at the Wayback Machine |title=Alblue.blogspot.com
  28. "Snow Leopard (archive.org cache)". July 21, 2008. Archived from the original on July 21, 2008.
  29. "Snow Leopard". June 9, 2009. Archived from the original on July 21, 2008. Retrieved June 10, 2008.
  30. "zfs-macos | Google Groups". Archived from the original on November 8, 2012. Retrieved November 4, 2011.
  31. "maczfs – Official Site for the Free ZFS for Mac OS – Google Project Hosting". Archived from the original on July 29, 2016. Retrieved July 30, 2012.
  32. Sallings, Dustin (May 31, 2024), dustin/mac-zfs , retrieved September 19, 2024
  33. Frequently Asked Questions page Archived March 19, 2015, at the Wayback Machine on code.google.com/p/maczfs
  34. "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved September 19, 2024.
  35. "oi_151a_prestable5 Release Notes". Archived from the original on May 17, 2016. Retrieved May 23, 2016.
  36. "Upgrading from OpenSolaris". Archived from the original on September 26, 2011. Retrieved September 24, 2011.
  37. "OpenZFS on OS X". openzfsonosx.org. September 29, 2014. Archived from the original on November 29, 2014. Retrieved November 23, 2014.
  38. 1 2 "Features – OpenZFS – Feature flags". OpenZFS. Archived from the original on September 22, 2013. Retrieved September 22, 2013.
  39. "MacZFS: Official Site for the Free ZFS for Mac OS". code.google.com. MacZFS. Archived from the original on March 19, 2015. Retrieved March 2, 2014.
  40. "ZEVO Wiki Site/ZFS Pool And Filesystem Versions". GreenBytes, Inc. September 15, 2012. Archived from the original on August 10, 2014. Retrieved September 22, 2013.
  41. "Github zfs-port branch". GitHub . September 23, 2014. Archived from the original on January 9, 2016. Retrieved October 5, 2014.
  42. "NetBSD Google Summer of Code projects: ZFS". Archived from the original on October 11, 2007. Retrieved September 5, 2007.
  43. Dawidek, Paweł (April 6, 2007). "ZFS committed to the FreeBSD base". Archived from the original on June 22, 2012. Retrieved April 6, 2007.
  44. "Revision 192498". May 20, 2009. Retrieved May 22, 2009.
  45. "ZFS v13 in 7-STABLE". May 21, 2009. Archived from the original on May 27, 2009. Retrieved May 22, 2009.
  46. "iSCSI target for FreeBSD". Archived from the original on July 14, 2011. Retrieved August 6, 2011.
  47. "FreeBSD 13.0-RELEASE Release Notes". FreeBSD. The FreeBSD Project. Retrieved July 10, 2021.
  48. Macy, Matt (August 25, 2020). "commit 9e5787d2284e187abb5b654d924394a65772e004 Merge OpenZFS support in to HEAD". src - FreeBSD source tree. Retrieved July 10, 2021.
  49. "TrueOS discontinuation". trueos.com. August 19, 2020. Archived from the original on January 24, 2021. Retrieved April 9, 2021.
  50. "TrueNAS 12.0 is Released!". October 21, 2020. Retrieved April 9, 2021.
  51. "NAS4Free: Features". Archived from the original on February 6, 2015. Retrieved January 13, 2015.
  52. "Debian GNU/kFreeBSD FAQ". Is there ZFS support?. Archived from the original on September 27, 2013. Retrieved September 24, 2013.
  53. "Debian GNU/kFreeBSD FAQ". Can I use ZFS as root or /boot file system?. Archived from the original on January 18, 2019. Retrieved September 24, 2013.
  54. "Debian GNU/kFreeBSD FAQ". What grub commands are necessary to boot Debian/kFreeBSD from a zfs root?. Archived from the original on January 18, 2019. Retrieved September 24, 2013.
  55. Larabel, Michael (September 10, 2010). "Debian GNU/kFreeBSD Becomes More Interesting". Phoronix. Archived from the original on November 29, 2016. Retrieved September 24, 2013.
  56. Moglen, Eben; Choudharyl, Mishi (February 26, 2016). "The Linux Kernel, CDDL and Related Issues". softwarefreedom.org. Archived from the original on April 1, 2016. Retrieved March 30, 2016.
  57. Kuhn, Bradley M.; Sandler, Karen M. (February 25, 2016). "GPL Violations Related to Combining ZFS and Linux". sfconservancy.org. Archived from the original on April 3, 2016. Retrieved March 30, 2016.
  58. "Linus on GPLv3 and ZFS". Lwn.net. June 12, 2007. Archived from the original on July 23, 2011. Retrieved November 4, 2011.
  59. Paul, Ryan (June 9, 2010). "Uptake of native Linux ZFS port hampered by license conflict". Ars Technica. Archived from the original on July 14, 2014. Retrieved July 1, 2014.
  60. Rajgarhia, Aditya & Gehani, Ashish (November 23, 2012). "Performance and Extension of User Space File Systems" (PDF). Archived (PDF) from the original on September 7, 2014. Retrieved November 23, 2012.
  61. Behlendorf, Brian (May 28, 2013). "spl/zfs-0.6.1 released". zfs-announce mailing list. Archived from the original on June 8, 2013. Retrieved October 9, 2013.
  62. "ZFS on Linux". Archived from the original on May 22, 2019. Retrieved August 29, 2013.
  63. Ahrens, Matt; Behlendorf, Brian (September 17, 2013). "LinuxCon 2013: OpenZFS" (PDF). linuxfoundation.org. Archived (PDF) from the original on June 7, 2020. Retrieved November 13, 2013.
  64. "ZFS on Linux". zfsonlinux.org. Archived from the original on May 22, 2019. Retrieved August 13, 2014.
  65. Darshin (August 24, 2010). "ZFS Port to Linux (all versions)". Archived from the original on March 11, 2012. Retrieved August 31, 2010.
  66. "Where can I get the ZFS for Linux source code?". Archived from the original on October 8, 2011. Retrieved August 29, 2013.
  67. Phoronix (November 22, 2010). "Running The Native ZFS Linux Kernel Module, Plus Benchmarks". Archived from the original on December 11, 2010. Retrieved December 7, 2010.
  68. 1 2 "KQ ZFS Linux Is No Longer Actively Being Worked On". June 10, 2011. Archived from the original on November 29, 2016. Retrieved September 14, 2016.
  69. "zfs-linux / zfs". GitHub . Archived from the original on May 16, 2011. Retrieved September 15, 2011.
  70. "ZFS – Gentoo documentation". gentoo.org. Archived from the original on October 3, 2013. Retrieved October 9, 2013.
  71. "ZFS root". Slackware ZFS root. SlackWiki.com. Archived from the original on August 14, 2014. Retrieved August 13, 2014.
  72. "ZFS root (builtin)". Slackware ZFS root (builtin). SlackWiki.com. Archived from the original on August 14, 2014. Retrieved August 13, 2014.
  73. Michael Larabel (October 6, 2015). "Ubuntu Is Planning To Make The ZFS File-System A "Standard" Offering". Phoronix. Archived from the original on June 30, 2016. Retrieved June 30, 2016.
  74. Dustin Kirkland (February 18, 2016). "ZFS Licensing and Linux". Ubuntu Insights. Canonical. Archived from the original on July 29, 2016. Retrieved June 30, 2016.
  75. Moglen, Eben; Choudhary, Mishi (February 26, 2016). "The Linux Kernel, CDDL and Related Issues". Archived from the original on July 14, 2016. Retrieved June 30, 2016.
  76. "GPL Violations Related to Combining ZFS and Linux". Software Freedom Conservancy. Retrieved September 19, 2024.
  77. Larabel, Michael. "Taking ZFS For A Test Drive On Ubuntu 16.04 LTS". phoronix. Phoronix Media. Archived from the original on September 19, 2016. Retrieved April 25, 2016.
  78. "Ubuntu ZFS support in 19.10: Introduction". August 6, 2019. Archived from the original on October 23, 2019. Retrieved October 23, 2019.
  79. Salter, Jim (October 10, 2019). "A detailed look at Ubuntu's new experimental ZFS installer". Ars Technica. Archived from the original on December 31, 2019. Retrieved January 14, 2020.
  80. "Software Status". www.truenas.com. August 8, 2022. Retrieved January 7, 2024.
  81. "zfs-win". Google Search . Google Code Archive. Archived from the original on December 30, 2016. Retrieved December 11, 2017.
  82. "Open ZFS File-System Running On Windows". Phoronix . Archived from the original on December 11, 2017. Retrieved December 11, 2017.
  83. "OpenZFS on Windows". GitHub . Archived from the original on November 20, 2017. Retrieved December 11, 2017.
  84. openzfsonwindows/openzfs, openzfsonwindows, October 13, 2024, retrieved October 15, 2024
  85. "Solaris ZFS Administration Guide, Appendix A ZFS Version Descriptions". Oracle Corporation. 2010. Archived from the original on April 6, 2011. Retrieved February 11, 2011.
  86. "Oracle Solaris ZFS Version Descriptions". Oracle Corporation. Archived from the original on October 7, 2013. Retrieved September 23, 2013.
  87. 1 2 3 4 5 6 7 8 Siden, Christopher (January 11, 2012). "ZFS Feature Flags (Illumos Meetup)" (PDF). delphix.com. Archived from the original (PDF) on April 3, 2013. Retrieved July 4, 2016.
  88. "OpenZFS Features – Feature flags". open-zfs.org. Archived from the original on September 22, 2013. Retrieved September 23, 2013.
  89. Siden, Christopher (January 2012). "ZFS Feature Flags" (PDF). Illumos Meetup. Delphix. p. 4. Archived from the original (PDF) on April 3, 2013. Retrieved September 22, 2013.
  90. "/usr/src/uts/common/sys/fs/zfs.h (line 338)". illumos (GitHub). Archived from the original on February 11, 2016. Retrieved November 16, 2013.
  91. "/usr/src/uts/common/fs/zfs/zfeature.c (line 89)". illumos (GitHub). Archived from the original on February 11, 2016. Retrieved November 16, 2013.
  92. 1 2 "OpenZFS FAQ: Are storage pools created by OpenZFS portable between operating systems?". open-zfs.org. September 26, 2013. Archived from the original on January 3, 2016. Retrieved October 30, 2015.
  93. "Feature Flags — OpenZFS documentation". openzfs.github.io. Retrieved January 4, 2024.
  94. "Feature Flags – OpenZFS". open-zfs.org. Archived from the original on August 29, 2017. Retrieved August 28, 2017.
  95. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 "Archived copy" (PDF). Archived (PDF) from the original on August 6, 2020. Retrieved June 7, 2020.{{cite web}}: CS1 maint: archived copy as title (link)
  96. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 "OpenZFS 2.0 · openzfs/ZFS". GitHub . Archived from the original on April 17, 2020. Retrieved June 7, 2020.
  97. "OpenZFS Leadership Team - Meeting Agenda and Notes". Archived from the original on June 7, 2020. Retrieved June 7, 2020.