SUN invented it, Apple wants it and FreeBSD already has a port… Yesterday, Pawel Jakub Dawidek has announced that he will port the ZFS filesystem from SUN Solaris to FreeBSD. In his posting to the zfs mailing list, he already gives a “demo” where he creates a filesystem on top of a disk pool and make some simple FS operations. But what’s all about this new filesystem? From the ZFS homepage: ZFS presents a pooled storage model that completely eliminates the concept of volumes and the associated problems of partitions, provisioning, wasted bandwidth and stranded storage. Thousands of filesystems can draw from a common storage pool, each one consuming only as much space as it actually needs. The combined I/O bandwidth of all devices in the pool is available to all filesystems at all times. All operations are copy-on-write transactions, so the on-disk state is always valid. There is no need to
fsck a ZFS filesystem, ever. Every block is check-summed to prevent silent data corruption, and the data is self-healing in replicated (mirrored or RAID) configurations. If one copy is damaged, ZFS will detect it and use another copy to repair it. Although this sounds quite promising and revolutionary, I’m not convinced that this will be THE new filesystem of FreeBSD and/or Mac OS X. First, the porting of a filesystem is one of the hardest things to do: the tolerance in respect to errors or instabilities is near zero and you better get it right in the first attempt or the trust on the implementation is lost. Then there is always the lack of testers: who is willing to loose all his data just to test the latest build? Even if it’s just a generic FreeBSD install, the time it takes to recover from a disaster is keeping off the masses. And if you managed to reach a sufficiently large audience, then the pain with the extreme usage scenarios begins. There is always someone bringing the filesystem to its knees and then complaining that you didn’t test this special case. And finally, there is the SUN-factor. Big companies usually scare away little projects, considering the trouble you can get yourself in, if messing with them. (It took the FreeBSD project years to get a native JAVA port from them.) Even Apple will be careful including ZFS support into their next OS. But then again, it’s fun to get something working, so if you can, help Pawel Jakub Dawidek with this project!