Write Anywhere File Layout

The Write Anywhere File Layout (WAFL) is a proprietary file system that supports large, high-performance RAID arrays, quick restarts without lengthy consistency checks in the event of a crash or power failure, and growing the filesystems size quickly.

WAFL provides mechanisms that enable a variety of file systems and technologies that want to access disk blocks.

Consistency points are performed periodically or if the non-volatile memory is close to being full of log entries.

Using a data placement based on temporal locality of reference can improve the performance of reading datasets which are read in a similar way to the way they were written (e.g. a database record and its associated index entry), however it can also cause fragmentation from the perspective of spatial locality of reference.

Releases of ONTAP since 7.3.1 have included a number of techniques to optimize spatial data layout such as the reallocate command to perform scheduled and manual defragmentation, and the Write after Reading volume option which detects and automatically corrects suboptimal data access patterns caused by spatial fragmentation.

Before 7G, the wafl scan reallocate command would need to be invoked from an advanced privilege level and could not be scheduled.

[4] NetApp's Data ONTAP Release 7G operating system supports a read-write snapshot called FlexClone.

Starting with ONTAP 9.4 maximum number of snapshots supported for each FlexVol is 1024, while for previous versions max limit was 255.

These two features make it possible to write a file to an SMB type of networked filesystem and access it later via NFS from a Unix workstation.

Block device access with storage area network (SAN) protocols such as iSCSI, Fibre Channel (FC), and Fibre Channel over Ethernet (FCoE) is done with LUN emulation similar to Loop device technique on top of a FlexVol volume; thus each LUN on WAFL file system appears as a file, yet have additional properties required for block devices.

Due to WAFL architecture, FlexVols and LUNs can increase or decrease configured space usage on the fly.

In this case, the administrator will most probably even create different IP addresses; each will be used to access a dedicated file share.

Local SyncMirror creates both plexes in a single controller and is often used for additional security to prevent failure for an entire disk shelf in a storage system.

Like many competitors, NetApp ONTAP systems utilizing memory as a much faster storage medium for accepting and caching data from hosts and, most importantly, for data optimization before writes which greatly improves the performance of such storage systems.

After optimizations, data is going to be sequentially written on disks as part of the Consistency Point (CP) transaction.

CP at first creating system snapshot on an aggregate where data are going to be written, then optimized and prepared data from RAM written sequentially as a single transaction to the aggregate, if it fails, the whole transaction fails in case of a sudden reboot which allows WAFL file system always to be consistent.

In case of successful CP transaction new active file system point is propagated and corresponding NVLOGs cleared.

Data blocks deleted by hosts marked as free so they could be used later on next CP cycles and the system will not run out of space with the always-write-new-data-to-new-place policy of WAFL.

[7] Starting with the All-Flash FAS A800 system, NetApp replaced the NVRAM PCI module with NVDIMMs connected to the memory bus, increasing the performance.

WAFL inode structure, metadata stored alongside data
Traditional Copy On Write technique data in place backup
NetApp RoW Snapshot data in place backup
WAFL FlexVol Layout: blocks and inode metadata alongside user data
SyncMirror replication using plexes
Non-volatile memory cache mirroring in a MetroCluster and HA