One of the recent buzzword is “software defined”. When it comes to storage what does it actually mean? In a similar way, while there is a clear benefit and a clear understanding of server virtualisation, what is actually “storage virtualisation”? To complicate things further, some vendors are now offering storage federation. This article will look beyond the marketing hype and will show some of the available options.
The Storage Networking Industry Association (SNIA) has tried to define the attributes of software defined storage in April 2014 in their paper at the URL below and offers the most comprehensive list of attributes that they consider to be part of software defined storage.
Ultimately software defined means an abstraction level from hardware. In this context software defined is nothing new at all. Once people stopped writing code in assembler, i.e. direct for the hardware, one could say with some justification that this was the beginning of “software defined”.
Most midrange storage arrays have been more or less software defined storage for years. Storage arrays in most cases consist of two powerful servers, which the vendors call “storage controllers” and disk shelves with a variety of SSD, SAS and SATA drives. Emerging vendors use this approach to sell the software component on its own for a “build your own array” approach using standard servers and standard disk hardware. As they are not tied to any legacy requirements yet, they can include data reduction capabilities like compression, thin provisioning and deduplication, built-in cloud connectivity, easy and automated management and additional service level management like auto-tiering. Another use case of specialised software (for software defined storage) is to make use of unused capacity within a server environment, e.g. use unused internal disks to create a secure storage environment by pooling the available disks. Yet another use is to use storage capacity especially around SSDs to reduce overall storage latency by using this capacity as another form of cache.
According to SNIA storage virtualisation is a part of software defined storage. This is also where the boundaries are not clearly defined: both technologies mask the original hardware, but what else is required to turn storage virtualisation into a software defined storage solution?