On Evolving Software Defined Storage Architecture
Arun Raghunath, Yi Zou, Anjaneya Chagam · 2020
Software Defined Storage (SDS) architectures offer storage services on standard high-volume servers by providing durability, availability, reliability and on-demand scale-out elasticity. To meet different application needs, various storage interfaces like block, file, object are provided, as well as higher level interfaces like streaming write-ahead-logs, and NoSQL databases. Typically, each SDS service is implemented as an independent distributed framework, often with redundant capabilities intertwined with service-specific functions within a monolithic stack. Such monolithic SDS architectures prevent the benefits of new storage media and protocol innovations from reaching the applications using SDS services. In this paper, we advocate for a decoupled architecture by redefining the boundaries of separation within SDS. We describe an instantiation of this architecture built using a popular open-source SDS, where the SDS back-end is decoupled. Evaluation results demonstrate a 99% and 35% bandwidth consumption reduction in cluster network and total network respectively, as well as up to a 35% latency reduction, in a disaggregated storage environment just via careful decoupling. We discuss the benefits of this approach in the context of containerization for agility, scaling NVMe-oF and leveraging emerging storage accelerators.