In my last post, I gave the motivation to my proposition that WAFL is not a file system.
According to the zeitgeist definition in Wikipedia:
A file system is a special-purpose database for the storage, hierarchical organization, manipulation, navigation, access, and retrieval of data.
This is actually a very good definition. The problem is that it can be too expansive.
I believe that a file system definition should also encompass how we experience file systems.
We expect a file system to have operations like open, read, write, and close that can be applied to files. We expect files to have specific kinds of meta-data like names, access control lists and time.We expect that before we can open a file we have to traverse a directory structure. We expect that the directory structure to be a rooted graph.
And on top of that each file system has additional rules and semantics that enforce how files get accessed and how the directory hierarchy can get manipulated.
My first, cheesy, observation is that for a user of WAFL, the file system is not WAFL, but NFS or CIFS. The semantics of how data gets accessed, organized, and manipulated are defined by the NFS protocol. NFS is a distributed file system, that has as a component a thing it calls the file system server, but that there are additional components like authentication services, that are not part of any reasonable file server. This holds true even for CIFS.
So case closed, right? That is too cheesy for me to be satisfactory.
I wanted to go a little bit deeper than that.
Another way of probing the question is the following…
Let’s agree that a file system has the following elements:
- Methods to allow operations on files
- Methods to allow operations on directories
- Methods for storing data on disk
- Methods for retrieving data on data.
- Data structures for representing data on disk
- Rules about how files are found.
Let’s further agree that a modern storage stack also has the following elements
7. Method for organizing disks into large physical pools
8. Methods of partitioning physical pools into smaller logical pools
:
My next post is to explore how WAFL and Data ONTAP match up against those elements.

So you say the way MSDOS 1.0 organised files on diskettes was no filesystem?
The original version of FAT had no concept of directories...
Posted by: Engywuck | August 10, 2009 at 10:28 PM