Virtualization is the term we use to describe when we are abstracting, or acquiring, one set of technology from another. Server virtualization, for example, is the abstraction of the server instance from the physical hardware that it's running on. Storage virtualization is the abstraction of the physical media (hard disks or solid state) from the attaching servers. Like other forms of virtualization, this generic definition will change depending on the vendor and the use case.
Almost all storage systems provide some type of abstraction between the user and the physical devices. Even logical volume managers provide some level of virtualization. However most legacy storage systems require that you create volumes or RAID groups by specifying exactly which drives and how many drives will be associated with each group.
While there is some "virtualness" to this process, because your application now addresses the group and not the individual drive, this does not make storage easier to manage. The goals of what we call storage virtualization are to make the process of managing storage, especially the provisioning process, simpler and the use of that storage more efficient.
For example, if you wanted a high-performance volume without virtualization you'd have to specify which high-speed drives will be part of that volume. You’ll have to know where each drive in the system is and what drive shelf it is on for proper resource balancing and availability. This led to the buying of storage systems for a specific purpose and with (as much as possible) the same type of drive.
Virtualized storage systems typically will do this work for you, grouping common drive types together by type or speed. When you decide you need a 200-gigabit, high-performance volume, the system decides which drives should be used for that and how many. In many cases the system will use a portion of all the available drives of a given type for increased performance. This makes the mixing of different drive types and speed much more manageable because the system figures out how to place the data for you.
Many of these virtualized systems will also virtually allocate capacity only as it is consumed, a technique that we call thin provisioning. As we discuss in our white paper on thin provisioning, this allows you to over-allocate existing storage banking, on the typical reality that most applications never use anything close to maximum capacity.
Some storage virtualization solutions take abstraction a step further by abstracting the storage software from the storage controllers. This enables almost any server with storage, or an array attached to those servers, to appear as one large storage system. This allows administrators to use a variety of storage hardware connected to one or multiple server-class systems running storage as an application. In fact, several of the storage applications can now run as a virtual machine within a virtualized server environment.
Other systems take the more classic turnkey delivery approach where the storage virtualization software and the physical hardware are delivered as a single bundle. This allows the vendor to, in theory, provide better support and maintenance. In some cases, they have customized their hardware to complement their virtual storage software, allowing them to provide better performance and scalability. To some extent, we are seeing a similar approach being taken in the virtual server world as vendors start to deliver integrated stacks of servers and networking to support a turnkey virtual-server experience.
Storage virtualization, like server virtualization, is here to stay. We will see more evolution in the market and I believe that both implementation styles--storage as an application and integrated storage virtualization--will be successful. Despite all the hype, storage virtualization is not without its downsides, something we will discuss in an upcoming blog entry.
Follow Storage Switzerland on Twitter
Read our report on storage for highly converged networks. Download the report now. (Free registration required.)