ZFS: Rampant Layering Violation
I stumbled upon a great article (via Ars Technica) by Jeff Bonwick, responding to Andrew Morton's claim that ZFS is a "rampant layering violation" because it cuts across the traditionally separate worlds of the filesystem, volume manager, and RAID controller.
I think ZFS is a brilliant invention and believe it'll go far. It removes complexity and cost, improves data reliability and generally makes people's (both sysadmins & desktop users) lives soooo much easier. Too many times I've had to be the bearer of bad news and let a customer know their data is corrupt and they'll have to restore from backup. Most of the time we can work out where the problem has occurred and take the necessary steps to prevent or reduce the chances of it from occurring again. However there are times, particularly when dealing with 3rd party storage and it's associated software, that an explanation can't be found and I have to refer the customer to the 3rd party vendor. These problems are invariably due to over complexity in the storage stack.
Whilst ZFS does have it's limitations (can't shrink or boot from ZFS just yet), work is in place to remove these limitations. Remember, ZFS is in it's infancy - all it's competitors have been in the public sector for many many years.
One of the comments on Jeff's post caught my eye (I've copied part of it verbatim)...
first, it is my understanding that sun chose a particular open-license to prevent zfs to make it into the linux kernel. this is unfortunate. with zfs coming to mac osx soon, zfs is the chance for sun to basically implement and benevolently control the future direction of one file system to conquer them all. (hey, sun: how about releasing a slower version for linux that's got the extra useless layer as dummy calls, and that allows me to mount a zfs partition/disk on a sun or on a max osx or on a linux machine?) second, is it not possible for zfs to plug into the upper linux layer for its interface, use the intermediate parts that it has itself rather than calling on linux, and rely only on the lowest linux hardware layer?
This is typical of a lot of people in the Linux community and is quite childish - "he's got a nice shiny new toy and he won't let me play with it". Sun is not preventing Linux from doing anything, it's own license is. In fact there is enough Linux compatible code out there for some enterprising Linux developer to work on their own ZFS port. Remember, the only reason ZFS has made it into FreeBSD and OS X is because their licenses aren't so aggressive towards other licenses.
I'm a big fan of Linux, but not of this kind of mentality. The operating system space is big enough for all of us - it's not a Linux vs MS world. Get over it.