File System Design for an NFS File Server Appliance Dave Hitz, James Lau, Michael Malcolm The authors describe the special purpose filesystem WAFL (Write Anywhere File Layout), as well as its integration into Netapp's FAServer(tm) NFS file server appliance, which implements Snapshots(tm). In addition to working well with the copy-on-write semantics necessary for Snapshots, WAFL's characteristics make it well-suited for high-availability and good NFS performance. Like LFS, not only data but meta-data blocks can be relocated to anywhere on the disk in a WAFL, and both filesystems keep track of their inodes using an inode map. WAFL differs significantly from LFS, though, in that it does not have a cleaner. The paper does not describe the allocation algorithm in detail, but WAFL does have a "block-map" file (unlike LFS, and different from FFS's block bitmap since it carries extra information about snapshots); having a cleaner would likely be incompatible with the consistently high performance required of an appliance. WAFL maintains a NVRAM log of the actual NFS requests, instead of processing them first and logging disk writes. This allows it to store many more operations, prevents NVRAM failure from corrupting the disk (vital since RAIDs are more dependable than NVRAM), and also improves the FAServer's response time. Since WAFL is organized as a full tree, taking a Snapshot means simply cloning the root inode. WAFL uses this mechanism to keep checkpoints every few seconds so that the filesystem can be restored immediately after a crash. In addition, it appears to outperform other general purpose servers in the normal case -- in terms of NFS operations/second -- though it would be unwise to make any hard statistical claims based on the one graph provided in the paper. Now, it is unclear how much of this performance edge comes from features of the WAFL filesystem, from the particular hardware configuration used (especially NVRAM), or even from the heavy software optimization Netapp no doubt performed. Still, the basic strategy behind WAFL -- copy-on-write and logging for easy snapshots, recovery, and asynchronicity -- certainly seems to play a key role in its success. However, since the allocator details are not given, it is unclear how WAFL would perform after a long period of use -- whether it would become fragmented more quickly than other filesystems. Title File System Design for an NFS File Server Appliance Author Dave Hitz, James Lau, Michael Malcolm Date 1994 Location Usenix This conference paper details the WAFL file system and conveys the benefit of specialized applicance systems through its eight-fold improvement over general-purpose systems which attempt to supply the same service. It is the followup to Hitz's 1993 paper "introducting the NFS Server Appliance." After While this paper has a major research impact in its focus on specialized systems as opposed to general-purpose systems, it does include several interesting technical ideas.