WAFL
The WAFL filesystem (WAFL stands for Write-Anywhere File Layout) was developed by NetApp (then known as Network Appliance) in 1994 and is used exclusively in their FAS series filers since then. The filers run a custom operating system based on BSD called Data Ontap. Only recently they started to migrate their code to a FreeBSD base system, however all of their proprietary code still runs as kernel-modules and userspace-processes atop FreeBSD.
WAFL is heavily patented and thus no significant reverse-engineering task has been started yet. Technically it is very similar to btrfs: Log-structured writes, read-only snapshots that can be made writeable, inline and post-process compression, deduplication, replication, Windows-compatible ACLs, virtual resizable volumes (similar to btrfs subvolumes) and more features are all available. It also includes its own RAID system with 1 or 2 disk parity (called RAID DP, where DP stands for Diagonal Parity) and uses various on-disk checksums to protect against silent data loss.
There is also a simulator available from NetApp that can be used to simulate a fully-functioning FAS filer in a virtual machine
Links
- Wikipedia article
- Simulator download page (NetApp account required, a "guest" type account should be sufficient)
- NetApp Technical Report TR3001 A Storage Networking Appliance
- NetApp Technical Report TR3002 File System Design for an NFS File Server Appliance
Patents
A lot of the inner workings of WAFL can be inferred from reading the patents filed by NetApp/Network Appliance
- US7730277 System and method for using PVBN placeholders in a flexible volume of a storage system
- US7243207 Technique for translating a pure virtual file system data stream into a hybrid virtual volume
- US7194595 Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream
- US5819292 Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system
- US20140108468 Methods and apparatus for changing versions of a filesystem
- US20140082281 Extension of write anywhere file system layout
- US20120158670 Fingerprints datastore and stale fingerprint removal in de-duplication environments
- US20020083037 Instant Snapshots