ZFS On Linux - It's Alive!
lymeca writes "LinuxWorld reports that Sun Microsystem's ZFS filesystem has been converted from its incarnation in OpenSolaris to a module capable of running in the Linux user-space filsystem project, FUSE. Because of the license incompatibilities with the Linux kernel, it has not yet been integrated for distribution within the kernel itself. This project, called ZFS on FUSE, aims to enable GNU/Linux users to use ZFS as a process in userspace, bypassing the legal barrier inherent in having the filesystem coded into the Linux kernel itself. Booting from a ZFS partition has been confirmed to work. The performance currently clocks in at about half as fast as XFS, but with all the success the NTFS-3g project has had creating a high performance FUSE implementation of the NTFS filesystem, there's hope that performance tweaking could yield a practical elimination of barriers for GNU/Linux users to make use of all that ZFS has to offer."
The in-kernel vs userland distinction has always struck me as quite arbitrary. So in one case you're linked at compile time and in another case you compile them separately and go through system calls. Why should that make one of them a derivative work and the other not? In either case the file system can be taken out and you still have a perfectly functional kernel that can run other file systems. Same goes for graphics drivers.
The GPL doesn't attempt to codify all the intricate details that it would take to define such a distinction in the license. It's only described as an accepted rule of thumb in the FAQ. So what's the deal? It seems like this rule is really holding back some commercial support for Linux - is the current situation what we really want, and at any rate how did we get here? Would we be better off if such a separable, non-essential feature could be linked in somehow instead of needing to be put behind extra layers of abstraction?
The summary makes it sound as if ZFS will ever be included in the kernel. Anything FUSE will never be in the kernel, except the FUSE driver itself. Userspace programs and kernelspace are considered separate for a reason.
Of course, this will all change if both Sun and Torvalds switch to GPL3...
Grub has supported ZFS booting for a while (forget which branch though).
It's time for Sun to put their money where their mouth is. Linus was absolutely right recently when he noted that Sun wanted access to Linux's drivers. They also have co-opted gnome, and taken advantage of the renaissance that Linux brought to the (massively decaying) UNIX ecosystem.
Let's find a way to settle these license issues. ZFS looks to be great innovation, but Sun appears to be playing license games with the express purpose of keeping Linux at bay.
Seriously, not to start a holy war but doesn't this show a limitation of the "openness" of Linux. I mean FreeBSD was able to integrate it into the kernel (more specificaly with geom) because their BSD licensing structure doesn't put limitations on the code. But Linux's GPL seems to restrict development so that code is open as according to GPL... I'm still amazed more people don't complain about the way Linux is licensed and released.
Can't you just make a binary blob kernel module? I know the GPL zealots hate the idea, but wouldn't this also get around the liscencing problems?
Test your net with Netalyzr
The $COMPANY network is loaded with Linux workstations and servers, all with their own lotsabyte drives -- and the only things those drives are used for is a tiny system image. Meanwhile the network is getting hammered.
I might not kill to get a several-hundred-gigabyte local network cache -- but don't tempt me.
Lacking <sarcasm> tags,
If you can suffer the bizarre presentation style Sun have used for this video, it's quite informative about the benefits of ZFS.
Prosperity is only an instrument to be used, not a deity to be worshipped. Calvin Coolidge
Really? Stick an old 20gb drive in as your boot drive and boot from whatever you have to to get up and going, load ZFS modules, mount all drives and enjoy. What's so terrible about booting from a different drive / file system? Most mobos now let you hang boatloads of drives of all types on them.
I can't think of any reason why it would be so terrible to boot up from an old 20gb with ext2/ext3 or anything else, then run the rest of your system under whatever. I'm doing that now anyway, I boot from ext2 then everything else is ext3. Doesn't make my performance suffer any that I can tell.
Besides, I suspect that most people that would run ZFS are the type of people that leave their machines up for months at a time. In that case, why the panic attacks over booting issues?
I hope they can find some way to resolve the license issues, I'm excited about ZFS (in concept and theory) and I would love to give it a go. Finally a system that's up with the times.
Maybe a microkernel OS wouldn't have this problem. But then again, people can put any restrictions they want in a license, can't they?
Most important distinction is not kernel-space (or monolithic) vs. user-space (or microkernel) but rather whether the license allows linking with incompatibly licensed software. I.e. if the relevant parts of the OS have an LGPL-like license rather than GPL-like.
there's hope that performance tweaking could yield a practical elimination of barriers
Hows that memory copy from userspace comming, has it healed up yet?
I think you underestimate just how much I just dont care.
I almost jumped out of my skin when I read the headline... then they threw in the little tidbit of information that its running through FUSE. I certainly appreciate the work that went into it, but I'm quiet certain FUSE will never catch up to in-kernel filesystems for speed and performance.
http://blogs.sun.com/darren/entry/zfs_under_gplv2
ZFS On Linux - It's Alive!! IT IS ALIVE!!! MWUHAHAHAHAHAHAHA!!!!!
The manic laughter is especially important!
Only to idiots, are orders laws.
-- Henning von Tresckow
> The GPL "everything under our license" philosophy is the sole cause of these so-called "license issues". If Linux wants to use Sun's code, why should Sun have to release it under Linux' license?
...
Given that Sun promised to GPLv3 it, the problem might be more than Linux uses an outdated version of the GPL than that they use the GPL at all.
They may not be doing it out of benevolence, but Sun did open Java, so I'll give them at least some credit. Heh, even my captcha is 'eclipse'
There's a Linux filesystem under development that might be able to compare favourably with ZFS if shown some love by developers:
* http://oss.oracle.com/projects/btrfs/
* http://kerneltrap.org/node/8376
Avoid the license squabbles and do what we do best: build it ourselves, only better.
Why couldn't ZFS be distributed separately in kernel module form and installed by the user? Ubuntu and others integrate mscorefonts, NVidia drivers and others this way. Is the OpenSolaris license so heinous that it's worse than those examples?
I doubt it.
Lurking at the bottom of the gravity well, getting old
Very true. And its not just drives which matter here; basicly you're talking filesystems so this issue can simply cover several partitions. Just take a look at the latest Ubuntu and try to install it onto a single partition. You'll get an error warning you that Grub might have a problem with this setup and that its adviced to use a seperate /boot partition or use Lilo.
If thats "commonly accepted" (I know I'm generalizing) then whats so bad about doing the same with ZFS? Maybe because this gem is a Sun product and no matter what Sun does for the open source movement as a whole or, in this thread, Linux in particular some people simple need to have something to whine about. Ofcourse thats just my 2 cents here.
Wow, how cool is it to run your file system with the same priority given to a web browser or music player. But hey, it's ONLY a file system!!
Keep duct taping stuff onto Lunix, d00dz!! It's what made Lunix the #1 operating system it is today!
Why couldn't this be implemented in the kernel and have the patches to that kernel be hosted in a country which doesn't care too much about licensing?
Read the best of all of Slash: seenonslash.com
But does it run on Windows?
80 CC D8 AF AE D3 AB 54 B7 2E CE 67 C7
The FSF has used the syscall interface as a guideline to determine whether something is a derived work or not. It is a guideline, not a hard rule though, and I suspect they would consider user-space ZFS for a derived work using a technical trick to avoid being linked into the kernel. I.e. infringing. However, since the FSF doesn't own the kernel, their opinion on the subject doesn't matter.
I have been wondering this for awhile now and I finally have a relevant story to ask it on: Is ZFS 128-bit or not? It claims to be 128-bit, but Wikipedia gives:
What is it about ZFS that leads to it being a 128-bit filesystem?
You need a server to run samba. it needs decent CPU.
... your network then melts under doubled traffic for disk requests, probably :)
You need NBD (network block device) clients on all those workstations with the spare disk.
Your samba server uses these NBD blocks in a RAID5+1 or whatever, array, which exports to the network.
Red Hat is working on it.
Don't kill me now - but ZFS looks like something all OS should support. With the great innovations of this file system, it just looks wrong to be confined to any given OS or a set of OS.
Now... NTFS supports some of the stuff (not all) found in ZFS, but it's proprietary, so it doesn't qualify.
The horse is still alive lets poke it till it moves.
I don't have a ZetaByte Disk, and I'm not going to any time soon, so why do I care about a ZetaByte files system! ... At least for the immediate future.
Anyone who can afford that much storage can afford to pay a little for a driver built however they like.
hold the copyright to the Linux kernel? It seems to me that he must, as everyone seems to agree that he has control over what license it is issued under (see discussions of GPL v2 vs. v3). If the kernel copyright is not entirely held by Linus, then he would have to get unanimous consent to make any change (impossible?), if he at some point wanted to move to GPL3, right?
So, if he controls the copyright, he can place it under a "GPL plus you're allowed to link ZFS" license. Where's the problem?
"National Security is the chief cause of national insecurity." - Celine's First Law
I often like the u-kernel/hybrid kernel idea of running stuff in userspace as opposed to kernel space for security, extensibility, etc. etc. However, I never would have thought licensing issues. However, what if we did start running more parts of Linux in user-space, creating a hybrid kernel, to get around licensing? Don't want to play with GPL? That's fine, just user-space it. Of course, the down-side is some XYZ Linux distro with all sorts of stuff running in user-space because of licensing restrictions. The idea of trading performance for legality (as opposed to a "real" issue like security or reliability) is somewhat unappealing.
Leave the gun, take the cannoli -- Clemenza, The Godfather
Maybe it is time to rejig FUSE as a kernel module? *ducks*
This is an interesting development in light of recent comments made by Linus about Sun and ZFS in particular, to which Jonathan Schwartz wrote a personal response.
I think there is a world market for maybe five personal web logs.
It is 128-bit clean, the problem is that ANSI C does not provide an data types larger than 64-bits, so they can't actually write (portable) data structures any larger.
Once ANSI defines larger 'int's (96? 128?) then you can write code.
Sun could probably use some kind of bignum library if they wanted to, but since they have not hit 64-bit restrictions on volume sizes yet there's no rush at this moment. They're just planning ahead a decade so they won't have to switch to another FS in the future. UFS lasted for about twenty years and they're hoping ZFS will last just as long.
According to some basic math it would take as much energy to boil the earth's oceans to flip every bit on a 128-bit file system.
Stick an old 20gb drive in as your boot drive
That's *way* overkill. Grub can read minimal ZFS - just have Grub pull off an initrd image from your '/' drive (ZFS), load it into RAM (it'll be ext2 or squashfs or something the kernel can handle) and include a zfs.ko module on the initrd. Load it into RAM, do a pivotroot onto your ZFS / drive, and continue along your merry way.
The 'you can't boot off of ZFS' canard is just a bit of hand-waving by the Sun-haters who are afraid of ZFS. We Sun-haters who like ZFS know how to hack around half-truths.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Thank you for the informative response, it was much better than the other "no" one.
If I understand things correctly, it is possible for users to legally compile the Linux kernel and ZFS together, the sources may even be distributed together as long as there are no pre-linked binaries (ready to run). That should make it possible for a distribution to compile ZFS support into the kernel at install time (i.e. by the user, for their own use, not for distribution).
"National Security is the chief cause of national insecurity." - Celine's First Law
what "patch" is for? (i.e. distribute virgin source code, along with scripts and diffs which can fix/compile everything).
"National Security is the chief cause of national insecurity." - Celine's First Law
if I'm not mistaken (derivative works). Doesn't the GPL allows you to make all the derivative works you want without restriction (i.e. with confidential/proprietary code, for your own use), just no distribution? I don't see how distributing a virgin source file, along with a separate patch file (which is logically just info on how to link the code, not the linking itself, which can only occur in a binary), constitutes a "derivative work."
"National Security is the chief cause of national insecurity." - Celine's First Law
Sun knows that it is impossible to switch Linux to another license. Even if a majority of people in the contributors list all said tomorrow "Let's use license X" (nearly impossible) there are still missing and _dead_ contributors who effectively lock it into a 70 year GPL configuration (at which point it goes public domain and could be re-licensed).
Sun just recently got a chance to sit down with their lawyers decide how they wanted to license OpenSolaris (Nevada, Solaris 11, whatever), as a whole.
Their lawyers modeled the CDDL on the Mozilla Developer License. They wanted to get the code out there without losing sole control, and to be able to option/exert patent influence on people who got access to the technology.
But unlike AOL/Mozilla, they did not dual license it under the GPL. This probably because they knew that Linux could not incorporate OpenSolaris code at all without violating the GPL and CDDL clauses. This preventing Linux from becoming more competetive with Solaris by means of appropriation (they don't want to hurt their own technology advantage and cannabolize sales of licensed/supported Solaris).
But both camps could really use each other's code. It sounds like upper management at Sun is going to change the license for Solaris (as they have the authority to do so; this is impossible for the Linux community to do effectively) to allow this soon, on the heels of GPL'ing java (which has done wonders for its acceptance in the development community).
Project inertia will guarantee that Linux will be Linux, and Solaris will be Solaris. Sun doesn't have anything to fear. Perhaps they were testing the waters with the initial code release to see what the reaction would be.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
Linux,
Please re-consider follow a more free license rather than a hate-oriented lincense.
Free the code, free the programmers.
What would it take to run the OpenSolaris kernel instead of the Linux kernel in, say, a "Debian" OS? How much of the apps, including the rest of that "Debian Solaris", would have to be revised to use the OpenSolaris kernel? How much revision (to the apps or the Debian bundle) would be required to run OpenSolaris apps on that Debian Solaris?
--
make install -not war
I think though that the original comment was not concerned with this but with the legal issues of kernel vs application space. The Linux license states that it is OK to run closed apps with Linux. As such, the Linux license is distinct from the standard GPL which makes no mention. Thus, you really have to say that the Linux license is no longer GPL, but is GPL-based.
However this can get rather silly. If you muddy the distinction between apps and OS because it is all code, then why stop there? Why not include data too? After all, different data causes different code execution. Data like spread sheets are stuffed with macros etc which are really just code.
Engineering is the art of compromise.
Linux is becoming a microkernel. Linus might even get a passing grade.
This is already on System Rescue CD 0.3.6, please see http://www.sysresccd.org/Detailed-packages-list
So to summarize what you wrote, L. Torvald "wrote specific terms into the modified GPL v2", and these terms are that Linux is under the non-modified GPL v2 and not under a yet unwritten, hence unknown license ? Ain't you making a confusion between the license and the statement about under what license the code is ?
Folks, don`t fool yourself, Linux is GPL and will stay GPL(v2). Linus is very clear on this, and the man has good reasons, if linux was BSD, it never be what it is today. BSD is everyone for himself and encourages branches not merging. GPL(v2) is the guardian of pure linux evolution. Binary modules should however find their place on linux, but there are drawbacks which are normal
btrfs looks like a clone, at least functionally, of ZFS (and NetApp WAFL for that matter). It is still pre alpha but it has the snapshots, checksums etc, but not the RAID functionality yet. Though that is planned. Comes from Oracle who did a cluster file system before, BTW.
The FUSE implementations are for compatibility--when someone hands you a ZFS or NTFS formatted disk and you have to be able to read it. FUSE is also useful for remote file systems, where the extra overhead doesn't matter.
For your primary local disk file system, you really need a kernel-based implementation.
Well, the main thing I regret about the ZFS/Linux license incompatibility is that we don't get a chance to see ZFS fall flat on its face like all the other supposedly terribly advanced file systems. But that's a minor regret. In the end, we all know that the next file system for Linux will be ext4, and that's a good thing as far as I'm concerned.
flippant \flip"pant\, a.
Speaking fluently and confidently, without knowledge or consideration; empty; trifling; inconsiderate; pert; petulant. [1913 Webster]
“Common sense is not so common.” — Voltaire
What if you layer an ext3 filesystem on top of an NFS filesystem using UnionFS? UnionFS 2.0 just came out, which supposedly takes care of the problem of "what if I modify the underlying filesystem?" It might work... Then again, it might not, too :)
> It wasn't chosen to be incompatible with the GPL
Bullshit! There is video of sun folk stating exactly this. At a Debian meeting or something IIRC.
but ZFS on FreeBSD isn't. (It was imported to the FreeBSD kernel on Fri Apr 6 2007 by pjd).
We are currently working on tuning and memory usage issues so that it will be as solid as possible for the 7.0 release this fall. It is already being used by some users, who are reporting good results.
It wasn't even mentioned in the Slashdot "bsd" section. Someone will have to tell me why.
mcl
Here's how.
I'm developing (under contract) an open source, ultra-modular game engine. I originally intended to release it under the GPL, but upon closer examination of the license determined that it would then be impossible to make a game or other addon package licensed under anything but the GPL.
So now, rather than use a less restrictive license directly, I will have to release under a customized GPL (similar to the LGPL) which allows for linking with "proprietary" packages and set up a very elaborate and clumsy subsystem to prevent GPL and "proprietary" packages from being loaded at the same time, in stark contrast to the elegance of the rest of the code.
cue FSF zealots telling me that I am morally wrong for supporting proprietary software in this way
On top of that, I had to sell the idea of not using the vanilla GPL to my boss, who was freaking out about how that would keep it out of Debian forever.
What if I'm writing code and I want others to benefit and bootstrap from my code without the GPL's restrictions on what they can do? By using a less restrictive license, I forbid them from releasing their own code under the GPL. The LGPL doesn't always cut it for this case, either.
-:sigma.SB
WARN
THERE IS ANOTHER SYSTEM