"Storage virtualization" is too broad a term for practical use. You have to look closer at specific implementations and features.
By Harald Skardal
Storage virtualization is one of the biggest trends and new product categories in storage management. The Storage Networking Industry Association (SNIA) Technical Council (TC) has led an effort within SNIA to clarify terms, determine how virtualization impacts storage and system management and how it affects interoperability, and map out SNIA programs to support and drive the different forms of storage virtualization and management.
The initial focus of the SNIA effort is to build a consistent and unambiguous set of terms and definitions for the different sub areas and methods of storage virtualization.
Different forms of storage virtualization have been around for a long time. Logical volume management systems have been used to create virtual block containers that provide increased read/write performance, simplified management, and increased capacity. Disk virtualization was used in MS-DOS to take advantage of increase RAM space. Virtual memory provided separation between the physical resources of the computer and the application for simplified software development.
Storage virtualization has emerged over the last few years as a separate product category that is a subset of storage management. Increasingly, IT organizations need to manage storage as a single, pooled enterprise-wide resource. The goal is to manage storage as one physically aggregated, but logically integrated, IT resource.
Legacy and new equipment from the same or different vendors creates a fragmented storage landscape. One major purpose of storage virtualization products is to provide a consolidated view of the storage resources to improve utilization.
However, one of the problems with the term is that vendors with very different product capabilities all claim to be doing storage virtualization. Capabilities range from creating virtual pools of distributed storage for consolidated management to "virtual tape" products for fast backup and restore using disk arrays, virtual disk in solid-state memory, and virtualized disk on tape devices. In fact, functions such as RAID, striping, and file systems are also applications of storage virtualization.
This implies that the words "storage virtualization" are of little value in terms of describing specific products or features that can be compared as "apples to apples." Therefore, the SNIA TC is developing a set of more-detailed terms that apply to specific functions.
The following definition is taken from the SNIA Dictionary of Storage Networking Terminology:
VirtualizationProviding useful abstractions by integrating one or more target services or functions with additional functionality. Typically, virtualization involves one or more of the following: hiding complexity, adding or integrating new functionality, or emulating, aggregating, or dividing existing services. Virtualization is applied to one or more entities that may be resources or services or both. Examples of virtualization are the aggregation of multiple instances of a service into one virtualized service, or adding security to an otherwise insecure service.
This definition is not very specific and does not give end users much help when comparing products or features. As such, this definition should only be used to describe a broad category of technologies and products. Virtualization is an abstract technique that can be applied in almost any area and at any level of the storage stack: file system, file, block, host, network, device, etc.
We conclude that storage virtualization is not a specific product feature that can be captured in a single check-off box. More detailed terms are required in order to compare specific features and feature classes.
What, where, and how
Another complicating factor is that the term "X virtualization" is used to describe three very different aspects of virtualization in storage: what is created, where the virtualization is done (e.g., host, network, or subsystem device), and how it is done (e.g., in-band or out-of-band). The figure shows a taxonomy of the most common terms that cover the broad area of storage virtualization.
What is created Block virtualization creates virtual blocks. Examples include the creation of virtual block devices from file-system objects, or the creation of a block service from RAM.
Disk virtualization produces virtual disks, or SCSI logical unit numbers (LUNs). The underlying target service can be RAM, tape drives/libraries, or other disk drives. An example would be using RAM to create a virtual disk device (e.g., SMARTDSK in MS-DOS).
Tape drive/library virtualization produces virtual tape services or functions by applying virtualization to storage services such as tape drives/libraries, disks, or to other storage systems or devices. Examples include aggregation of tape drives into a redundant array of independent tapes (RAIT); virtualized tape as implemented in memory or disk in mainframes; or using disks or RAM to front-end tape libraries to improve performance or manageability.
File-system virtualization produces virtual file systems. Examples include aggregating multiple file systems into one virtual file system or adding file-system functionality (e.g., a different file-access protocol such as NFS) on top of one or more existing file systems.
Where it is done Virtualization can be done in the server/host, network (e.g., switch or network storage appliance), or storage subsystem (disk drive/array or tape library). Examples include separate devices that aggregate multiple individual file-system appliances or block-storage subsystems into one virtual service (storage pool), or storage area network (SAN) switch-based functions providing transparent block or file-system mirroring functions.
How it is implemented In-band (symmetric) virtualization can be done in subsystems, networks, hosts, files, and file systems. An example includes logical volume management implemented and managed in the host computer.
In out-of-band (asymmetric) virtualization, metadata is provided to the in-band components by a separate service instance. An example would be a file system that provides metadata to its clients from a file manager. The clients then access blocks of the files directly across a SAN.
The SNIA Dictionary of Storage Networking Terminology defines a number of other related terms.
SNIA Shared Storage Model
Storage virtualization and storage management are a natural progression of the work we have done with the SNIA Shared Storage Model (SSM). To enable broader virtualization of storage and to encourage interoperability, new interfaces should be created according to the layers outlined in the SSM. It is our intent to use the SSM as the platform and framework for storage virtualization.
The SNIA TC is not attempting to mandate or police the development of new virtualization or management capabilities. The objective is to create a shared framework based on "rough consensus" among vendors. We hope that this will encourage vendors to collaborate and that the result will be standardization of key interfaces, APIs, protocols, and other mechanisms. The lack of such standards is currently preventing interoperability and increasing the cost and complexity of implementing heterogeneous storage environments. We hope the result of such standards will enable users to build "best of breed" storage platforms from products from multiple vendors.
Proposed virtualization efforts
Most production storage is managed as disk containers (e.g., volumes, LUNs, and partitions) and more than two-thirds of all stored data is stored and accessed via a file system. To provide a set of interfaces that virtualize storage from the perspective of the applications and network, the two prime candidates for virtualization standardization are the volume and the file system. Included are functions for creating these services from other storage services, or aggregating and partitioning the services.
A group of SNIA member companies have expressed interest in developing a virtual volume management API that can become the standard interface point between storage virtualization/management software and the underlying storage systems. The goal is to define a set of attributes that defines how a block volume should be managed from the perspective and needs of the application. The API would include functions for managing capacity, availability, protection, and other attributes.
The benefit of such an API would be that products from multiple vendors could more readily be integrated into a single virtualized storage infrastructure. There is related work under way within the SNIA. For example, the NAS management working group is defining file-system virtualization services that can be layered on top of the virtual volume and can support specific file systems such as NFS and CIFS.
Future installments in this series of articles will provide further definitions in the storage virtualizations space, as well as updates on SNIA activities in this area.
Harald Skardal is a member of the SNIA Technical Council and a senior consulting engineer at Network Appliance.