Is WAFL a Filesystem? - by Dave hitz  

Many people think WAFL is a filesystem. I certainly thought so fifteen years ago when I wrote it, but folks like Kostadis Roussos are now claimingthat I was wrong. (A NetApp employee no less!)

To understand why, you have to understand how WAFL is structured. 

WAFL has a “top-half” that deals with files and folders—“My Documents” and “QuarterlyEarnings.ppt”. It keeps track of who created the file, when they created it, who can look at the file, who can modify it, and so on. This certainly sounds like what a filesystem would do. The top-half actually supports multiple filesystem protocols. We started with NFS for UNIX, but right from the beginning we knew we’d be adding more. Originally we expected that Novell Netware would be next, but Windows CIFS gained momentum so quickly that we did that instead and never got around to Netware. 

WAFL also has a “bottom-half” that manages the physical disks in the system. It organizes the disks into separately managed pools, it keeps track of which disks are part of which RAID array, and it arranges data on the disk to maximize read and write performance. The “bottom half” also handles data management functions like snapshots, remote mirrors, cloning, de-duplication, thin provisioning, and so on. These capabilities would traditionally be part of a volume manageror a block virtualization layer.

One of the things that was unique about WAFL when we shipped it was the way we integrated the two layers. There are many opportunities for new features and clever optimization if you design the layers to work well together.

When we decided to support iSCSI and Fibre Channel SAN, WAFL’s bottom-half data management capabilities were a perfect fit. In fact, one of the things that helped convince me that NetApp should support block-based storage was realizing how valuable our data management features would be in that environment. 

This top-half/bottom-half structure explains the confusion about WAFL. My current view is that WAFL contains a filesystem, multiple filesystems actually, but that’s different from being a filesystem.
Read more!

EMC SAN Architecture

This document will be using the EMC symmetrix configuration. There are a number of EMC Symmetrix configurations but they all use the same architecture as detailed below.. 
Front End Director Ports (SA-16b:1)
Front End Director (SA-16b)
Back End Director (DA-02b)
Back End Director Ports (DA-02b:c)
Disk Devices

Front End Director
A channel director (front end director) is a card that connects a host to the symmetrix, each card can have upto four ports.

Symmetrix cache memory buffers I/O transfers between the director channels and the storage devices. The cache is divided up into regions to eliminate contension.

Back End Director
A disk director (back end director) transfers data from disk to cache. Each back-end director can have upto four interfaces (C,D,E and F). Each back-end director interface can handle seven SCSI ids (0-6)

Disk Devices
The disk devices that are attached to the back-end directors could be either SCSI or FC-AL.

The direct matrix interconnect is a matrix of high speed connections to all componentswith bandwidth up to 64Gb/s

Symmetrix DMX Architecture core components are:
Channel Directors - for host communication.
Disk Directors - for Disk communication.
Global Memory Directors - for I/O delivery from hosts to Disk Directors.

SAN Components

The are many components to a SAN Architecture. A host can connect to a SAN via direct connection or via a SAN switch.
Host HBA Host bus adaptor cards are used to access SAN storage systems
SAN Cables There are many types of cables and connectors:

Types: Multimode (<500m), single mode (>500m) and copper
Connectors: ST, SC (1Gb), LC (2Gb)
SAN Switches The primary function of a switch is to provide a physical connection and logical routing of data frames between the attached devices.
Support multiple protocols: Fibre channel, iSCSI, FCIP, iFCP
Type of switch: Workgroup, Directors
SAN Zoning Zoning is used to partition a fibre channel switched fabric into subsets of logical devices. Each zone contains a set of members that are permitted to access each other. Members are HBA's, switch ports and SAN ports.
Types of zoning: hard, soft and mixed
Zone set s This is a group of zones that relate to one another, only one zone set can be active at any one time.
Storage arrays Storage array is were all the disk devices are located.
Volume access control This is also know as LUN masking. The storage array maintains a database that contains a map of the storage volumes and WWN's that are allowed to access it. The VCM database in a symmetrix would contain the LUN masking information.

SAN Login

The below table documents the various proccesses that occur when a fibre channel device is connected to a SAN
Information/process FLOGI (fabric login) PLOGI (port login) PRLI (process login)
What is need ? - Link initialization
- Cable
- HBA and driver
- Switch Port
- Zoning
- Persistent binding
- Driver setting
- Device masking (target)
- Device mapping (initiator)
- Driver setting (initiator)
What information is passed - WWN
- S_ID
- Protocol
- Class
- Zoning
- S_ID
- Class
- BB Credit
Who does the communication ? - N_port to F_port - N_port to N_port - ULP( scsi-3 to scsi-3)
where to find the information ? Unix
- syslog
- switch utilites
- Event viewer
- Switch viewer
- Syslog
- Driver Ulitities
- Driver utilities
- Syslog
- Host based volume management
- Driver Utilities
- Host based volume management
- Device Manager
If any one of the above were to fail then the host will not be allowed to access the disks on the SAN.

VCM Database
The Symmetrix Volume Configuration Management (VCM) database stores access configurations that are used to grant host access to logical devices in a Symmetrix storage array.
The VCM database resides on a special system resource logical device, referred to as the VCMDB device, on each Symmetrix storage array.
Information stored in the VCM database includes, but is not limited to:
  • Host and storage World Wide Names
  • SID Lock and Volume Visibility settings
  • Native logical device data, such as the front-end directors and storage ports to which they are mapped
Masking operations performed on Symmetrix storage devices result in modifications to the VCM database in the Symmetrix array. The VCM database can be backed up, restored, initialized and activated. The Symmetrix SDM Agent must be running in order to perform VCM database operations (except deleting backup files).
There are three models of switchs M-series (Mcdata), B-series (Brocade) and the MDS-series (Cisco). Each of the switch offer a web interface and a CLI. The following tasks can be set on most switches:
  • Configure network params
  • Configure fabric params (BB Credit, R_A_TOV, E_D_TOV, switch PID format, Domain ID)
  • Enable/Disable ports
  • Configure port speeds
  • Configure Zoning
BB Credit Configure the number of buffers that are available to attached devices for frame receipt default 16. Values range 1-16.
R_A_TOV Resource allocation time out value. This works with the E_D_TOV to determine switch actions when presented with an error condition
E_D_TOV Error detect time out value. This timer is used to flag potential error condition when an expected response is not received within the set time
The CLI commands can be viewed here for all switches, also a detailed view of zoning can be located here.
Host HBA's
The table below outlines which card will work with a particular O/S
Solaris Emulex PCI (lputil)
HPUX PCI-X gigabit fibre channel and ethernet card
AIX FC6227/6228/6239 using IBM native drivers
Windows Emulex (HBAnyware or lputilnt)
Linux Emulex PCI (lputil)
Read more!