The origin of RAID-6
Posted in Storage Interconnects & RAID, Advisor - Tom Treadway by Tom TreadwayQuestion to the Storage Advisors, from BEF: I haven’t been able to figure out who developed RAID 6 and how long it’s been around. Any ideas?
To answer the question of who was the first to develop RAID-6 one must first decide if they’re interested in determining who was the first to develop the mathematical model for recovering from multiple failures, who was the first to apply that concept to disk drives, or who was the first to ship a solution that recovered from multiple failures. And on top of that, there isn’t just one model. There have been several models over the last 10 years, some of which are much better than others. And it’s not likely that the industry will converge on one model in the near future because each model does have distinct advantages. Plus there is unfortunately a little showmanship between vendors that proclaim their version as the best. So in an attempt to answer the question, I’ll present several important milestones in the history of RAID-6.
Gibson, Patterson and Katz are typically credited with first defining RAID levels 1 through 5. Of course many of these ideas had been around for years before, but they’re really the ones that kicked started this whole concept of RAID via their 1988 whitepaper. In 1990, G, P and K, along with Hellerstein and Karp, released a whitepaper that described methods of protecting against multiple drive failures. These methods were very simple to implement, but they were also very inefficient in regards to space utilization and had poor performance. Then in 1993, G, P and K, along with Chen and Lee, released a whitepaper that specifically referenced a new raid level, RAID-6, and described it as “P+Q redundancy using Reed-Solomon”. Of course Reed-Solomon is a generic encoding scheme that isn’t tied to only disks, and is in fact part of a much larger field of mathematics related to MDS, or Maximum Distance Separated, codes. So G, P, K and the others didn’t invent anything new, but instead combined known techniques in a new and novel approach. Reed-Solomon (R-S) is a very flexible and efficient encoding scheme, but it is also very mathematically intense scheme that can’t reasonably be done without hardware assist. In 2005 several low-end chips, including chips from Intel, started shipping with R-S support. The first shipping version of R-S (that I could find) was in the IBM RAMAC Virtual Array in the mid 1990’s. This was shortly followed up by StorageTek in their Iceberg 9200. And then in late 2002 by HP in their SmartArray 5300. (HP has a slightly different twist on R-S and refer to it as Advanced Data Guarding, or ADG.)
In parallel with R-S development, there have been other forms of RAID-6 based on simpler XOR funtions, making it very similar to RAID-5 and therefore compatible with all the shipping RAID hardware from the last 10 years. In 1994 IBM Almaden documented a method called EVENODD. The advantage was that it was space efficient and easy to implement, but it had performance issues under certain workloads. In 1997 Xu and Bruck documented a method call X-Code. It didn’t have the performance issues of EVENODD, but it only worked with a prime number of drives. In 2004 Adaptec developed a patent-pending method that was released in IBM SAS RAID products in early 2005. And of course there are other RAID-6 schemes based on XOR, but to my knowledge none are shipping in any significant quantity.
For more information on some of these RAID-6 definitions see this earlier post. I hope this answered your question, and of course feel free to ask any follow-up questions.
TT