Software defined storage (SDS), like software defined networks, is software used to create pools of storage composed of multiple storage devices which then appears as a single unit, with the goals of adding flexibility, diversification, and enhanced functionality of the underlying storage. In short, SDS abstracts the storage management software layer away from the hardware device, effectively emancipating these management functions from the confines of each device being managed.
SDS is particularly useful in dynamically changing circumstances. In particular, SDS makes it possible for organizations to source storage from multiple vendors and data storage types that help achieve resilience and improve data availability. With SDS software, these multiple sources can be automatically provisioned, de-provisioned, and the whole can be scaled to meet data demands by simply adding storage to the software defined system.
SDS vendors should add features that include the ability to interact efficiently and effectively between all the underlying storage components. The Storage Networking Industry Association (SNIA) defines five characteristics of software defined storage.
Software-defined storage software must generally supply three features:
With these features, heterogeneous storage resources can be pooled together through abstraction and managed effectively.
Sometimes, SDS is referred to as hyperconverged infrastructure (HCI) solutions, however, HCI can refer to a wider system that can include SDS, as well as other software-define software like Software-Define Networks, yet must offer these specific capabilities to be included:
SDS vendors can fulfill both customized and turnkey software defined storage solutions. Within these two needs, several degrees of SDS can be found, so it is advisable to compare product offerings. These are not hardline categories, but rather ones that demonstrate how SDS technology is evolving.
In short, software defined storage decouples storage software from its hardware allowing the upgrading and downgrading of hardware at will because software manages the underlying storage. But while this is an abstraction, SDS is not storage virtualization, and SDS is not a cloud in full. That confusion comes in because SDS shares many of the same characteristics.
Abstraction is the key characteristic that cloud, storage virtualization, and SDS share. The implementation of each is what differentiates them. Storage virtualization virtualizes storage resources, effectively pooling multiple physical resources into logical units to be treated as a single storage unit. SDS utilizes storage virtualization, but the application also shifts from the hardware the responsibilities and functionalities of deduplication, snapshots, and replication to software, hence software defined storage is a manager, in addition to a virtualizer. The cloud then applies these concepts at scale.
In this way, implementing SDS can provide those functions that were not included on some storage devices. Such is the case for older storage, which would typically not include backup and replication functions, SDS can give new purpose to older storage hardware that would otherwise be considered obsolete.
Businesses benefit in key ways from the storage abstraction provided by software-defined storage platforms.
Succinctly, software defined storage software is hardware agnostic because it is a software layer and not a storage device. Hardware appliance storage, or hardware defined storage, is a whole solution that combines server and storage hardware with some management software. SDS is able to pool vendor agnostic devices into a single storage resource because it abstract out of those devices the storage management software
Software-defined Storage (SDS) solutions serve multiple use cases.