RG, what flavor for ZFS?

Now that OpenSolaris is officially dead, what are my options for a Solaris-like server OS that supports ZFS?

As you may remember, I've built more linux-based file servers and web servers than I can count, and I've got servers based on Gentoo or CentOS that have been running for the better part of a decade. Now that I'm finally getting around to a test build of a ZFS-based file server, it seems that Oracle has taken Solaris private, so that there won't be any open-source solaris distributions anymore.

So what are my options now? Are you still running Solaris 10? what would you recommend using now? FreeBSD? Is OpenIndiana a viable option yet?

I'm frustrated beyond belief that I should have fallen into Opensolaris and ZFS right at the time when Oracle was settling in to rip the meat from the bones. I never buy Oracle products, but given what's happened, no one I can influence will ever buy them either.

I still use the last public release of Opensolaris, given that it works for me and has not failed me yet. My needs were not complex. Oracle has changed the licensing on Solaris so that you can download and use Solaris exclusively for developing and testing your software products for it. Period. "Personal use" does not play in that at all. Oracle is less than not interested in what individuals like or not about their stuff.

My position is that at some point, my Opensolaris system will fail or not do what I need it to. By that time, I'm counting on there being a Son of ZFS or another alternative. If I were implementing today, I'd probably go with Free BSD.

There is some possibility that the open initiatives on the bones of Opensolaris will bear fruit. But I'm hoping to coast over the pit that Oracle has dug.

I hope everyone who has any dealings with Oracle will take into account how they did this - the calculation was purely "how can we force users to do what we want them to so we can wring money out of them." True, it's what most businesses do, but mostly they have the decency not to slap you in the face, kick you in the shins, and then demand that you like everything else they do.

Checking in once a week is not a problem, RG. Realistically speaking, I consider that a very timely reply. I am one of those people who tends to rotate my attention through a number of interests, so I can be very lax about checking in at any of my favorite web forums. Sometimes people are busy with real life, and sometimes the best answers take a while to come along.

I guess the difference between your OpenSolaris experiment and mine is that I procrastinated long enough to avoid being kicked in the teeth. I'm very disappointed to see that Oracle essentially decided to kill the open source version of Solaris, and as you said, the only reason that they did this was to force people to buy binaries.

The sole silver lining, if there is one, is that you can still download the Solaris 10 binary files for individual use. You have to register, and you have to state your declared intentions. I did that, citing personal non-business use, and I was able to obtain all of the binaries for test and evaluation. I know that you can do this with the Solaris 11 preview edition, but I'm not sure that this will be an option when the final version of Solaris 11 is rolled out. It may be that Solaris 10 is the dead-end.

I honestly wonder whether those remnants of OpenSolaris (like the Indiana Project) will gain enough critical mass to remain viable. I'd like to see OpenIndiana survive and make it, but realistically speaking, I think that it lacks critical mass and may be doomed to failure. In the open source world, Linux is the 800 lb. gorilla when it comes to critical mass. BSD has critical mass, but it's small by comparison.

Maybe by the time you need a server upgrade, Linux will have the Son of ZFS worked out. Right now, if I had an absolute requirement to implement ZFS, I'd probably opt for BSD over OpenIndiana. At least BSD is ready for prime time.

To us it really stinks that Solaris is being handled the way that it is, but it makes sense when I consider why Oracle bought Sun. It's probably that ZFS was what Oracle needed to differentiate it's enterprise suite to make it competitive with RedHat at the enterprise level. Once Oracle realized that ZFS was the key differentiator, and the linux userspace ports of ZFS just didn't work, they decided to take Solaris private to keep future ZFS developments proprietary. From a business standpoint, it only makes sense.

I have to admit, I'm not familiar enough with the Sun open source licensing agreements to understand how an open source project would allow further derivative works based upon it's open source code to go private. The linux GPL certainly prohibits that sort of thing -- all derivative works are required to remain open source. The Sun open source license must be significantly different from the GPL in ways that I'm not aware of.

I have to admit, I'm not familiar enough with the Sun open source licensing agreements to understand how an open source project would allow further derivative works based upon it's open source code to go private. The linux GPL certainly prohibits that sort of thing -- all derivative works are required to remain open source. The Sun open source license must be significantly different from the GPL in ways that I'm not aware of.

It is. It's been discussed ad nauseum in the Opensolaris fora. The CDDL license is in many ways specifically written to prevent it from ever becoming GPL. The key difference is what you have said - the GPL requires derivative works to become GPL, the CDDL forbids that, and specifically allows private derivative works to be sold.

I've heard that the CDDL was designed specifically to sidestep the forced contribution of derivatives back to public, and possibly with the intent to make it impossible to have Opensolaris source ever get into the Linux world. It's as good a rumor as any. I'm not a lawyer.

It appears that if one can build the kernel modules for themselves, you can just go add ZFS to linux.

It was worth it to me to re-learn unix (and hence solaris) basics to use ZFS, so it may well become worth it for me to go learn to build kernel modules under linux to get ZFS in a form that sidesteps Oracle's arrogance. I have a neighbor who is a professional sysadmin in a linux data shop. I suspect he could be plied with enough foaming mental lubricant to make that work. 8-)

