What is Firmware? Think of firmware as software for hardware. Good firmware allows the full expression of the underlying hardware’s capabilities. Good firmware allows for optimization. In the case of an all-flash array, good firmware handles low-level data movement, RAID, Garbage Collection, data placement, data recovery, and data integrity.
To dig a little deeper, let’s start with Violin’s hardware which is defined by our Flash Fabric Architecture (FFA). Because our FFA is vertically integrated and developed 100% in-house, our firmware had to be designed by us to support our architecture. There is no off-the-shelf way to do firmware for a custom hardware design. SSD-based arrays have their own challenges, because the SSD vendor provides the controller functions in firmware to manage their SSD. Violin wanted more. We felt the benefits of a custom hardware/firmware design warranted the resources. We are able to design for optimum performance, resilience, and manageability through our entire hardware, firmware and software stack. We shipped our first array in 2007, and have been steadily refining the architecture for 7 years.
The layer above firmware is data services. At Violin, our Concerto Data Services layer includes synchronous (with zero RPO and RTO) and asynchronous replication, mirroring, continuous data protection, thin provisioning, application consistent snapshots, thin clones, consistency groups, automated DR recovery management, WAN optimized replication, scaling up to 280TB in a single name space, LUNs that span shelves (with LUNs that can expand online), deduplication, compression and backup application integration.
Violin has used some third-party software to arrive at our current capabilities. For instance, our Violin Memory Operating System 6 (vMOS) includes some data services from Symantec, such as thin provisioning, clones and snapshots. It was an excellent interim step because it provided functions that customers wanted on our high-performing arrays. But again, we wanted more. We’ve announced and shipped Concerto data services that are tightly integrated with our FFA to optimize the performance, resilience and manageability of the array. To provide capabilities that allow us to get a fast start we acquired code from a data services software company. We chose a software base that is mature and well deployed in large accounts, then we optimized it for our FFA. We’ve been able to use certain components such as agent software for application consistent snapshots and backups while developing capabilities that weren’t available such as deduplication for granular inline data reduction. We’ve invested the last two years integrating and developing the elements where needed to optimize for performance, resilience and manageability on our specific hardware/firmware. Concerto Data Services is Violin code optimized to bring out the most from our Flash Fabric Architecture and deliver the highest value to our customers. Always-on deduplication may benefit the storage vendor, but granular deduplication benefits the customer.
On top of Concerto data services, we developed Symphony management software. This management layer was developed at Violin and again is closely designed to bring out the best in our FFA. Our customers wanted flexibility and the ability to manage all their Violin arrays from a single pane of glass, and specify their own dashboards, and set their own alert levels, and have an easy-to-use GUI.
Where does firmware come from in other storage companies?
Common practice in the storage industry:
- Buy a whole array and brand it yours. (From Engenio/LSI to HP, HDS, IBM, et al.)
- Buy an array company and brand it yours. (3PAR-HP, TMS-IBM, Sun-Oracle, Data Domain-EMC, Isilon-EMC, et al.)
- License/Buy software and put it in your array. (ZFS at a bunch of companies), Sepaton, ScaleIO, StoredIQ, et al.)
At Violin we believe that real differentiation has to come from the hardware foundation through the management layer. If you optimize the layers above the hardware you’ll be able to expose all the capabilities of that architecture for your customer. If you start on a commodity SSD-based foundation with someone else’s firmware/hardware your results will vary.
It took us longer to start with the basic firmware/hardware foundation and build optimized software and management layers on top. It is a harder path, with a longer time to market. We feel the results are well worth the effort. Our customers agree.
To get more information on our Flash Fabric Architecture go here: http://www.violin-memory.com/wp-content/uploads/VIMM-vRAID-Whitepaper.pdf
To get more information on Symphony management go here: http://www.violin-memory.com/products/violin-symphony/
To get more information on Concerto data services go here: http://www.violin-memory.com/products/concerto-7000-flash-array/