While the storage industry continues to debate the issue of where advanced storage services should reside, vendors of fabric switches and virtualization software are standardizing application interfaces for network-based storage applications. A project of the ANSI/INCITS T11.5 task group, the Fabric Application Interface Standard (FAIS) is a multi-vendor initiative that is defining new and more intimate relationships between the network infrastructure and storage applications.
FAIS will facilitate the migration of storage virtualization and other enhanced services from edge devices such as hosts and storage arrays to the network core. In combination with parallel efforts to enhance fabric-based quality of service and security services, the FAIS initiative represents a major step in the development of SAN technology as it evolves from simple connectivity to intelligence.
From a technical standpoint, there are compelling arguments for embedding virtualization and other services in the storage network. The network is the centerpiece of communication between servers, storage arrays, and tape devices. Since all storage conversations in a SAN are conducted through one or more fabric switches, the fabric is in a strategic position to monitor and modify those transactions.
This central and proactive role has been affirmed by established fabric-based services such as zoning, LUN masking, and third-party copy agents. FAIS extends the scope of intelligent intervention to include interfaces for more sophisticated applications such as storage pooling, mirroring, and tape virtualization.
From a market perspective, advanced storage services must find their way into the fabric for the sake of the fabric vendors themselves. Without enhanced value-added services, fabric switches are vulnerable to commoditization, as we are already witnessing in the declining prices of mid-tier departmental SAN switches. This is not a sustainable business model in the long term, and an industry nurtured on high margins cannot survive on a diet of Costco pallet-load pricing.
Although fabric-based intelligence requires significant engineering and investment, it lifts the fabric vendors from purveyors of ports to suppliers of more comprehensive SAN solutions. Even elementary virtualization services such as storage pooling have significant end-user value in terms of streamlining storage administration. By shifting the customer engagement from pricing to business value, the fabric vendors can collectively protect their margins while competing for the new market opportunity they have created.
The FAIS Initiative – Standardizing Fabric Switch APIs
The FAIS initiative intends to establish standard APIs for fabric switches that would be supported across vendor lines. This would enable a virtualization software vendor, for example, to create code that would interface with products from McDATA, Brocade, or other switch vendors, and either be hosted directly on the switch itself or on a SAN-attached appliance.
The consensus among vendors that APIs should be standardized is driven by a common desire to interoperate with a wide variety of virtualization applications. Even Brocade, despite its less than stellar track record on interoperability, is fully supportive of FAIS. This unexpected openness will give customers more flexibility in selecting what types of enhanced services they need and what infrastructure to drive them on.
A FAIS interface is predicated on the separation of control and data paths. The control path is the channel for traditional SCSI command sets and supports both initiator and target mode. The control path may terminate within a fabric switch (e.g., an internal processor running virtualization code) or be redirected to an appliance. The data path is for common SCSI read/write operations, although with FAIS the data path is an abstraction from physical storage.
This enables, for example, a fabric switch to connect to multiple storage arrays and represent them as a single storage pool for normal SCSI transactions. This abstraction layer for the data path through the fabric necessarily requires an interface for discovery and configuration by virtualization software, as well as a means to pass errors or exceptions from the data path to the control path for resolution.
As currently stated in the FAIS charter, the fabric API should be portable to different operating systems to provide greater flexibility in deployment. Coding will thus be done in standard C language to facilitate cross-platform development. How, specifically, fabric switch vendors may elect to host FAIS-enabled virtualization or other services is vendor-dependent.
Some announced offerings are essentially bladed PCs that slot into a switch chassis. This has the advantage of off-the-shelf time to market, but may create performance bottlenecks. Other offerings (Aarohi, for example) are silicon solutions that offer both performance and a compact footprint.
Potential Benefits and Complications with FAIS
The potential benefits from FAIS standardization are immense. Aside from simple storage pooling, enhanced capabilities such as data replication between heterogeneous storage systems, snapshots, data journaling, and virtualization of tape assets will enable customers to focus on applications instead of on the infrastructure.
A standard fabric API also facilitates distributed services across multiple fabric switches and concurrent support of multiple storage applications on a common SAN. The traditional value proposition of SANs in terms of cost savings from storage consolidation and streamlined operations are thus further amplified by fabric-based virtualization services that free customers from low-level plumbing concerns.
Execution of FAIS in real products, however, will inevitably unearth new fabric issues. Large Fibre Channel fabrics, for example, are already vulnerable to excessive switch-to-switch chatter, state change notification broadcasts, and occasional fabric reconfigurations. The additional load that FAIS-enabled virtualization and other services place on fabric communications must be minimized to maintain proper operation and stability of the fabric. Along with overall performance, this is an area where vendors, while cooperating on standard APIs, will differentiate their products and compete in the market.
In addition, abstraction of a complex storage infrastructure does not eliminate complexity; rather, it only hides complexity from the user. If intelligent fabric switches are going to assume responsibility for heterogeneous storage management and control, they must also assume responsibility for what goes wrong on the back end. The FAIS initiative will establish the common interface to fabric-based services, but vendors must ensure that those services are robust, diagnostic, and proactive to properly support the customers application requirements.