With increasing frequency, I'm asked for my thoughts on the emerging software-defined storage category. Whenever I'm presented with a new tech term, I ask whether it truly defines a new product category, or if it's simply an attempt to make an existing technology seem more glamorous. Software-defined storage is a little bit of both. If we really have to have a separate term for this group of products, here is what I think that definition should be.
We have been using software to define storage for as long as there has been storage. One could take the stance that a volume-manager application is essentially software defining storage. But those promoting the current term clearly have more in mind. You could also easily lump anything that does storage virtualization into this category, and we are seeing many of the storage virtualization vendors do just that.
For me, though, there is a difference. Both storage virtualization and software-defined storage abstract the storage services from the storage system, allowing them to provide those services across a variety of disk and solid-state storage systems. Storage virtualization, however, should be isolated to products that must run on a dedicated piece of hardware. For many vendors, this is a purpose-built appliance; for others, it is software that you load on a dedicated server.
I don't think there is anything controversial about this separation thus far. However, I would refine the above to also include products that require their software to be run as a dedicated virtual machine. The fact that your appliance is virtual does not mean it does not require an appliance; it simply means that it does not require hardware. It is essentially virtualized storage virtualization. That said, storage appliances running virtually can be seen as an improvement over dedicated external devices, as they bring storage performance and costs in lockstep with the scaling of the virtual infrastructure.
This means then that software-defined storage is storage software that is an extension of the existing operating system or hypervisor and does not require a specific virtual machine to run its software in. As we discuss in "What is the Storage Hypervisor?" this means that either the operating system / hypervisor provider or (via extension) a third party has added features like thin provisioning, snapshots, cloning and replication. At that point all that is needed from the physical storage hardware is a reliable design and potentially high availability.
For the IT professional this is more than just a discussion of semantics. Each has its place and can bring significant value to the enterprise. As the data center becomes increasingly virtualized, software-defined storage and virtualized storage virtualization becomes an ideal method for scaling storage capacity and performance as the virtual environment scales. Until that time, storage virtualization running on dedicated hardware provides the benefits of software-defined storage across both virtualized and non-virtualized platforms.