At Nexenta, we have developed our vision of software defined storage over a number of years, learning from our larger customers as they manage thousands of NexentaStor instances across their cloud in a centralized manner through policies controlled by their cloud management frameworks. Today we are applying the lessons learned at scale to offer flexible, scalable storage solutions to all our customers.
Applications traditionally required externally shared data storage systems to supply them with capacity, performance and data protection. Most data storage systems perform these functions reasonably well. Their big problem is limited automation and an inability to adapt in real time to dynamic change requirements from the applications.
Storage is not customarily designed to allocate capacity and performance resources on-demand. Resources are typically manually allocated in advance. As storage resources are consumed, the storage admin will then manually allocate more. It’s not a dynamic automated process for the vast majority of storage systems. Allocation tasks are labor intensive require scheduled downtime which is a rare commodity in today’s 7x24 global economy.
Ubiquity: Solutions should be widely available, and work with all major block, file, and object protocols. At Nexenta we have taken an open source or freemium distribution model approach so the solution can achieve widespread distribution.
Abstraction:This is all about separation of the data from the data control layers. Amongst other things, this means that JBODs rule. Everything—from RAID through HA and replication and NFS, CIFS, and other protocols―should be delivered as software that can define the attributes on the storage in the server or on the JBOD on the fly, as needed.
Service Level Agreements / Application Awareness: If a product or service is to be considered software-defined storage, it must be possible to inherit SLA requirements from the compute level or from the overall data center business logic. This means being able to pass along requirements from the application provisioning and management layer through the entire stack, including storage. Self-provisioning storage, based on application requirements, is an example, similar to our own Nexenta VSA for VMware Horizon View product.
Collapsing Compute, Storage, and Networking: For software-defined storage to become reality, the storage protection, replication, cloning, and other capabilities must be able, for certain use cases, to be run co-resident on the compute boxes. In practice, this ironically can mean moving aspects of that logic off the storage capabilities on-box so that storage itself delivers services that then are instantiated, as needed, on the physical device or rack. Our own cloud-wide deduplication capabilities are good examples of this kind of cloud or data center-wide capability enabled by collapsing just the right part of the storage onto the box while retaining other aspects logically off the box in a distributed fashion.
Openness: Systems that are inherently closed and proprietary lack the flexibility of open systems. This openness should extend from on-disk formats through APIs and business models.