Home > File Systems, Linux, OpenSolaris, Solaris > Revisited: ZFS, Btrfs and Oracle.

Revisited: ZFS, Btrfs and Oracle.

March 19th, 2010

This entry is a continuation of one published in May of 2009. In fact it is relating to a comment made earlier today which I responded to in brief words. I am now taking the time to offer my viewpoint on the whole ZFS licensing under the CDDL and the reasoning for it.

It wasn’t until I started working with the OpenSolaris kernel and by working I mean, modifying code and going through the build process that I finally realized why OpenSolaris was licensed under the Common Development and Distribution License (CDDL). A lot of other people and companies have claim to code used within Solaris. That includes copyrighted code to which Sun does not have the authority to publish in an open source license. This is why they needed to work with a weak copyleft license such as the Mozilla Public License and modify it to their expectations. The CDDL was eventually approved by the Open Source Initiative (OSI) as a valid open source license and Sun Microsystems was then able to release code under its limitations.

Now before I continue I wish to describe 3 different open source licensing models: (1) the strong copyleft license, (2) the weak copyleft license and (3) the non-copyleft license.

The strong copyleft license is a project based license in which it requires that any derived code from the original project must remain under the original license. This method of licensing makes it nearly impossible to link with code under a non-strong copyleft license. As a result of this approach, strong copyleft licenses are often referred to as viral licenses. The most popular of these licenses is the General Public License (GPL) with 3 available versions. The Linux kernel is licensed under this and its success and growth can be attributed to it.

The weak copyleft license is similar to the strong copyleft license except that it is file-based instead of project based. This means that if there are any modifications to a file, the original license must apply; but that file can be combined in a project with code under a different license. This method makes the type of licensing non-viral. The CDDL and the MPL are categorized as weak copyleft licenses.

The third type is the non-copyleft license which offers no requirement for derived works to stay under the original license. In fact, there is also no requirement for derived code to be released under any open source license. This makes it simple for someone to take an open source project and use it as a basis for a proprietary product. A best known example is the BSD license; and Apple’s adoption of FreeBSD kernel code in their XNU kernel or NetApp and their use of FreeBSD in their customized storage appliances.

Continuing where I left off, it would not have been possible to open source the Solaris kernel for the OpenSolaris project if it weren’t for the CDDL license. In turn, ZFS would have been incompatible with the CDDL license if it were licensed under the GPL; although it has no conflict with non-copyleft licenses such as the BSD license. Because of this and now because of Oracle’s admitted support and commitment to Solaris, I doubt this licensing will change; especially to merge it into the Linux kernel. That is why we should be grateful that: (a) ZFS is available under an open source license making it impossible for it to disappear and (b) that Oracle has been committed to Btrfs and bringing an enterprise class solution into the Linux kernel.

This is why we have choices. If you want ZFS functionality, use OpenSolaris or Solaris. If you don’t necessarily need ZFS and are more comfortable with Linux, you have a lot more distributions to choose from. Or if you want ZFS and a familiar Linux environment, there is also Nexenta.

Categories: File Systems, Linux, OpenSolaris, Solaris Tags:
  1. someone
    April 5th, 2010 at 15:34 | #1

    Just wondering why one can forget to mention that ZFS is also available for Linux.
    Zfs-fuse on Linux has about the same performance as on current OpenSolaris.
    My experience with OpenSolaris was very bad and I reccomend using zfs-fuse latest version.

  2. someone
    April 6th, 2010 at 02:01 | #2

    Beware of blogs like the hydrasystemsllc who deletes critical comments with technically well funded arguments.
    It seems to be epidemic for enthusiasts of OpenSolaris which will fade away anyhow.

    If you need ZFS I recommend using current zfs-fuse on Linux.

  3. April 6th, 2010 at 06:33 | #3

    My friend, be patient. The way this blog works is that the administrator needs to approve all messages. You would be surprised with the amount of spam that would be posted if I did not approve the messages. Your comments were never deleted; just not yet approved. Besides I saw that you had posted your initial comment yesterday evening but I had been busy spending time with my 3 month old daughter and figured I’d approve it later.

    Anyways, back to the point. I didn’t forget ZFS over FUSE. I just don’t believe in the project only because certain file systems should not run in user space on a production system for performance reasons. I don’t understand your experience with OpenSolaris as it has always proven to be a great performing OS for me. I will admit that the file system itself is a bit demanding requiring at least 1 GBytes of RAM for proper functionality. And why shouldn’t it. This is not all that unreasonable, especially with how cheap memory has become. Also understand that the file system runs a lot of tasks transparent to the user.

    For instance, I run OpenSolaris on my SunFire server, my ASUS Eee 901 and also through VirtualBox on my laptop running Fedora Linux. In the end I cannot complain about performance as it has always performed well. Especially when you are comfortable with the Solaris environment and begin tuning the operating system and the file system.my

  4. someone
    April 6th, 2010 at 12:53 | #4

    >The way this blog works is that the administrator needs to approve all messages.

    Good blog software would tell so…

    >I didn’t forget ZFS over FUSE. I just don’t believe in the project

    File systems is not a question of beleifs …

    Athough your point is theoretically correct, facts are that samba server has been broken for quite a long time in OpenSolaris. I spoiled serveral working days for finding out that only Solaris Express snv_130 had a usable samba server.

    And transfer speeds of this theoretically superior system are very low compared to ext4, btrfs and even zfs-fuse. This is most probably due to a design bug which throttles writing to the disks which is also visible because the activity LED lights only approx. 50% of time …

  5. April 6th, 2010 at 13:16 | #5

    How are you benchmarking these transfer speeds?

    There is a lot to ZFS which may result in different behaviors or unfavorable results. Also another thing to keep in mind is how the Virtual Address Space (ZFS uses ARC) differs from that in Linux and how data is getting paged to memory before synchronized to disk. For instance, a mounted zpool will use varying block sizes with the capabilities of paging varying page sizes. The longer data resides in memory the less activity you get to the drives. This may help explain LED activity. Note that the schedulers are also drastically different between the two operating systems.

    The file system can also be tuned to achieve greater performance. Aside from relying on a striped pool as opposed to a stand alone volume, you can disable features like atime (in some cases you don’t need to waste kernel threads for access time meta data updates). You can also enable a high performing lzjb compression which will shrink the size of data getting written to disk.

Comments are closed.