What is Software-Defined Storage?

The Times They Are a-Changin’

The speed at which our data is growing doesn’t seem to be slowing down anytime soon. We’ve seen the predictions – a digital universe of 40 ZB by 2020 (according to IDC), the prevalence of cloud, and our industry moving to a data centric world. The dynamic nature of our industry requires our data centers to be extremely flexible or “software-defined” so that we can easily program compute, network and storage resources to meet the needs of each tenant application. But to truly build this type of agile and adaptive data center, it requires a software solution that can virtualize each component of the data center from its underlying hardware.

It is the value of virtualization —from ease of management to the efficient use of resources. When it comes to compute, virtualization is well understood and it is already transforming the industry landscape. With the recent advancements by the network community, virtualization of network is already underway. Unfortunately, virtualization of storage continues to lag – because storage is heavy – and it’s hard to virtualize.

As storage has evolved through the past few decades, it has adequately met the requirements of new application workloads by providing arrays with distinctive characteristics. This approach has led to the development of a diverse set of powerful storage arrays, each with its own unique value. While needs have been met, it has created massive complexity for storage administrators – turning them into storage managers who spend most of their time simply managing the storage arrays instead of optimizing information storage for their business.

To meet these challenges, the storage industry has to fundamentally rethink how storage is managed and delivered. The industry needs to develop a true Software-Defined Storage (SDS) solution that addresses storage challenges in the same way that we address compute and network challenges.

Enter Software-Defined Storage

SDS is a term that’s used a lot these days – and people sometimes define it the way they like. Is it about delivering a storage solution on commodity hardware? New appliances? Or is it about lightweight, extensible, open software that’s easy to implement and easy to use – that delivers higher value to the business?

When “defining” SDS, we need to take a holistic view of storage – across all vendor arrays and across all commodity hardware – to provide a complete solution that meets the requirements of the Software-Defined Data Center. SDS separates the storage management services (or control plane) from the storage infrastructure (or data plane) while still retaining and extending the unique value, characteristics, and intelligence of each vendor array(s). This approach provides choice and flexibility to enterprises – so they can run their business with the necessary speed and agility required to be successful in today’s world.

In our view, SDS has the following characteristics:

Simple: Policy-driven Automation

SDS creates a single pool of storage from a heterogeneous set of storage arrays (commodity hardware and multi-vendor) and allows storage administrators to construct virtual storage arrays via policy. A virtual storage array can span multiple physical arrays and may be more powerful than the underlying physical arrays as new software capabilities can be added to the virtual array. Once storage is extracted into a pool of virtual storage arrays, storage administrators can then manage at the virtual layer according to automated policies. Storage administrators define various Virtual Storage Pools that represent storage performance characteristics and capabilities suited for particular workloads. With SDS, storage administrators can also provide users with instant, self-service access to storage. This gives users immediate access to storage instead of waiting days (or even weeks). It also frees up the administrators time to focus on the business.

Extensible:  Adding new array capabilities in software

Adding new capabilities (i.e., a data service such as object on file) to each multi-vendor storage array is a time consuming, tedious and costly process (as only the array vendor can add new capabilities to their array). Instead, SDS provides a platform on which new data service capabilities can be built once and used by all arrays under its management. SDS also provides access to resources through a uniform set of APIs that can be used for the development of new data services.

Open Environment: Building a Community

SDS is designed as an open platform where it is easy to add support for new arrays or add new capabilities to the storage infrastructure through data services built in software. Therefore, all management functions are exposed through APIs enabling SDS to integrate with any management stack, VMware, OpenStack, Microsoft, etc. Similarly, SDS exposes APIs so any storage array can be added to SDS by its vendor or 3rd party, and also provides APIs so any data service can easily build in software by anyone.


With the rate of data growth in the data-centric world of today, it requires a new holistic approach to storage. One that allows customers to leverage and extend existing investments while applying the advancements of cloud technology and the many years of R&D that both EMC and VMware have together invested. Software-Defined Storage is about choice, business agility, and valuable communities – all delivered and accessed in a very simple, extensible and open way!

About the Author: Amitabh Srivastava