Software-defined storage (SDS) is a storage infrastructure that is managed and automated by software. SDS abstracts heterogeneous storage systems and their underlying capabilities, and pools the storage resources. Storage capacity is dynamically and automatically allocated from the storage pools based on policies to match the needs of applications.
In general, SDS software abstracts the physical details of storage (media, formats, location, low-level hardware configuration), and delivers storage as software. A storage system is a combination of hardware and software. The software stack exposes the data access method such as block, file, or object, and uses persistent media such as HDD or SSD to store the data.
SDS software separates the software layer of a storage system from the hardware. It supports combinations of multiple storage types and access methods, such as block, file, and object. It enables storing data on both storage systems and commodity disks, while providing a unified external view of storage.
This allows organizations to reuse existing storage assets, and mix and match them with commodity resources, while serving data through a single namespace and storage system spread across these different assets. For example, in a data center that contains several distinct file servers, SDS can provide a global file system, spanning the file servers and allowing location-independent file access.
SDS enables organizations to build modern, hyperscale storage infrastructure in a cost-effective manner using standardized, commercial off-the-shelf components. The components individually provide lower performance. However, at sufficient scale and with the use of SDS software, the pool of components provides greater capacity and performance characteristics.
Features of Software Defined Storage (SDS)
SDS transforms existing heterogeneous physical storage into a simple, extensible, and open virtual storage platform. The key attributes of software-defined storage are as follows
- Storage abstraction and pooling:
SDS abstracts and pools storage resources across heterogeneous storage infrastructure. SDS software creates a single large storage pool with the underlying storage resources, from which several virtual storage pools are created. SDS decouples the storage control path from the data path. Applications connect to storage via the data path.
- Automated, policy-driven storage provisioning:
A “storage service” is some combination of capacity, performance, protection, encryption, and replication. In the SDS model, storage services are dynamically composed from available resources. SDS uses application policies to create a “just-in-time” model for storage service delivery. Storage assets and capabilities are configured and assigned to specific applications only when they are needed. If the policy changes, the storage environment dynamically and automatically responds with the new requested service level.
- Unified management:
SDS provides a unified storage management interface that provides an abstract view of the storage infrastructure. Unified management provides a single control point for the entire infrastructure across all physical and virtual resources.
Resource pooling enables multi-tenancy, and automated storage provisioning enables self-service access to storage resources. Users select storage services from a self-service catalog and self-provision them.
- Open and extensible:
An SDS environment is open and easy to extend enabling new capabilities to be added. An extensible architecture enables integrating multi-vendor storage, and external management interfaces and applications into the SDS environment through the use of application programming interfaces (APIs).