ZFS: The file system Apple isn’t talking about

One of the great things about being a Mac user is that for the most part, things just work and you don’t have to spend too much time thinking about what’s under the hood. You select an icon that looks like a document, drag that icon from point A to point B and when you release the mouse button, it’s moved. Mission accomplished.

Underneath the icons and the GUI however, you have a file system whose job it is to oversee the location, moving, copying or retrieving of that file. For the Mac, that file system is called HFS+ and it has been in service since 1998 and continues as the default file system in OS X today. After more than a decade, a virtual lifetime in computer years, Apple’s venerable file system is in need of a serious upgrade.

Fortunately, Apple has begun the process of supporting a brand new open source, state of the art file system which will bring higher performance, greater reliability, and unparalleled storage flexibility to the Mac. It’s coming soon as part of Snow Leopard, Mac OS X 10.6. That’s the good news. Unfortunately, it only appears destined for what Apple calls “business-critical server deployments” and despite it’s awesome potential is probably not going to be coming to your desktop anytime soon. That’s definitely the bad news. The question is, why?

What Makes ZFS Different

This file system, called ZFS, was created by Sun Microsystems to be a radically new approach to managing computer files while minimizing the potential for data corruption. Attempting to read through a white paper written by ZFS creator Jeff Bonwick was a little bit like being handed a do-it-yourself guide for building your own space shuttle. There are many things about ZFS that I will never truly understand, but the things I do understand make my jaw drop.

With ZFS, there is practically no limit to the number of files you can manage or how large those files can be. To prevent data corruption, ZFS never actually overwrites existing files. Instead it copies the file to a new location and then compares it against the original. If errors are found, they can be corrected and ZFS even has the power to heal itself in the event of damage. It also supports a feature called snapshotting, which allows users to take a “picture” of their volume and then return to that original state if something goes wrong. It can also create storage pools which act like a RAID, increasing both security and performance but allowing users to add or remove storage dynamically as they choose. Finally, Because it’s 128bit native it can also handle and incredible amount of data simultaneously for outstanding performance with far fewer bottlenecks.

Given that ZFS can do all this, I have to wonder why Apple has been so seemingly disinterested in it. Have there been unforeseen delays in getting ZFS to play nicely with OS X? Do they feel that HFS+ is a good enough foundation for a desktop OS? Or…..are they keeping their cards close to the vest and have much bigger plans for this file system?

Personally, I’d like to believe that they do.

The 2009-2010 timeframe is going to be a critical one for both Apple and Microsoft. Many of the gains won by OS X in the 2 years have come as a result of the Vista debacle, but the door on that opportunity is getting ready to close. Microsoft knows Windows 7 will have to deliver and from early reports, it’s shaping up to be a very solid release. Apple will need an advantage when that time comes and ZFS may just be it. Unfortunately, for ZFS to arrive it may mean other things will have to depart, like support for older PowerPC-based Macs. ZFS was written for SPARC and x86 architectures. It may not be possible or even desirable to provide backwards compatibility. Could that be the reason why Apple isn’t talking much about ZFS? Nobody really knows.

I just hope that Apple understands how important ZFS really could be. There isn’t a Mac user alive, myself included, who wouldn’t want to increase performance while decreasing risk. That’s what ZFS was designed to do and that’s why it can’t get to the desktop soon enough.