RAID Scaling Charts, Part 3: Stripe Sizes At RAID 0, 5, 6 Analyzed
This is the third article that deals with analyzing the various possibilities involving various RAID setups and differing numbers of hard drives. We used the same hard disks again here: eight Samsung HM321KJ SATA/300 drives powered all of the possible RAID 0, RAID 5 and RAID 6 setups, with from three to as many as eight hard drives configured to use stripe sizes of 4 to 128 kB.
Redundant Arrays of Independent Drives (RAID) isn’t a fancy technology, but it has become the backbone of all serious businesses today. According to a recent storage study by Fleishman-Hillard, 75% of the interviewed companies utilize RAID setups, followed by DAS and NAS solutions. RAID storage solutions require a controller, which is capable of utilizing several hard drives to create a single storage partition. While the main purpose is data safety together with increased capacity, RAID is also being used to accelerate storage subsystems, because storage has always been a critical bottleneck for all sorts of businesses. Hence we published our RAID Scaling Charts, which we now conclude with the third part.
The article RAID Scaling Charts Part 1 deals with the basic RAID arrays using levels 0, 1 and 0+1. RAID 0 consists of a so-called stripe set, which is created across all available hard drives to increase performance and utilize the entire storage capacity of the combined drive set. RAID 0 is popular for high-performance applications such as HD video editing, but only one drive failing will destroy the entire array. RAID 1 offers the opposite from a security standpoint, as hard drive content is automatically mirrored onto at least a second drive. RAID 0+1 combines both RAID 0 and 1, as it mirrors two RAID 0 stripe sets. We used as few as two and as many as eight hard drives to see how these basic RAID arrays would scale in performance as you increase the number of hard drives.
This is also what we did in the RAID Scaling Charts Part 2; however, there we looked at the complex RAID arrays 5 and 6, which utilize one and two hard drives, respectively, to store parity data in addition to at least two data drives. The redundancy information allows a RAID 5 array to withstand the failure of one hard drive without suffering a loss of data. RAID 6 provides double redundancy, which requires two hard drives just to store the overhead information used to restore contents in the case of a drive failure. Parity-enabled RAID arrays are a reliable way of storing large amounts of data, but they require a powerful RAID controller that is quick enough to create the parity information or to recreate data on the fly in a worst-case scenario. We looked at several of them in August; see "Unified Serial RAID Controllers for PCI Express".
RAID involves more parameters than just the RAID level and the number of hard drives. There are factors such as the interface of the RAID controller (usually PCI Express or PCI-X), a certain amount of on-board cache memory, and of course the internal setup of the RAID array. Knowing that all array types except RAID 1 are based on stripes, it is obvious that there might be different stripe sizes. This is exactly what this article focuses on: how do RAID 0, RAID 5 and RAID 6 arrays perform at different stripe sizes between 4 kB and 128 kB?