There is a new trend of Software Defined “Everything” in IT, and the storage industry is going through the same transformation. While there is a lot of marketing buzz around the term Software Defined Storage, this article is intended to introduce clarity by describing—from a storage vendor perspective—the major differences between Software Defined Storage and traditional SAN or NAS arrays.
Software vs. Hardware
This is the most obvious difference, and it has a big impact on both the cost and agility of deployment of storage systems.
Cost
On the cost side, traditional SAN and NAS storage array vendors spend a lot of money in developing custom ASICs, custom circuit boards and custom real time operating systems (OSs). A custom ASIC can cost between $10M and $20M in development that, in turn, needs to be paid for via inclusion in the price of the storage array. In fact, only a minimal part of the R&D expenses of a traditional storage vendor is spent on storage functionality. The majority is spent on development of custom hardware and software infrastructure. In addition, because all the components are proprietary, traditional storage vendors need to spend a lot of money on interoperability tests. As an example, a simple new drive qualification cycle can cost millions of dollars and take many months. On the other hand, Software Defined Storage companies use standard x86 hardware, and standard OSs. This means that the semiconductors used are designed by the Intels, Broadcoms and LSIs of the world. The hardware and interoperability is done by the Dells, HPs and IBMs of the world and the OS components are developed by Microsoft, VMware or Linux developers. This also means that a company like Zadara™ Storage can leverage existing and proven technologies and concentrate all its R&D efforts purely on storage functionality, bringing forth a better product at a fraction of the cost of a traditional SAN or NAS storage array. If so, why do SAN and NAS storage array vendors prefer custom hardware? If you ask any storage vendor why they need expensive custom hardware they will tell you that the reliability of their hardware is much better than that of standard x86 hardware. This is in general true, but the other side of the same coin is that their legacy software assumes a great degree of reliability from the underlying hardware. Their software protects against rare “single points of failure” as opposed to multiple and more frequent failures that could happen with commodity hardware. Unlike storage based on legacy software, Software Defined Storage companies like Zadara Storage actually assume that hardware is unreliable, and the software is the one that needs to continue operating in the face of concurrent hardware failures.
Agility
The benefits do not end with cost savings. The other big advantage that Software Defined Storage provides to modern IT is agility. Agility means doing things faster; preferably much faster. Agility is a significant value-add because it allows rapid, effective response to changing business requirements or conditions, In fact, agility can be even more important than cost savings. For instance, while deploying a traditional storage array can take weeks from the moment of the decision to buy to the moment it is actually installed and connected to the application servers, the exact same thing takes exactly one minute with Zadara Storage. Weeks vs. a minute! Moreover, another component of the agility is automation. While traditional SAN and NAS arrays use command line interfaces (CLIs) or SMI-S API to automate certain operations, Software Defined Storage usually uses REST APIs that are much simpler to use and integrate.
Scalability
Beyond hardware vs. software, there are other major differences between Software Defined Storage and traditional SAN and NAS arrays. One of the most important ones is scalability. Traditional SAN arrays are based on a dual controller configuration, and even the ones that “scale out” can scale to a maximum of 4 or 8 controllers. This means that there is a real limit to the number of drives one can attach behind those controllers. And when using solid state drives (SSDs), then this scalability limit is dramatically lower yet, due to the high IOPS (input/output operations per second) rate of the drives compared to the IOPS rate supported by the controllers. On the other hand, Software Defined Storage is designed like the cloud. It assumes hundreds of nodes, thousands of nodes, or more, interconnected with standard networks. This means that the number of drives you can put behind it is practically unlimited, even when SSDs. From a software architecture perspective there is a world of difference between designing a distributed system that can scale up to 8 nodes and one that can scale up to thousands of nodes. In the case of the latter system one has to assume that there are no blocking activities. Different components can be up or down at any given time and the software cannot rely on specific modules being up or down. There is no such a thing as a “shutdown” or “reboot” of the entire storage system, even for a software upgrade. Software upgrades need to be performed on a rolling basis, and the software needs to assume that at any given time different nodes will have different versions of the software (and, as mentioned earlier, that some nodes will be down).
Reliability
As discussed previously, traditional SAN and NAS vendors base their availability on the reliability of their custom hardware, while for Software Defined Storage vendors the reliability comes from the software, and it is assumed that hardware will fail, especially in highly scalable environments. It is the job of the software to make sure everything continues to work with intelligent, self-healing processes. This difference in concept, actually makes the Software Defined Storage systems much more reliable than traditional SAN and NAS storage devices. This kind of thinking is what made technologies like the Internet and its underlying protocol, TCP/IP, very reliable. Much in the same way, TCP/IP assumes that routers will fail between two points but has enough intelligence to reroute packets via alternate routes—resulting in resiliency and reliability.
Multi-tenancy
Because the traditional SAN and NAS storage devices are limited in scalability, they usually serve a single purpose, and typically only one administrator or a very limited number thereof. There is no good separation among workloads in a SAN or NAS storage array that is shared by multiple applications. This causes performance problems and lack of self-provisioning by the applications. Typically, customers buy multiple storage arrays and employ physical separation among workloads. Obviously this is not cost effective as unused space in one storage array cannot be used by another array. It is also not efficient for storage administrators, who need to manage multiple storage arrays, which are purchased, at times, from different vendors and have different management consoles. On the other hand, a Software Defined Storage system is built with multi-tenancy in mind. The ability to separate workloads and even self-provision storage by every tenant is critical if all the storage for all the applications is to come from a single system. This allows isolation of the performance among tenants and at the same time allows the user to quickly reallocate unused storage to other applications or other tenants. Another aspect of multi-tenancy is chargeback. Most of the traditional SAN and NAS arrays lack the ability to track usage and cost of particular applications, while in a multi-tenant environment, it is important to understand the cost incurred by every tenant. Software Defined Storage designed for the cloud, such as the Virtual Private Storage Array™ service by Zadara Storage, has metering and billing capabilities built in.
Summary
More info at: https://www.zadarastorage.com