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.
Interesting - we're chugging happily along in Linux / Windows / Mac / Unix land having a load of competing filesystems where all the popular ones have *roughly* similar capabilities. Then ZFS appears in OpenSolaris and filesystem design becomes cool again. Everyone starts either porting ZFS or making filesystems with similar features ... Now a major player that actually *had* ported ZFS (somewhat) is seemingly deciding to go it alone. It seems as though the next-gen filesystem space is also going to have a variety of competing filesystems.
I generally think this is a good thing, lets just hope that a reasonable degree of interoperability becomes possible anyway.
When SSDs come down A LOT in price, and up in size, maybe.
Go do a search on Newegg. Biggest they've got is 256GB, of those, the cheapest is $595. You can get several terabytes for that price with a magnetic hard drives.
SSDs have a place, but as a general replacement for magnetic hard drives they are too expensive with too little capacity.
There is also more to the file system than access speed.
Why would they need different licensing terms?
They probably wanted to rename it without changing it. Apple likes renaming things. Microsoft OTOH, loves using the same name as everyone else, and changing stuff to break interop.
Microsoft obviously wasnt on board for any of this, and without the momentum behind ZFS it never will.
Microsoft is never on board for anything useful, so I'm not sure it really makes any difference.
... and then they built the supercollider.
Too bad for Apple, not for ZFS. OpenSolaris and FreeBSD support ZFS just fine. I do think it's best suited to servers, and OpenSolaris and FreeBSD are greatly superior server operating systems anyway.
Modularity is a good thing, if you draw the modules in the correct place. And ZFS is indeed modular...
Take all of this with a grain of salt, as I haven't actually used ZFS, only designed something similar, then found ZFS did it already, then decided I didn't care and used Linux anyway.
My understanding is that there's a storage layer, where you can simply request storage for some purpose, and it gives you that storage with an id -- kind of like an inode. You could build a filesystem on top of that, managing all the metadata yourself. Or you could build something else -- a database, for example. And the filesystem layer still handles all kinds of things, like permissions, directories, etc, it's just that the allocation has been separated out.
Thus, the allocation layer can make smart decisions about things like which disk to allocate something on, or what actually needs to be replicated, etc.
For example: Think about any kind of RAID, even striping. If RAID can only work with whole volumes, that means the entire discs have to be synced (in RAID1) or checksummed/paritied (in RAID5), including free space. In ZFS, not only can you avoid replicating free space, but I believe you could also specify which files are important and which ones aren't -- and only the important ones are replicated, thus saving space on the ones which aren't.
Another, more theoretical example: SSDs are a bunch of hacks on top of hacks. See, erasing and then writing to the same flash cell over and over wears it out, and there's no seek time. Largely because of Windows, I would guess, SSDs these days implement wear-leveling in the firmware, so that the OS sees only a logical disk that pretends to be a hard drive. But this means they always have to keep a number of cells unallocated, and it slows down writes to have to erase each cell before writing.
So, someone came up with the ATA TRIM command, where the OS could tell the SSD which blocks are no longer in use, and the SSD can actually erase them.
Compare this to the old solution -- implement wear-leveling in software. There were a few filesystems written to run directly on the flash, and it was actually the filesystem doing the wear-leveling. This meant the filesystem could intelligently spread new writes over free space, instead of having to keep some arbitrary number of blocks in reserve...
This is getting fairly technical, and also boring, as ultimately, it's not that much of a difference. But this just shows the potential modularity of a system like ZFS. See, if ZFS separates out the allocation, that means you could replace that part without touching the filesystem, database, or anything else. And you could probably replace it with something that knows how to deal directly with a flash device -- something which, for example, erases blocks as ZFS snapshots are deleted.
Don't thank God, thank a doctor!