Future of ZFS and Ubuntu [Phoronix + Ubuntu Lists]

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-ZFS-Standard-Plans

https://lists.ubuntu.com/archives/snappy-app-devel/2015-October/000370.html

If it's ZFS you're after, it will be included in Ubuntu as standard in due course. Mark
From the comments:

That said, there is no legal issue preventing the sources from being combined because neither the CDDL nor the GPL place restrictions on aggregations of source code, which is what putting ZFS into the same tree as Linux would be. Binary modules built from such a tree could be distributed with the kernel's GPL modules under what the GPL considers to be an aggregate. These concepts have passed legal review by many parties.

As for actually putting ZFS into Linus' tree (mainline), neither Linus nor the ZoL developers are fans of the idea. Being tightly coupled to the kernel would mean bug reports from ancient versions on enterprise systems because backporting is up to the distribution developers and they do not do it very often. That is a situation that the ZoL project would prefer to avoid. I expect that we will be able to avoid this in Ubuntu through micro-releases under the Stable Release Update policy:

https://wiki.ubuntu.com/StableReleaseUpdates

As for Linus, he is not interested in having CDDL code in his tree, which is okay and works out better for everyone in this instance.

Getting ZFS into a mainline distro is fantastic. I am quite excited.
 
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
I'm not sure I understand the question.

Are you asking "why haven't people re-written ZFS from scratch for linux from the OpenZFS spec?"

If you're asking why isn't there kernel-space support for ZFS yet, the answer is that there is. The ZFSonLinux project sponsored by LLNL has produced a kernel-space ZFS using a Solaris Porting Layer to provide Solaris API calls. It is considered production ready and is (I believe) feature complete up-to but not including transparent encryption.
 

jhu

Lifer
Oct 10, 1999
11,918
9
81
I'm not sure I understand the question.

Are you asking "why haven't people re-written ZFS from scratch for linux from the OpenZFS spec?"

If you're asking why isn't there kernel-space support for ZFS yet, the answer is that there is. The ZFSonLinux project sponsored by LLNL has produced a kernel-space ZFS using a Solaris Porting Layer to provide Solaris API calls. It is considered production ready and is (I believe) feature complete up-to but not including transparent encryption.

But it isn't merged with the mainline kernel. Why not?
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
I think this answers the question?

http://zfsonlinux.org/faq.html#WhatAboutTheLicensingIssue

ZFS is licensed under the Common Development and Distribution License (CDDL), and the Linux kernel is licensed under the GNU General Public License Version 2 (GPLv2). While both are free open source licenses they are restrictive licenses. The combination of them causes problems because it prevents using pieces of code exclusively available under one license with pieces of code exclusively available under the other in the same binary. In the case of the kernel, this prevents us from distributing ZFS as part of the kernel binary. However, there is nothing in either license that prevents distributing it in the form of a binary module or in the form of source code.
For further reading on this issue see the following excellent article regarding non-GPL licensed kernel modules.

 

zir_blazer

Golden Member
Jun 6, 2013
1,235
534
136
A thing which I'm curious about is how ZFS perform on resource constrained enviroments, since it was a very CPU and RAM demanding filesystem. I know ZFS scales well in big systems, but no idea if it is around EXT4 levels if you use it merely as a File System in a partition without heavy caching resources instead of one or multiple dedicated HDs in RAID plus CPU and RAM.
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
It depends on what you ask it to do.

You can certainly make sure that it performs worse by doing silly things like creating a raid-z out of partitions of your single local drive, filling it 90% full with incompressible unique data (like tv/movies) and then turning dedupe on while setting gzip-9 for compression.

Ext4 would likely perform better in such a case simply because it isn't trying to do a ton of complete nonsense.
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
The comment thread I linked to grew rather large, and ryao made some very nice points about licensing issues...or rather, non-issues that are being mis (or half-) understood into issues.
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
There are a couple of issues at work.

The first I think is patents:

Sun made at least 50 patents on ZFS before releasing the CDDL source, so it is possible that a re-implementation might be fraught with patent issues.

From the wayback machine:
A recent discussion on the lkml examined the possibility of a Linux implementation of Sun's ZFS. It was pointed out that the file system is released under the GPL-incompatible CDDL, and that Sun has filed numerous patents to prevent ZFS from being reverse engineered. Max Yudin pointed out, "according to Jeff Bonwick's blog Sun issued 56 patents on ZFS, but I have no idea what they patented. Sorry, binary compatible ZFS reimplementation with GPL license might not be legal." David Litwin noted that he had been told by a ZFS developer to talk to Linux developers to see about getting non-GPL'd code included with the kernel. Theodore T'so replied, "that was totally useless answer from the ZFS developers. What he should have told you is to contact Sun management, since they are the only ones who can decide whether or not to release ZFS under a GPL license, and more importantly, to give a patent license for any patents they may have filed in the course of developing ZFS."

