ZFS filesystem for Linux?
ZFS has many features which can benefit all kinds of users - from the simple end-user to the biggest enterprise systems:
- Provable integrity - it checksums all data (and metadata), which makes it possible to detect hardware errors (hard disk corruption, flaky IDE cables, etc...)
- Atomic updates - means that the on-disk state is consistent at all times, there's no need to perform a lengthy filesystem check after forced reboots or power failures
- Instantaneous snapshots and clones - it makes it possible to have hourly, daily and weekly backups efficiently, as well as experiment with new system configurations without any risks
- Built-in (optional) compression
- Highly scalable
- Pooled storage model - creating filesystems is as easy as creating a new directory. You can efficiently have thousands of filesystems, each with it's own quotas and reservations, and different properties (compression algorithm, checksum algorithm, etc...)
- Built-in stripes (RAID-0), mirrors (RAID-1) and RAID-Z (it's like software RAID-5, but more efficient due to ZFS's copy-on-write transactional model).
- Many others (variable sector sizes, adaptive endianness, ...)
ZFS definitely looks like a great engineering achievement and its makers have all rights to be proud of it. In their own words, they've blown away 20 years of obsolete assumptions and now they refer to ZFS as the last word in filesystems.
When ZFS was first announced, I'm sure many Linux hackers had a thought how it would be a great idea to port such a great filesystem to Linux. Unfortunately, ZFS source is distributed under Sun's CDDL license which is (some say deliberatly) incompatible with the GPL license that Linux kernel uses. So, it looks like there will be no native port of ZFS for Linux in the foreseeable future. What a pity.
Thanks to relieved FUSE licensing, which allows dynamically linking with it without any restrictions, it looks like it's possible to port ZFS to FUSE without any licensing problems. Of course, implementation of filesystem in userspace can never reach speed and stability of in-kernel filesystems, but I still find it very interesting.
The project was started by a young programmer from Portugal named Ricardo Correia and is participating in Google Summer of Code 2006 program. You can follow its progress on the ZFS on FUSE blog. It seems to go along just fine and you can already download some early releases. So far they're not very useful, but it's nice to see some important parts are already compilable. What to say, go, Ricardo, go! :)