Feature creep? This is feature madness! This is SpartaZFS!
just go to http://opensolaris.org/os/community/zfs/version/1/ and increment the last number (or, read on, might as well write it down as I read) for all the goodies [thet keep gettin] added to zfs.
- This is the initial ZFS on-disk format as integrated on 10/31/05
- Support for “Ditto Blocks”, or replicated metadata. Metadata can be replicated up to 3 times for each block, independently on the underlying redundancy. (i.e.: if you have a raid1 on two disk, you get 6 copies of the blocks you deem important) So even if your user data get corrupted everything (fingers crossed) will still be discoverable and the pool will be useable.
- Hot spares, improved RAID-Z accounting (does not mention how it get improved however), and support for double-parity RAID-Z (aka raidz2, aka suspiciously-looks-alot-like-raid6).
- zpool history. A log of whatever happens to your pools
- gzip compression for zfs datasets. Your /usr/ports is now very happy (remember to mount /usr/ports/distfiles elsewhere however)
- ‘bootfs’ pool property. (yes, it does what it looks like it does)
- With the ZFS Intent Log (ZIL) an application (a database usually) does know that whatever it did just wrote to disk will stay written even if a power failure occurs. Instead of waiting a second or two for the zfs to do all its magik, there’s a transaction log in which fsync(fd)s are stored, so the database can churn away happily without having to wait. If power failure occurs between zfs disk commits, this log is read and committed to disk as well.
- Administrative tasks (such as creation/of descendent datasets) can be assigned to non-administrative users. While this is a bit scary, remember we can assign quotas to the parent dataset
- Dataset quotas and reservation can be configured not to include descendent datasets (such as snapshots/clones) in the space consumption cap. And there’s support for the sun cifs server as well
- You can specify a device in the zfs pool to act as cache. “These devices provide an additional layer of caching between main memory and disk. Using cache devices provides the greatest performance improvement for random read-workloads of mostly static content.” You know what a cache is, and there’s way too much math for me to go look at the detailed performance improvement.
interesting links:
nice recap of avaiable solaris filesystems
easy introduction to zfs, and way-too-much-math introduction to zfs2
introduction to ZIL and more in-depth stuff as well
List of zfs administrative tasks which can be delegated, along with a nice primer
configuring the cifs server to use zfs datasets, for workgroups and with active directory
edit: a very interesting blog about building an home fileserver using ZFS, and the ZFS Evil Tuning Guide.