Glossary
Storage virtualization
Storage virtualization is a software layer that presents physical storage to applications as logical volumes, files or objects while tracking where the data actually sits. Applications use logical names, and a mapping layer translates each one to a physical location, so data can move without applications noticing.
What does the mapping layer do?
Applications address data by a logical name, such as a volume identifier or an object key. The virtualization layer holds a map from each name to a physical location on a particular device. When data moves to new hardware, only the map entries change. The application keeps using the same name and never learns that anything moved.
Take an array that has to be retired while two hundred applications point at it. With direct addressing, each of them has to be repointed, usually in a coordinated cutover weekend. With a mapping layer, the data is copied to new hardware behind the scenes and the map is updated, and the applications do not change.
What the map makes possible
- Pooling. Capacity from several devices presented as one pool, as in storage pooling.
- Thin provisioning. Volumes promised larger than the space actually allocated, covered in thin provisioning.
- Snapshots. Point-in-time views created by copying map entries instead of data.
- Tiering. Moving data between fast and slow media with no change visible to applications.
Where does the virtualization layer live?
The location of the map is the design question that matters. It can sit in a host-based driver, in a network appliance in the data path, inside a storage controller, or distributed across the nodes of the storage system itself.
The map is also the most important thing in the system. If it is lost or corrupted, the data is still on the drives but nothing knows where. On a single appliance or controller it is both a bottleneck, because every request passes through it, and a single point of failure. A map therefore has to be distributed across many servers or protected redundantly, and it has to scale in step with the data, since a system holding billions of objects needs a map of that size. This is the same concern behind the metadata design of distributed storage and software-defined storage, where the mapping is spread across nodes.
What virtualization does not do
It hides where data is. It does not make the underlying devices faster, safer or cheaper by itself. Protection still depends on the redundancy beneath it, as discussed under data durability, and a virtualization layer added over poorly protected storage inherits that weakness while adding a component that can fail.
Frequently asked questions
Is storage virtualization the same as server virtualization?
No. Server virtualization divides one machine into virtual machines. Storage virtualization abstracts storage devices into logical resources. They are often used together but solve different problems.
Where is storage virtualization typically implemented?
In the host, in the network between hosts and storage, or in the array or storage software. Host and network approaches can virtualize several vendors' arrays, while the array approach covers that vendor's own devices.
Does virtualization add latency?
A lookup adds some, and in a well-designed system with a fast, in-memory map it is small. It becomes visible when the map is on a slow or overloaded device in the data path.
Related terms
- Software-defined storage: Storage logic separated from specific hardware.
- Storage pooling: Combining capacity from several devices.
- Thin provisioning: Allocating space only as it is used.
- Distributed storage: Spreading data and its map across nodes.
- Hyper-converged infrastructure: Virtualized compute and storage in one cluster.