One of the top read articles on StorageSwiss is, “What is a Storage Controller?“. As we discussed in that article, a storage controller is the compute power in a storage system and is responsible for delivering basic functions like concatenating disks into volumes, RAID data protection and moving data through the system. Storage controller technology has to evolve because of increased storage performance and capacity demands, as well as budget realities. Easy access to compute power is driving that evolution and as a result, we believe 2014 will be a significant year of change in storage controller technology. In this article we will give you an overview of what to expect.
Legacy Storage Controllers
Traditionally, storage controller technology was delivered as a dedicated part of the storage system with dual controller architectures being the most common.
When both controllers are active, they can split the I/O workload and data service functions between them. If one of the controllers fails, the other can take over and do double duty until the failed controller is replaced. The dual controller architecture is often called a scale up architecture; since all the performance capabilities of the system are delivered up front. The only upgrade to the system is done by adding capacity in the form of expansion shelves. Typically, when the system reaches maximum capacity the controller pair must be upgraded or replaced.
Storage Controller Challenges
Traditional controller architectures are facing three challenges in the modern data center that are causing suppliers to create alternative methods of implementing them. First, the performance demands of the attaching servers, often loaded with virtual machines, has increased. The movement of that I/O through the system puts a greater strain on the storage controller. Secondly, the media that is responding to this I/O is increasingly flash-based. This means there is less latency within the storage infrastructure that a slower processor could use as time to “catch up”. Third, there is as an increasingly advanced set of data services like thin provisioning, snapshots and most recently, automated tiering or caching. These advanced services need more compute horsepower.
As a result, storage system vendors needed to design new architectures, or at least update old ones, to overcome these three challenges. The most common architectural change was to tweak the scale up model so that the controller software could take advantage of multi-core processors. In addition, many vendors have developed scale out storage designs that deliver the storage controller function and capacity across many nodes. Scale up and scale out storage systems have their own unique advantages, as we covered in our recent columns comparing the two, but in 2014 IT planners will have another set of controller options to consider.
The first big change that storage administrators will see in 2014 is the virtualization of storage controller functionality; otherwise called, “software defined”. In reality, all storage functions are essentially software based, but in the past the storage software and storage hardware were inextricably tied together. When buying a legacy scale up or scale out storage system, you must buy the storage hardware and storage software from the same vendor. The result is that in most cases you end up paying more for the hardware than you should but you get a turnkey system guaranteed to work together.
Software defined storage changes that. The technology allows the storage controller function to be disconnected from the storage hardware. Depending on the vendor, the storage controller can be placed on a variety of new platforms including a dedicated appliance, a virtual appliance in a virtual infrastructure or a bare metal server. In fact, the operating environments themselves (Windows 2012 or VMware vSphere) are incorporating many of the data services that were once the sole domain of a hardware controller. With the controller function being abstracted from the storage hardware, potentially any vendor’s storage hardware can be assigned to the storage controller. This should not only drive down the cost of capacity but also give more flexibility when selecting performance-oriented hardware.
The next step for software defined storage is to abstract the controller function itself. In most software defined solutions, the storage controller function is delivered as software but it is still dedicated to an appliance (virtual or physical). From that point it has a dedicated set of resources available to it and typically, it can’t evolve itself to the workloads it is managing. Abstracting the controller function means running the storage controller within the compute architecture but not as a dedicated appliance; essentially it runs at the hypervisor level.
Abstracting just the controller function allows it to have specific knowledge of the virtual machines running in that architecture and to change them based on the workload. This essentially provides a virtual machine level quality of service. Another benefit of abstracting the controller is that the separate storage media layer, while being shared, requires far less processing power since it only has to move data on and off the storage media.
Another option that IT planners will want to consider is converged controllers. In this design, the entire storage infrastructure is converged into the compute infrastructure. This design is like abstracted controllers except the capacity is now internal to the physical compute servers that are running applications. That capacity is typically aggregated across those servers via a private network and presented as an aggregated pool of storage.
This type of model provides a self-scaling ability to the architecture. As more compute nodes are needed to host more workloads, storage compute and capacity is added with them. The aggregation of capacity across the private network provides data resiliency, however, it does introduce latency, since data is not being read locally. To combat this issue, some of these designs have data locality capabilities so that a virtual machine’s data is read locally but still written across the architecture.
The purpose of this column is to give an overview of how storage controllers are evolving to meet the performance, capacity and budget demands of the data center. Almost any of the available options could be made to work for almost any data center but it may not be the best choice for your specific environment. In future columns, we will cover the pros and cons of each type to help you select the right storage controller architecture for your storage architecture demands.