Native ZFS Is Coming To Linux Next Month
Prior to the emergence of Btrfs as a viable next-generation Linux file-system, Sun's ZFS file-system was sought after for Linux due to its advanced feature-set and capabilities compared to EXT3 and other open-source file-systems at the time. While ZFS support has worked its way into OpenSolaris, FreeBSD, NetBSD, and other operating systems, ZFS had not been ported to Linux as its source-code is distributed under the CDDL license, which is incompatible with the GNU GPL barring it from integration into the mainline Linux kernel. Next month, however, a working ZFS module for the Linux kernel without a dependence on FUSE will be publicly released.
Besides the CDDL and GPL being incompatible with each other, the Sun file-system cannot simply be reimplemented in a new source base under the GNU Public License due to patents covering ZFS. ZFS has been ported to run under the Linux FUSE module that puts the file-system in user-space, but that limits the capabilities of the file-system and hampers the disk performance. ZFS FUSE for Linux continues to be worked on at zfs-fuse.net. The United States’ Lawrence Livermore National Laboratory via contract between the lab’s security group and the U.S. Department of Energy started a native port of the ZFS file-system to the Linux kernel, but that open-source code is not yet in a readied state. What is ready though is a native port of ZFS to Linux that is being done by a company known as KQ Infotech. This work of Knowledge Quest Infotech was announced last year on their blog when beginning this porting effort.
Earlier this week we heard from KQ Infotech in our forums where Darshin Vyas, KQ's business manager, shared that their port would soon be entering a closed beta program on Linux. Over the past few days we have learned more about KQ Infotech's porting efforts.
In terms of how native ZFS for Linux is being handled by this Indian company, they are releasing their ported ZFS code under the Common Development & Distribution License and will not be attempting to go for mainline integration. Instead, this company will just be releasing their CDDL source-code as a build-able kernel module for users and ensuring it does not use any GPL-only symbols where there would be license conflicts. KQ Infotech also seems confident that Oracle will not attempt to take any legal action against them for this work.
Unlike the Lawrence Livermore National Laboratory port, the KQ Infotech version right now implements the ZFS POSIX layer so that it is usable. This port is based upon ZFS Pool 18, which is relatively new but lacks support for de-duplication and other new features found in later revisions and what was found in the OpenSolaris code-base prior to its disbandment.
KQ Infotech plans to release this source-code on or around the 15th of September. This code only supports 64-bit Linux and there will be RPMs for Fedora 12 and Red Hat Enterprise Linux 6 Beta 2. Installing ZFS on Ubuntu 10.04 LTS will be supported, but you will need to build the kernel module from source. We are in the process of getting ready to run the first benchmarks of native ZFS on Linux.
While it is nice to finally see a ZFS kernel module for Linux, under the conditions and unclear legal fate its future will be limited and not as hopeful as a proper port that could have been sanctioned by Sun Microsystems. Due to license incompatibilities, KQ's ZFS will not make its way into the Linux kernel nor will distribution vendors pick it up. Anyone wanting to use this as a root file-system would need to take numerous additional steps with building their own kernel and managing the installation. This is also a port of Zpool 18 compared to version 21 or newer, which would provide de-duplication support and other features. At this point, there is also only x86_64 kernel support, which further reduces its reach. It is also not clear from KQ Infotech's intentions whether this will always be a freely available module or how they plan to monetize the work that has been in development for many months in the dark without the code even being available prior to the planned beta release.
This work would have also carried more weight had it been released two or three years ago prior to the emergence of Btrfs as a wonderful next-generation file-system with capabilities that can compete with ZFS. In the past month we have delivered benchmarks three times of the ZFS file-system running under FreeBSD 8.1: Running ZFS with CAM-based ATA, ZFS On FreeBSD vs. EXT4 & Btrfs On Linux, and lastly was Btrfs, EXT4, & ZFS On A Solid-State Drive. The Btrfs and EXT4 file-systems on Linux easily beat ZFS when it came to SSD/HDD performance, which could be due to bottlenecks elsewhere in the FreeBSD kernel, but chances are we won't see ZFS running measurably faster (if at all) than EXT4/Btrfs on Linux. The availability of this ZFS module for Linux may be fun to try out, but it will not change the Linux file-system landscape and will likely just find use within niche environments.
Those interested in a few more bits of information on KQ Infotech's efforts or their views on bringing this "by far the best file system" to Linux can read this thread.
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.