If RAID's speed and redundancy aren't enough to pique your interest, maybe its price will. Serial ATA RAID support is included in most of today's core logic chipsets, so it's essentially free. Chipset RAID has been around for a while, of course, but only the most recent core-logic chipsets from Intel and NVIDIA support arrays of up to four drives and the highly coveted RAID 5.
We've spent a couple of months running Intel's ICH7R and NVIDIA's nForce4 Serial ATA RAID controllers through our exhaustive suite of storage tests, and the results are something to behold. We started with a single drive and worked our way up through RAID levels 0, 1, 10, 0+1, and 5 with two, three, and even four hard drives. Read on to see which RAID controller reigns supreme and how the different RAID levels compare in performance.
Before we dive into an unprecedented, er, array of benchmark results, we should take a moment to unravel the oft-misunderstood world of RAID. Depending on who you believe, RAID either stands for Redundant Array of Independent Disks or Redundant Array of Inexpensive Disks. We're inclined to side with "independent" rather than "inexpensive," since RAID arrays can just as easily be built with uber-expensive 15K-RPM SCSI drives as they can with relatively inexpensive Serial ATA disks. RAID arrays aren't necessarily redundant, as you'll soon see, so there's little point in squabbling over the acronym.
There are a myriad of RAID levels to choose from, but we'll be focusing our attention on RAID 1, 0, 10, 0+1, and 5. Those are the array types supported by today's core-logic chipsets, and they're also the most common RAID options for add-in cards. Each array level offers a unique blend of performance, redundancy, and capacity, which we've outlined below. For the sake of simplicity, we'll assume that arrays are being built with identical drives of equal capacity.
RAID 0 arrays can be created with as few as two drives or with as many drives as there are open ports on the RAID controller. Adding more drives should improve performance, but those performance gains come with an increased risk of data loss. Because RAID 0 spreads data over multiple disks, the failure of a single drive will destroy all the data in an array. The more drives in a RAID 0 array, the greater the chance of a drive failure.
While it may be more prone to data loss than other levels, RAID 0 does offer the best capacity of any conventional array type. The capacity of a RAID 0 array is equal to the capacity of one of the drives in the array times the total number of drives in the array, with no space wasted on mirrors, parity, or other such luxuries.
Although RAID 1's focus is on redundancy, mirroring can improve performance by allowing read requests to be distributed between the two drives (although not all RAID 1 implementations take advantage of this opportunity). RAID 1 is one of the least efficient arrays when it comes to storage capacity, though. Because data is duplicated on an auxiliary drive, the total capacity of the array is only equal to the capacity of a single drive.
RAID 10's attractive blend of performance and redundancy does come at a price, though. Arrays require an even number of at least four drives to implement, and capacity is limited to just half the total capacity of the drives used.
Like RAID 10, RAID 0+1 implementations require an even number of at least four drives. Array capacity is equal to half the total capacity of drives in the array.
Since striped arrays are a disaster as far as fault tolerance is concerned, RAID 5 adds a measure of fault tolerance using a little binary math. Parity data is calculated for each rank of blocks written to the array, and that parity data is spread across the drives in the array. This data can be used to reconstruct the contents of a failed drive, allowing RAID 5 arrays to survive a single drive failure with no data loss.
Parity's real benefit isn't so much that it allows for a measure of fault tolerance, but that this fault tolerance can be achieved with little capacity sacrifice. Because only one parity block is needed for each rank of blocks written to the array, parity data only consumes the capacity of one drive in the array. This results in an array capacity equal to the total capacity of all drives in the array minus the capacity of just one drivea huge improvement over the mirror overhead of RAID 1, 10, and 0+1 arrays. Parity also allows fault-tolerant RAID 5 arrays to be created with as few as three drives.
Parity calculations, however, can introduce significant computational overhead. Parity data must be calculated each time data is written to the disk, creating a potential bottleneck for write performance. High-end RAID 5 add-in cards typically avoid this bottleneck by performing parity calculations with dedicated hardware, but current chipset-based RAID 5 implementations rely on the CPU to perform parity calculations.
|The TR Podcast 171: Nvidia takes heat, Carrizo runs cool, and Fractal stays quiet||0|
|Tiny PowerVR G6020 GPU targets 720p phones, wearables||1|
|New PowerVR H.265 encoders promise big efficiency gains||3|
|HTC announces Vive headset powered by Steam VR||37|
|Toxikk resurrects the arena FPS in modern graphics glory||54|
|Friday Night Shortbread||52|
|Simple iframe attack compromises SOHO routers||33|
|Deal of the week: Radeons, mechanical keyboards, IPS displays, and more||28|
|God you're tiresome.||+52|