Looks like FreeBSD is going to carry the torch for open source support of ZFS.
OpenIndiana still looks like it's failed to reach critical mass.

Yeah, I keep looking at the two, and I'd agree with you, at least for the moment. I suspect that FreeBSD or ZFS on Linux will be what becomes the open source version of ZFS. Maybe both. If the various schemes for putting zfs onto linux work, it's going to be linux because of the width of the market. By strict legality, I *think* that the issue on linux is that it can't be integrated into the Linux kernel and distributed as such. The scheme of user-compiled modules doing it seems to get around that. At least Oracle hasn't sued people over that one yet. So it is possible that a "compile and integrate" kit could be made which took the open zfs source, a compiler, and a make file or equivalent plus scripting to let a user just say "go", select his version of linux and have the scripts/compiler go make and integrate zfs into his kernel. It would be big, clumsy, and complicated, but it's just picky, not rocket surgery.

I guess that it would be similar to the problem with obtaining the proprietary nVidia video drivers for linux; nVidia won't release their source code, so they provide a proprietary binary file and a script that you use with GCC to build your own kernel module for your OS. It's do-able, but it's a PITB. You have to rebuild the kernel module every time that you perform a kernel upgrade.

I guess building ZFS drivers could work similarly (read: headache). The main difference is that in building the nVidia kernel module, nVidia is somewhat helpful: they provide the binary and the build script. I doubt that Oracle would be so kind.

I wonder how the details will work out -- I guess it's possible that a linux distribution could distribute a ZFS build pack as long as it's not distributed in the same download as the kernel. Maybe the same entity can perform distribution, and separate packaging is all that's required?

I'm thinking that the BSD implementation will be a lot more streamlined (once you learn BSD). To me this means that unless the linux guys solve this problem faster than I can get projects off of my back burner, I'll be learning BSD... at least to try out some server builds.

If I continue to procrastinate maybe they'll solve the problem before my bits rot. Till then, I just occasionally bounce my data from one location to another.

I guess building ZFS drivers could work similarly (read: headache). The main difference is that in building the nVidia kernel module, nVidia is somewhat helpful: they provide the binary and the build script. I doubt that Oracle would be so kind.

Probably not. They're probably mortified that they have to live with the code being public as much as it is.

I wonder how the details will work out -- I guess it's possible that a linux distribution could distribute a ZFS build pack as long as it's not distributed in the same download as the kernel. Maybe the same entity can perform distribution, and separate packaging is all that's required?

It's about here that my "I am not a lawyer" kicks in. I don't know, and it's pretty sure that Oracle would provide some legal misery to anyone for doing so if they're attackable. The LLNL version of this, for instance, would pit Oracle against a government lab. What might happen in that sumo wrestling match is up to who has bought the requisite amount of justice.

Having said that, as I have read that other people have read the licenses, the linux license requires any code built and bound with the kernel to be made free under the linux license, the CDDL specifically forbids rebinding the code as per the linux license. And Sun probably did it that way on purpose. Certainly putting it in user space, ala FUSE is allowed, just hamstrung, slow, and unreliable; this, too, was probably by design, to addict people to ZFS and then rope them into Opensolaris. The license conflicts seem to be surrounding the issue of binding and distributing it with the linux kernel, and the LLNL people opine that a source package that the user compiles then binds into their own kernel sidesteps the issue.

Yes, this is a true PITA. However, the fundamental concepts of computers is that they can take a PITA and make it an automated, more-quickly-over-with PITA, so I'm thinking that once the interface to the kernel can be hardened so a semi-standardized-with-options ZFS build can be plugged in, that compiling with options, even if you have to distribute the compiler, compiler installation, options menu, and so on could/maybe/possibly/might be automated to the point where installing ZFS is a post-installation script after your linux machine is running.

I'm thinking that the BSD implementation will be a lot more streamlined (once you learn BSD). To me this means that unless the linux guys solve this problem faster than I can get projects off of my back burner, I'll be learning BSD... at least to try out some server builds.

Yeah. Right now I'm looking at the version of FreeNAS on BSD with zfs in it.

For what I want, I don't need to know the operating system, only the disk/data management, and that only on the crude user level. I need to install this stuff, and know enough to get to the web/menu based zfs interface. I don't need zfs subtleties either, as it's not even nearly a production environment. It's a place to put data, scrub out the soft bits and run hard archives from. Very much less than the BSD - or Solaris, or Windows, or linux! - operating systems do.

If I continue to procrastinate maybe they'll solve the problem before my bits rot. Till then, I just occasionally bounce my data from one location to another.

OK, did the due dilligence on ZFS/FreeNAS/FreeBSD. I think that's the way, when it releases the next level, and not before. Here's why.

- FreeNAS has the functions I need. Performance is a small issue for me, whatever it is. I'm after data stability and not fancy stuff.
- FreeBSD release 8.2 will have ZFS level 28; this contains some important level updates.
- the FreeNAS current stable release is not upgradeable to the release 8 FreeBSD, and the data has to be considered not moveable unless you have two systems.