Alan Cox [interview] suggested, "the real test of whether Sun were serious about ZFS being anywhere but Solaris is what they do to license it - they've patented everything they can, and made the code available only under licenses incompatible with other OS products. Their intent is quite clear, and quite sad. Compare it to what the old Sun company did with NFS, which is now a standard used everywhere." Theodore T'so added, "given that Sun has reportedly filed a huge number of patents covering ZFS and has refused to make them available for anything other than Solaris --- and there are senior Sun programmers who have on record stated that one of the reasons why Sun picked the CDDL was precisely because it was incompatible with GPL and Sun fears Linux ---- I wouldn't bet on Sun being willing to making a patent license available to a hypothetical alternate implementation of the ZFS format for Linux." He went on to note, "of course, this is all open source. If someone wants to work on reimplementing ZFS from scratch, either in userspace or in the kernel, certainly the Linux community won't stop them. Given the patent issues Linus might not feel comfortable including it in the mainline sources without a promise from Sun that they won't sue the pants off of him and The Linux Foundation, but again, that's Sun's decision, and no one else can help you there."
Sun is now replaced with Oracle, which should make one truly quake in terror at the prospect of litigation over patents. As a result, it seems like the only way to go is to use the SPL w/ CDDL ZFS source.

The second is what they have funding for/man-hours for:

ZFSonLinux is a project supported by LLNL and the US-DoD, and a from scratch re-write, even putting aside any patent issues would mean more man-hours thrown at the problem. It is far more efficient to fund a port to emulate Solaris' API calls than to fund a ground-floor re-write. Sort of classic "thing you should never do"
 

jhu

Lifer
Oct 10, 1999
11,918
9
81
There are a couple of issues at work.

The first I think is patents:

Sun made at least 50 patents on ZFS before releasing the CDDL source, so it is possible that a re-implementation might be fraught with patent issues.

From the wayback machine:
Sun is now replaced with Oracle, which should make one truly quake in terror at the prospect of litigation over patents. As a result, it seems like the only way to go is to use the SPL w/ CDDL ZFS source.

The second is what they have funding for/man-hours for:

ZFSonLinux is a project supported by LLNL and the US-DoD, and a from scratch re-write, even putting aside any patent issues would mean more man-hours thrown at the problem. It is far more efficient to fund a port to emulate Solaris' API calls than to fund a ground-floor re-write. Sort of classic "thing you should never do"

Hmmm… now that ZFS code is Oracle's, they could relicense under GPLv2. But they don't. Is it a matter of not invented here vs. BTRFS which they started?
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
Hmmm… now that ZFS code is Oracle's, they could relicense under GPLv2. But they don't. Is it a matter of not invented here vs. BTRFS which they started?

They probably could if they wanted to.

I don't really see what's in it for Oracle, though. Especially considering that they closed-source Solaris w/ ZFS after Sun had opened it.
 

Red Squirrel

No Lifer
May 24, 2003
70,090
13,539
126
www.anyf.ca
I'm surprised the Linux community has not done their own ZFS like file system yet, well there are some but they're not really mainstream. There is mdadm raid for basic raid, that's what I personally use, but it would be nice to have something a bit more advanced too like ZFS but call it something else. Something that also has network capability built in would be awesome too so you can split a file system across multiple systems for redundancy.
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
I'm surprised the Linux community has not done their own ZFS like file system yet, well there are some but they're not really mainstream. There is mdadm raid for basic raid, that's what I personally use, but it would be nice to have something a bit more advanced too like ZFS but call it something else.

Remember how much work went into ZFS. It went into development at Sun in 2000. It took a significant team the better part of 5-6 years working on it as a major product to get it into Solaris. Linux has btrfs natively, but again, that wasn't really developed by the community, it was really an Oracle project that was released to the community.

Something that also has network capability built in would be awesome too so you can split a file system across multiple systems for redundancy.
So what you're describing here is a Clustered, Distributed Filesystem
and Linux definitely has that. Just off hand, Hadoop (HDFS), Lustre, and Red Hat's GlusterFS.
 
Last edited:

zir_blazer

Golden Member
Jun 6, 2013
1,235
534
136
Linux's own ZFS rival is BTRFS. I don't know how much of feature parity there is between them.
 

Essence_of_War

Platinum Member
Feb 21, 2013
2,650
4
81
They have very similar features, but there is often a significant distinction in how the features are implemented.

Take snapshots. zfs snapshots are read-only unless a user/admin promotes them to a clone. The snapshots are additionally separated from the namespace of the zvol/dataset, accessible either through a hidden folder in the root of the dataset/zvol called '.zfs' or through the 'zfs list' command. btrfs snapshots live alongside the volumes they are snapshots of and are full read-write clones by default.