From OpenZFS
Revision as of 21:54, 18 September 2013 by Csiden (Talk | contribs)

Jump to: navigation, search


Who contributes to OpenZFS?

OpenZFS brings together developers from multiple open-source forks of the original ZFS project from OpenSolaris to help ensure the compatibility and quality of all of our implementations.

illumos Webpage GitHub
FreeBSD Webpage GitHub
ZFS on Linux Webpage GitHub

Development Model

Why are there four different repositories?

Each repository supports a different operating system. Even though the core of OpenZFS is platform-independent, there are a significant number of platform-specific changes need to be maintained for the parts of ZFS which interact with the rest of the operating system (VFS, memory management, disk i/o, etc.).

Are new features and improvements shared between the different repositories?

Yes. Each implementation regularly ports platform-independent changes from the other implementations. One of the goals of OpenZFS is to simplify this porting process.

Are there plans to merge the different repositories?

Not exactly. We want to simplify the sharing of code between implementations by having a platform-independent central repository that runs as a userland process on any operating system. Developers from any implementation could then easily install and test platform-independent changes in that central repository. Every implementation would port changes from this central repository instead of searching the commit history of the other implementations.

There are several reasons we do not want a single repository to support all operating systems:

  • Every developer would have the burden of testing changes for four different operating systems. Most developers are only familiar with kernel development on their operating system of choice, so this would be a huge hurdle to development.
  • Each implementation has its own process for integrating changes, some of which cannot be changed. For example OpenZFS on illumos must follow the illumos integration process because it is part of the larger illumos operating system repository. Most developers are only familiar with the integration process for their operating system of choice. Learning other processes and interacting with multiple communities would be a hurdle to development.


Are storage pools created by OpenZFS portable between operating systems?

Yes. Storage pools can be moved freely between the different implementations of OpenZFS as long as all implementations involved support the same feature flags. New feature flags are usually ported to all operating systems very quickly to maintain compatibility. Storage pools can also be created with certain feature flags disabled to maintain compatibility.

Are storage pools created by OpenZFS compatible with ZFS on Solaris?

Only if you explicitly create the pool with on-disk format version 28 or earlier. OpenZFS is a fork of ZFS on Solaris based on the last release of OpenSolaris from 2010. Source code changes to Solaris have not been released since 2010, so development of OpenZFS has continued completely separately from ZFS on Solaris. Since we cannot see the ZFS on Solaris code we cannot maintain compatibility of the on-disk formats past the last open-source format.


Are you planning to release OpenZFS under a license other than the CDDL?

No, we do not have the power to change the licence of OpenZFS. No single entity holds the copyright to all of the OpenZFS code, every individual contributor to OpenZFS maintains copyright to his or her changes. This means that changing the license would require participation from everyone who has ever contributed code since the project began in 2001.