Mac OS X Snow Leopard Server to pioneer ZFS ahead of desktopApple's expanded support for ZFS will premiere in Snow Leopard Server before trickling down to the desktop version, according to sources familiar with the company's plans.
Read-only support for the sophisticated new 128-bit file system, created by Sun and shared under its open source license, originally appeared in Mac OS X Leopard. It lacked the ability to create new ZFS pools or write data to them however, severely limiting it usefulness.
Because the software is open source, users can manually install the latest version of the software from Apple's MacOS Forge site and use ZFS from the command line to create pools and write data, although that lacks the interface polish Mac users expect to see.
For example, users can't currently empty the trash graphically in the Finder when working with a ZFS drive. Unplugging a device connected to a ZFS pool will also cause a panic unless the disk is properly closed out from the command line first.
In Snow Leopard Server, sources familiar with the new software say Apple will not only include the latest build of ZFS for Mac OS X but will also expose ZFS features within the graphical Disk Utility, making it easier to set up ZFS storage pools and file systems without resorting to command line utilities. The Finder also needs to be made fully ZFS savvy, as does any other software that makes assumptions about the underlying file system.
The Finder and Disk Utility app used by the desktop and server versions of Mac OS X have always been identical. Even so, Apple may initially keep full ZFS support associated with its server product, because server users have a greater practical need for the features related to ZFS, and also have the support resources to handle working with the new system. A similar thing happened when Apple released its IP over Firewire implementation, which was first incorporated into Mac OS X Server before being added to the desktop version in a later free update.
Despite the giddy buzzword interest in ZFS that was fanned into an active swarm by pundits around the release of Leopard (and touched off rumors that ZFS would become the default file system in Leopard), many applications of the new file system will require sophisticated reworking of lots of associated software. As a consumer-centric company, it would be expensive in terms of customer support for Apple to dump its desktop users on top of an alpha quality, brand new file system just to check off a feature box in its marketing. Most consumers, and in particular the notebook users who make up most of Apple's sales, have little or no real need for ZFS, but would be burned by its complexity and additional demands.
While ZFS support has made major headway on the Mac since the initial release of Leopard, there's still a long way to go before non-technical users can make real use of its new features. That will likely result in Apple focusing its development efforts to make ZFS practical initially to its server audience. That is reflected in the company's Snow Leopard marketing, which only mentions ZFS features in relation to Snow Leopard Server in "business critical server deployments." More technically-savvy desktop users will likely be able to begin experimenting with the new file system on the Snow Leopard desktop however.
ZFS' server-oriented features
As an enterprise vendor with no real consumer-facing business, Sun developed ZFS to solve the needs of server users. Implementing its features on the desktop to benefit less technical consumers will require significant work on Apple's part. Once the company completes a solid foundation on Mac OS X Server, making the technology accessible to end users will be easier. Among the potential benefits will be more flexible use of multiple drives, data redundancy, error correction, and snapshots. Among the challenges to overcome are greater disk waste (due to redundancy and snapshots) and greater complexity in managing storage pools.
ZFS uses a storage pool system that allows it to use a combination of block devices (abstracted as virtual devices) to build a logical drive that can contain a file system. This results in a RAID-like system that can span different drives and provide a level of redundancy to survive drive failure. Unlike a typical RAID, ZFS allows different disks to be tied together in a pool, and new drives to be added to existing pools without reformatting the drive.
The file system also provides continuous integrity checking and automatic repair to aid in file corruption, and supports massively large volumes. Its support for snapshots, which capture old data and retain it as a past "version" for later use, and clones, which enable two separate file systems to share overlapping blocks of identical data, has led some to speculate that Apple would use ZFS in conjunction with its Time Machine backup system.
However, Apple implemented features in the Mac's native HFS+ to accommodate parallel instances of backups for Time Machine. Further, the system is based on copying newly changed files (as reported by a system auditing process) to a new disk, not retaining old data on the same disk as it is updated.
For users with a single drive in their system (as is the case with most desktop Mac users), shadow copy snapshots would solve the wrong problem. Users want to be protected from the crisis that might befall their hard drive, not a system that would only eat up their hard drive faster and then go down with the ship in the case of drive failure.
For now, that mostly leaves ZFS as a technical curiosity for most Mac users outside of those who manage very large disk arrays in a server environment. Even so, progress on the server side will eventually result in trickle down engineering for Apple's consumer users, too, just as the company's work in Directory Services has resulted in Parental Controls for desktop users. A variety of sharing services that started out as server products have also made their way to the Mac OS X desktop, including Apache web services and remote management screen sharing.