Summary
Legacy storage products were designed 30-40 years ago during a very different time when different technology was available. FlashArray, on the other hand, was designed with the modern data storage experience in mind, with an active/active dual-controller architecture that delivers stability and simplicity.
As I get older, I’m increasingly prone to waxing eloquent about the “good ol’ days…,” regardless of whether anybody wants to hear what I have to say. Eyerolls and impatient huffs from my kids at the dinner table are a common occurrence if I’m given a chance to compare how things were when I was younger to the modern-day dramas they talk about. I call my plight the “Rose-colored Glasses Effect.” I mean, kids today have no idea how good they have it, right?
The flaw with nostalgic thinking is it desperately clings to the notion that modern times are simply an inferior derivative of the way things used to be. This bias couldn’t be more prevalent in the IT field. I mean, who doesn’t long for the days of tweaking the CONFIG.SYS file in DOS? I bet nobody is missing it because modern operating systems do a much better job of memory management than they used to.
Technology advancements for the better aren’t limited to just the IT field—they exist just about anywhere you look. Let’s take airline travel, for instance, and compare a jet from the 1960s with one built in this century:
Which of those two jets is best suited for safe, modern-day travel? Without proper context, the answer would seem obvious: The 707-320B is the better choice because it has four engines. But appearances can be deceiving—the jet was also built in the 1960s, when building materials were less refined and four engines weren’t just needed for redundancy…you needed all of them to carry the plane’s weight at the cost of a lot more fuel consumption. Conversely, the 787-10 was built in this century with modern, lighter materials like titanium and newer engine technology that not only provides more power but also does it with a lot less fuel.
How Does This Relate to Enterprise Data Storage?
When you think about it, enterprise scale-up storage is in a similar state today, with legacy vendors selling technology that was developed and built 30-40 years ago during a completely different computing era of centralized models with mainframes and minicomputing. And, those vendors will also tell you there’s no need to pine for the good old days with them; their solutions are just as capable and relevant today as they were back then.
But are they? While legacy vendors may have broken new ground with their flagship products back in the day and helped evolve the IT field, customer needs have exponentially transformed over the last few decades. And, like the above airliner example, modern data center technology needs to evolve to support the modern experience.
The Challenge of Legacy Storage’s Need for Multiple Controllers
Legacy storage’s multicontroller design was not just necessary for ensuring availability in the event of a failure. Processors and cache memory back then were also less capable than they are today, which meant an array needed multiple controllers to provide a reasonable level of performance as well as availability. And, this multiple controller necessity was only half the challenge—their storage system kernels were assembled based on derivatives of current operating systems at the time.
These architectural choices are tough to change once they are locked in, especially if you are a publicly traded company with revenue obligations to your shareholders. Borrowing from my earlier example, safely redesigning an existing storage array is like redesigning an airplane once it has taken off. It is a nearly impossible task, and trying to do it without impacting profitability and market share shuts the idea completely down. Legacy storage companies are challenged by this conundrum with their flagship solutions—this is why they favor acquiring other companies’ technologies for growth over evolving their core products; it’s a safer bet for the shareholders.
The Design Advantage of FlashArray: Reinvention with Great Timing
In 2009, the founders of Pure Storage understood the tough waters legacy storage companies were navigating. They also recognized the industry was at an important inflection point—operating system virtualization had become a de facto standard in the data center, with cloud computing emerging as the next big thing. These two variables required enterprise storage to become highly adaptable and flexible, something that was never expected of it when computing was more consolidated and monolithic.
Their first architectural choice was the most obvious—the future of enterprise storage was flash storage. This maxim may seem obvious 16 years later as you are reading this, but it was a bleeding-edge concept back then.
A second architectural choice was a radical idea and borne from our commitment to simplicity—the system will be active/active for connectivity, but the workload processing will only occur on one active controller. One controller should be able to service all I/O on the array, while the second controller will be present for failovers. In 2009, computing resources had exponentially advanced, and RAM sizes and speeds were much greater than they were when the legacy storage solutions were invented. Plus, why try to complicate storage I/O with the complexity and burden of having multiple controllers share the load when one could do all the work?
FlashArray: A Dual Controller Architecture for the Modern Data Center
Let me repeat (and to any doubters reading this), the dual-controller architecture of FlashArray™ is active/active from a connectivity perspective. Both controllers can receive I/Os from upstream hosts, but only the primary one processes write requests, with the secondary controller maintaining a DRAM mirror of all transactions flowing through the array:
Figure 1: FlashArray controller I/O paths.
There are distinct advantages to this design:
- Ultra-low latency and increased throughput due to how our DRAM/NVRAM stages and does asynchronous flash writes
- Ultra-low latency and increased throughput because there is no subsystem taking processor and RAM cycles to balance I/O across multiple active controllers
- Inline compression and deduplication is more efficient due to the system utilizing only one I/O write path
- No degradation of performance when a controller cutover occurs
But What about Availability in the Event of a Failure?
This question is a big one for people managing a legacy storage solution that leverages multiple active controllers—many are convinced that multiple active controllers are the only way to guarantee several nines of uptime. The uptime capabilities of FlashArray are just as robust. Because of the mirrored DRAM caches and stateless controllers, the array will provide an instant cutover to the secondary controller in the event of a planned or unplanned outage of the primary controller. No data is lost in this event, which means it carries the same levels of availability that legacy solutions emphatically state with their unbeatable uptimes due to their active/active controller designs.
But, more importantly, what is the quality of the availability in the event of a failover event? This is a variable usually not considered by legacy storage providers, which is myopic and only part of the bigger picture that has to be considered:
- Quality of service during an outage. If your legacy active/active storage solution is utilizing both controllers at just 51%, your array will be forced to run at 102% utilization when one controller fails, which means workload performance will suffer and possibly cause some to be taken offline to free up array resources. Conversely, the design of FlashArray with one active controller ensures the secondary will successfully absorb all of the primary’s utilization in the event of a failover. In fact, we leverage this capability when we perform our non-disruptive upgrades to an array.
- Service quality during a rebuild from an outage. Everything breaks, with the true measurement of success in the recovery, and failed controllers in legacy systems are tricky to replace and bring back online in a timely manner. This is due to them being stateful components—they retain and utilize information about past interactions or states to influence current or future operations. In other words, legacy storage controllers maintain an exclusive lock on their I/O operations, and when they fail, all of those operations, along with the controller’s configuration, are lost. When a failed legacy controller is replaced, it has to be rebuilt from scratch with its correct firmware settings and OS configurations, and then merged back into the I/O stream. This process can take an exorbitant amount of time, especially if the array utilization is high, which is a fairly certain probability when a legacy controller goes offline.
FlashArray controllers are stateless, which means their configurations and I/O are immediately available in either controller’s NVRAM cache. Replacing a failed controller for the array is as easy as swapping in a good one, then promoting it back to a primary state—there are no extended rebuilds or I/O synchronization times required. Recovery to a two-controller state is almost instantaneous because the NVRAM is populated automatically.
This isn’t the case for a legacy storage array, which needs extended time to rebuild its failed controller. And when the array is in this state, is it an accurate experience portrayal for a vendor to claim six nines of uptime if the array is limited in performance for an extended period of time while it is recovering? Focusing on uptime is myopic and doesn’t tell the full story.
Not All Multiple Controller Storage Solutions Are Equal
It was an enterprise storage industry given: Storage arrays need to be built with multiple controllers to ensure superior levels of availability. Legacy storage vendors established this standard when many of their products were designed 30-40 years ago. The problem is their multicontroller designs were locked in with the technologies and methods they had at their disposal back then, which didn’t offer the flexibility and agility that is expected in modern data centers.
FlashArray was designed with the modern data storage experience in mind. Its pair of stateless controllers offers equivalent uptimes as the legacy solutions, with the added benefits of ensuring its resources when a controller fails and a quick recovery when one does. This predictability brings better stability and peace of mind to data center operators.Stability and simplicity leads to better predictability and that is what Pure Storage offers.
Learn more about FlashArray, and reach out to your Pure Storage account team to dive deeper.

Free Test Drive
Try FlashArray
Explore our unified block and file storage platform.
Free Test Drive
Experience everything FlashArray has to offer in our virtual lab.






