ZFS

Revision 4 as of 2006-05-12 07:28:35

Clear message

Summary

ZFS is an open source filesystem used in Solaris 10. It has powerful applications for server and workstation use cases, and would be a radical and attractive feature or basis for Ubuntu. It is released under the [http://en.wikipedia.org/wiki/CDDL CDDL] licence, which looks like it will be in universe, not main for now.

Rationale

Ubuntu server, and linux servers in general compete with other unices and windows. ZFS is a killer-app for Solaris, as it allows straightforward administration of a pool of disks, while giving intelligent performance and data integrity.

ZFS does away with partitioning, EVMS, LVM, MD, etc., etc.. The available disks (of any size) are used to the best of their ability. Compression can be used to increase bandwidth. (q.v. Reiser 4, and cloop?)

ZFS is 128 bit, meaning it is excessively scalable. (e.g. 16 exabyte limit)

ZFS achieves its impressive performance through a number of techniques:

  • Dynamic striping across all devices to maximize throughput
  • Copy-on-write design makes most disk writes sequential
  • Multiple block sizes, automatically chosen to match workload
  • Explicit I/O priority with deadline scheduling
  • Globally optimal I/O sorting and aggregation
  • Multiple independent prefetch streams with automatic length and stride detection
  • Unlimited, instantaneous read/write snapshots
  • Parallel, constant-time directory operations

[http://www.sun.com/2004-0914/feature/ Sun ZFS article]

Use cases

  • Dani is a sys admin for a medium-size business. She spends 20% of her time planning/changing/administering/repairing the disk arrays of three servers. With ZFS, this time is cut in half.
  • Ari has a single disk workstation. She buys a new disk and plugs it in. ZFS automatically adds the new disk space into the pool. Her home directory is mirrored, while her OS and temp space is striped automatically in the background.
  • Power user Petra has a four-disk RAID5 workstation. Parity calculations make this a fairly slow set-up because of the number of writes of small files. She upgrades to ZFS and sees performance benefits, because small files are mirrored instead of included in parity calculations.
  • Jack has three disks of different sizes. Configuring a sensible partition and RAID set-up is completely trial and error. ZFS abstracts the three disks into one pool of space, and gives the best balance of performance and security. Jack declares that some media directories do not need to be fault-tolerant, and ZFS transparently stripes them across all the disks.

Scope

Server use case is the most obvious.

Design

ZFS can be used as a drop-in POSIX replacement for existing file systems. However, it provides powerful capabilities which can permeate Ubuntu. E.g. each user is allocate a file-system, cloned from an original: unchanged files are only stored once. This paradigm would suit LTSP, where each user would have filesystem. This sounds more a bit more radical than it is.

Implementation

  • Port ZFS to Linux.
  • Investigate use of ZFS features to replace clunky old linux tools.

Code

Data preservation and migration

Outstanding issues

BoF agenda and discussion

References

[http://en.wikipedia.org/wiki/ZFS wikipedia entry on ZFS]

News and blogs articles

[http://www.internetnews.com/dev-news/article.php/3565221 internetnews] "We would not at all be surprised to see ZFS start to show up in other operating systems at some point in the not-too-distant future," Weinberg said.

[http://blogs.sun.com/roller/page/jwadams?entry=an_initial_encounter_with_zfs a sun blog]


CategorySpec