(This page is a copy of a blog post originally published Oct 22, 2008)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Storagebod is rapidly becoming one of my favorite storage blogs for its clear thinking, informative content with a bit of an edge. He recently wrote about the death of RAID-5 and referred to a blog post that appeared on Storagemojo's site last year. The gist is that RAID-5 rebuild times and the risk of encountering additional hard read errors on large SATA disk drives when an array is operating in degraded mode makes it more likely that an unrecoverable read error will occur in an array. 3PAR does things differently and I thought I would use StorageBod’s inspiration to write about it.
3PAR InServ storage systems subdivide disk drive raw storage capacity into small, granular 256 MB sized units we call “chunklets”. If the term chunklet doesn’t work for you, it might help you to think of them as data compartments. A 300 GB disk drive would have 1170 data compartments.
An InServ’s volume manager uses chunklets when forming RAID groups, which I like to think of as micro-RAID arrays. For instance, a micro-RAID 1 array is formed by writing data to two chunklets on different disk drives. Likewise, a micro-RAID 5 array is made by writing application data to data chunklets and a parity chunklet. All chunklets belonging to a single micro-RAID array are located on different disks that are located on in different FRUs.
Multiple micro-RAID arrays are combined to form real-world-sized logical disks, which are then exported to host systems as LUNs. The bottom line is that LUNs are protected by multiple micro-RAID arrays, spread throughout the system. This means that 3PAR RAID 5 arrays can withstand multiple drive failures, (although they can’t survive two drives failures from the same micro-RAID array).
Sparing in InServ arrays also use chunklets. That means there are no physical spare drives wasting energy and generating heat waiting for a productive drive to fail. When a disk fails in an InServ system, its used chunklets are evacuated to spare chunklets on other drives. The wide striping algorithms that spread micro-RAID arrays throughout an InServ system are also used to relocate evacuated chunklets from a failed drive.
Wide striping circumvents the performance bottlenecks and dangerously high duty cycles that are characteristics of typical RAID degraded mode and rebuild operations, including those performed on dual-redundancy RAID such as RAID 6. Micro-RAID array parity rebuilds complete very quickly with far less stress to individual disk drives.
In summary, the combination of chunklet-based micro-RAID arrays and wide striping creates a significantly more robust and safer environment for RAID 5 than on any other competitive product - without the inherent performance disadvantages of RAID 6.