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