Apple Discontinues ZFS Project
Zaurus writes "Apple has replaced its ZFS project page with a notice that 'The ZFS project has been discontinued. The mailing list and repository will also be removed shortly.' Apple originally touted ZFS as a feature that would be available in Snow Leopard Server. A few months before release, all mention of ZFS was removed from the Apple web site and literature, and ZFS was notably absent from Snow Leopard Server at launch. Despite repeated attempts to get clarification about their plans from ZFS, Apple has not made any official statement regarding the matter. A zfs-macos Google group has been set up for members of Apple's zfs-discuss mailing list to migrate to, as many people had started using the unfinished ZFS port already. The call is out for developers who can continue the forked project."
Daring Fireball suggests that Apple's decision could have been motivated by NetApp's patent lawsuit over ZFS.
Now if you're using zfs on Mac OS, you can't complain if it loses your data. You already knew it was forked.
Please hand in your geek card as you leave.
http://en.wikipedia.org/wiki/ZFS
Do what thou wilt shall be the whole of the Law
Posting anon, lest someone guess who my sources are.
The long and short of it was, Apple and Sun couldn't come to terms on the licensing. Sun wanted a lot of money for giving it to Apple under different terms and the amount they wanted was in the range of "hell, we could do it ourselves for that".
Add to that, the Oracle buyout and Sun going into management paralysis, and Apple decided to go it alone.
Apple's CoreOS team includes several of the lead engineers from the ZFS project (who fled the remnants of Sun in the Schwartz melt-down), and the architect of the BeFS. I'm expecting Apple to do their own next-generation file system, probably in the 10.7 timeframe.
My sense of entitlement demands that everyone hand everything to me on a silver platter as well! I shouldn't be required to click on a link, much less do a Google search. You and I are in agreement. BTW, you owe me for that.
Dustn Sallings put the code on Github and has already hacked some basic Snow Leopard support and a minimal installer:
http://dustin.github.com/2009/10/23/mac-zfs.html
Code's here, fork away:
http://github.com/dustin/mac-zfs
There just doesn't seem to have been the will within the OS X development group to make this work and to support and fully integrate ZFS into the inner workings of the OS.
I can't agree with that. Spend ten minutes with the filesystem engineers at WWDC, and you wouldn't come away thinking there was any shortage of will to make ZFS fly on the Mac.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
All this time, I thought folks were talking about file management with a phony French accent!
Save zee file to zee FS and you will see that zee bytes go ...
It's NOT me! It's the meds! I'm on 1000mg of Fukitol.
Hearing that ZFS support was upcoming in Snowleopard is one of the things that encouraged me to switch my desktop from Windows XP to MacOS.
It is an understatement to say i'm disappointed to see Apple abandoning this.
Support for ZFS is not just a little feature checkbox, it's a major component of the OS.
It'd be like if Microsoft dropped/cancelled support for Solitaire from Windows....
Steve Jobs commented on HAMMER FS inclusion in 10.7 during WWDC 2009. He said "due to legal and technical constraints we can't touch that"
I'm sure it will, but I'm afraid that doesn't mean that made it practical for Apple to integrate into OS X or that it fitted the use cases they needed for many desktop scenarios.
Um, the technical work was already done. It could have shipped with Snow Leopard. Again, the reason it didn't has nothing to do with the technical feasibility of it.
Ultimately, the only way to deal with silent data corruption or 'bit rot' is to have multiple levels of redundancy several times over for your data - which ZFS has and deals with. No desktop Mac can ever have that.
Why? Because you say so?
Anyone who thinks that is anywhere near being practical to deal with on a desktop system is an idiot
While I may be an idiot, you have to convince me that ZFS is not practical for a desktop. Again, just because you say so is not reason enough. I stand by my statement that ZFS is the only file system with enough benefit to make me explicitly choose it for building servers. You may argue that there's a difference between a server and a desktop but those really are nothing more than abstract concepts. A file system that has too much overhead for my desktop has too much overhead for my servers. Performance matters. ZFS may not be the fastest, but it is no slouch either and the other benefits it brings to the table far outweigh miniscule performance concerns.
By no stretch of the imagination does ZFS handle this 'magically'. There is a severe price to be paid.
What exactly is this severe price? Can you spell it out? Exactly? "Any sufficiently advanced technology is indistinguishable from magic." In that respect yes I will say it is magic because it is head and shoulders more advanced than anything else I've had the pleasure of working with. File systems have not had this kind of improvement in decades.
I'm afraid that hardware, bad sector and disk issues are far, far more prevalent problems than data corruption at an OS level...but I'm afraid it's just not a primary concern for everyone else or for those developing desktop operating systems.
How do you know? It's not a significant problem till the data you need is unavailable when you need it. At home my own modest media library sits on just 500 Gig with no guarantee that any of it will still be whole in 6 months. Sure I back it up. Routinely. But until you access the file you don't know if it's been corrupted. Then how long as it been corrupted? Do your backups go back far enough to compensate? Yes you can checksum everything routinely and maintain a database of checksums to validate file change. Part of the beauty of ZFS is it does this with every thing you put in it, at the block level, and it validates the checksum every time you read the data. If a block fails the check, it not only sends you the valid block from the mirrored copy (You do have redundancy right? Even ZFS won't save you if you only have one copy.) but also replaces the bad block with a copy of the good one.
Storage capacity is skyrocketing. Going to backup to fix problems is a real problem in itself. Are the tapes on-site? Do we have to go to the vault to find an uncorrupted copy? Did the media pool get recycled and now there is no uncorrupted copy? Do you enjoy explaining to an executive why the data they want is unavailable despite spending millions on enterprise class storage and backup solutions? The problems of enterprise storage are becoming problems of home users. I have three terabytes of storage just to backup my home system in a replication layout I'm okay with, but I really would have loved the protection ZFS offers against bit rot to top it off. Stick your head in the sand if you want, but I consider my data and it's availability a little more important. ZFS handles it elegantly, in the background, with negligible performance hit.
"The avalanch has already started, it is too late for the pebbles to vote." -Kosh
Warning: I have become a ZFS fanboy, my statements may not be entirely rational.
Use ZFS for a week on something like a file server, you'll be more than willing to ignore traditional Unix logic (which I firmly believe in) in order to use the goodness that is ZFS.
I'll admit, I'm a ZFS fanboy now, and I've only used it on FBSD 7.2, which is using a much older version of ZFS (v6, current is 13 I think). In 7.2 its not considered production ready and its still awesome to work with for me.
I shoved 4 PATA and 4 SATA drivers in a case, 2 gigs of ram (really the minimum for FBSD and ZFS on a 64 bit machine, which is where it sings). The 4 SATA drivers are in the zraid vdev, 2 of the PATA drives are in another mirrored vdev, and the final 2 in a second mirror vdev. So all the drives have redundancy and they are all in one big zpool with the total space available as one big chunk.
Now thats all well and good, but heres where it gets awesome. Want more space? Add some drives, create a new vdev, add it too the pool, instant space available. Okay, so thats not that impressive in and of itself. I can also add in a SSD as a 'cache' drive, which the ZFS system will then populate with a read only copy of data that gets accessed often in a random way, for a speed increase for your random IO needs.
Okay, so I've got a few terabytes of data available, but I need a to create a share for backup using TimeMachine on my Mac. Well time machine will be happy to consume all the space on the drive. No problem, create a new mount point in the zpool, limit it to 1TB. It will only consume up to 1TB, IF space is available in the zpool. I can also reserve the space if I want to ensure its there for the backups. You can use the same system for quotas of individual users.
I also have a bunch of ISOs with uncompressed data on them that I mount from virtual machines for various reasons, full of essentially text data. Welp, for that create another mountpoint on the same zpool, turn on compression, now my 5TB of text gets compressed into a few hundred gigs automatically and transparently. Its read only, and very important. I have backups, but they are in another state and transfering them back would be a painfully slow process which would cost me a lot of time. So I set the mount point to read only and set copies=2. Now the mount point is read only, and the data is stored twice, on 2 different vdevs. So not only is the data on a raid or a mirror, its on BOTH. If I was really worried I could set copies=3 and it would be on all the vdevs, so as long as one is usable I have my data, assuming all the vdevs have enough space to store the data. One of them doesn't, so copies=2 is the only useful option to me.
I also have a software archive of all my commercial windows software, I want to keep it safe from any sort of infection or modification, so I set that mount point readonly.
So far, I've done nothing that can't be done already with existing methods, but what I've done it across a common shared data pool. Free space is shared across all of them.
I thought ZFS was a waste of time until I started using it. I am by no means a ZFS master, but I've learned that it can do some pretty powerful things. My setup is small, I only use it at home until FBSD 8 is released, which will have what is considered to be a production ready implementation, but I will be moving to it at that point in our internal office servers.
I know I haven't listed any life changing reasons to use it, but its turned me into a fanboy.
Technically, it IS modular, even if it doesn't have well defined zones. If you look at ZFS in a slight different way, it can be just one layer of the system. You can create virtual devices in a zpool and treat them as a block device (its just another /dev entry). Just to see how it worked, I created a virtual device on top of the zpool, formatted it with UFS, put some files on it, expanded the virtual device, ran growfs and had a larger UFS mount point.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager