Pure Storage's Evergreen Architecture
When Pure Storage was founded back in 2009, their goal was to "Rethink Enterprise Data Storage". At the heart of their first product, the FlashArray, was the underlying Evergreen Architecture, which was the philosophy the company was founded upon.
What is Pure Storage's Evergreen Architecture?
In the simplest form, the Evergreen Architecture equates to the idea that your storage should never get old and always stay current through non-disruptive, in-place software/hardware upgrades. This includes both newer controller generations as well as moving to larger controller models, along with capacity consolidations to move to large capacity (denser) DirectFlash Modules (DFMs). And as you'd expect, all without downtime, performance impact or ever having to migrate your data again.
What about hardware form factors and media type changes, that must put a wrench in the non-disruptive upgrades right? Great question, and surprisingly no, that doesn't change anything. The first FlashArray design had the controllers as standalone servers connected to a JBOF (just a bunch of flash) shelf. Over the years the design moved to integrating both the controllers and disks into a long-life chassis. And whether you're running the 3RU //X chassis today and you want to move to the 5RU //XL chassis tomorrow, rest assured there's a step-by-step process to upgrade the controllers and move over the existing media all online, without disruption, to the larger form factor chassis.
We're seeing more and more storage OEMs moving to this type of design for their storage solutions as well as some who have started down the path and backed off from it as it's not an easy task to accomplish. Pure Storage, however, has successfully done over 10,000+ Hardware Non-Disruptive Upgrades in the field across their customer base since their first product was released in 2012. I believe the Evergreen Architecture is one of the key reasons Pure Storage is highest and furthest to the right on Gartner's Magic Quadrant year after year.
FlashArray IO Flow
You may be saying to yourself, that sounds great, but how is it possible. In order for you to understand the process and how this can work, let's do a recap on the components and the IO data flow in the FlashArray.
**Note - the FlashBlade design while different, still holds true to the same concepts of the Evergreen Architecture. And the process is even simpler since FlashBlade is a scale-out, node-based architecture, where you can replace a node/blade at a time to newer models along with adding/upgrading the DFMs.
The FlashArray is a dual controller design where both controllers are active/active on the front-end, or client facing side. On the backend however, only one of the controllers is active (primary), providing 100% of the data services and communicating to the DFMs to read/write the data. The other, inactive controller is secondary and ready in a moment's notice to take over the primary role in case of an outage or upgrade. This design guarantees that even when unexpected hardware issues arise, the system will still deliver 100% of the performance for the workloads running on it.
The image above depicts the communication flow from a client, through the SAN fabric, to both controllers. Within the storage array, the secondary controller forwards all IO to the primary controller through an internal backplane (non-transparent bridge). The writes are staged to two different NVRAM modules, before data reduction occurs and eventually striping the deduped/compressed data across a set of DFMs with their parity bits for redundancy.
For read requests, the primary controller retrieves the data directly from the DFMs (based on the metadata table location) and sends the uncompressed data back to the client.
The image below depicts a controller failure, or removal, for a replacement/upgrade. As you can see in the image, half of the SAN fabric connections are gone or down during this process, but the storage is still 100% online serving data requests to the clients. Here's an oldie, but goodie, short video on the life of an IO in a FlashArray for more information.
As the secondary controller is replaced/upgraded, the SAN fabric paths will come back online without needing to update any FC Zoning, iSCSI Targets, etc. This is all possible because the controller personality is done via software and not tied to any physical hardware (MAC Addresses, Serial Numbers, WWNs, IQNs, NQNs). So the newly inserted controller takes over the replaced controllers personality (configuration and settings) and the clients/fabric don't know anything changed.
Evergreen Architecture in Action
Now that you understand how data flows within a FlashArray and that you can do controller replacements and upgrades in place without impact…let's prove it.
Back in 2020, a few of my peers released this video that demonstrates upgrading a running FlashArray//X70 to a //X90R3 showing the process and steps to non-disruptively upgrade not only the controller generations, but also the model size to a larger //X90 that has more CPU Cores and RAM to support larger workload needs. The video shows that the storage stays online throughout the upgrade process and utilizes Grafana to display the performance metrics seen from the client side when the primary and secondary controllers change roles.
It's been a few years since the prior video was created and with the R4 controller generations released this past year, it was time to create a new video showing the upgrade of a different FlashArray//X90R2 to a //X90R4. This was my first hands on experience doing a FlashArray controller upgrade and it went as I expected, without performance degradation or outages. In fact, I performed the controller swap during normal business hours with client running workloads on the array.
While the hardware upgrades require professional services, software upgrades can be done yourself through the self-service upgrade process. For more information on how easy and painless a self-service upgrade is, check out the video here.
The value of the Evergreen Architecture
You now understand how the hardware and software design allows for your storage to stay modern, without needing additional rack space, or months of migration planning and services.
The value WWT's customers have seen by moving to Pure Storage is that they no longer need to buy a storage platform sized with enough capacity/performance up front to last them 5 years. Instead, they can size for what they need now, resting assure that as needs change, they can easily upgrade their storage to meet their new needs while not losing money for the investments made around performance and capacity due to the Ever Modern, Ever Agile and Capacity Consolidation features included with an Evergreen//Forever subscription.
We've all heard the phrase "seeing is believing" and hopefully this blog post gives you a better understanding what is possible through Pure's Evergreen Architecture. If you're ready to take this beyond what a few videos show, and want to see a non-disruptive controller upgrade in action for yourself, reach out to your WWT account teams to inquire about what a Proof of Concept (POC) in WWT's Advanced Technology Center (ATC) would entail and how we can help you on your next storage refresh journey.