"Stop the RAID 0 insanity!" "There is no place, and no need for a RAID-0 array on a desktop computer." With these words Storage Review and AnandTech banished RAID 0, or striping, from their desktops. For several years, RAID 0 had been considered the Holy Grail for power users wanting to maximize performance from their hard drives. But according to these two websites the general opinion of pc-enthusiasts was misguided. In their eyes, RAID 0 was useless, a hype, and didn't improve performance on desktop machines at all. The world needed enlightment. No more striping or bragging about transfer rates.
'It is our hope that these findings taken as a whole will stem an internet-wide trend where enthusiast-oriented websites blithely incorporate RAID0 into their "high-end" single-user boxes, ignorant to both theory and empirical results', preached Storage Review.
Harsh words from two leading websites, that made us raise our eyebrows. After all, hadn't our own benchmarks shown time and time again that various RAID-setups can hugely benefit desktop systems? We'd often seen I/O performance increase by forty to sixty percent in striped environments. The over-simplified way in which especially Storage Review takes stance against RAID 0, combined with our doubts about the testing methods of both AnandTech and Storage Review, have led to this article. We can already reveal that our test results are such that there is absolutely no way we will follow Storage Review's advice against the use of striping.
RAID 0 in theory
The principle behind RAID 0 is as simple as it is effective, and is known to many tweakers. The system creates an array of separate hard drives, and spreads the data evenly over the drives in the array. This is called striping, and because it results in multiple drives reading or writing data at the same time, I/O performance is improved. Unlike other RAID-levels, RAID 0 does not offer protection against drive failure in any way, so it's not considered 'true' RAID by some (the 'R' in RAID stands for 'redundant', which does not apply to RAID-0). Striping, however, is also used in many other RAID-levels, such as RAID 5 (striping and distributed parity) and RAID 10 (striping and mirroring).
The advantages of striping become rapidly clear when looking at sequential disk access times, because sequential access is especially well suited to distribute data over multiple drives. As long as the system bus doesn't slow things down, performance increases of up to one hundred percent are no exception. Furthermore, striping offers the possibility to perform multiple I/O operations at the same time, by giving each spindle one action to process. This can benefit the processing time when many small I/O operations have to be completed in a short time, as long as the queue contains at least two operations, and the requested data is on two different disks. However, the performance gain on desktops won't be as high as on servers, since desktops usually have to cope with relatively few I/O operations (ranging from about one and a half when near-idling, to eight under full load). However, bearing in mind that desktop systems mostly deal with sequential I/O, RAID 0 still has plenty of potential on desktops.
Although RAID 0 does not significantly improve drive access times, the improved sequential transfer rates and the possibility to perform multiple I/O operations at the same time can cause a remarkable decrease of the so-called average 'service time', which is the most important parameter when evaluating storage performance. The size of the stripes, the type of hard disk used in the array, and the type of RAID-controller are the most important factors in the overall performance of an array. A stripe size somewhere between 64K and 256K usually seems to give the biggest performance increase on desktop applications.
The impact of striping on the transfer rate is visualized in the two graphs below, where we have plotted the transfer rate of a single Western Digital Raptor WD740GD against a RAID 0-array (consisting of two Raptors) at various block sizes and queue-depths. On the left we see the transfer rate when performing one simultaneous I/O, on the right we see the transfer rate with a queue consisting of eight I/O's. These tests were performed using just read commands, fifty percent of which were random.
Left: Transfer rate at 1 waiting I/O | Right: Transfer rate at 8 waiting I/O's
Because of the striping setup's overhead, the single Raptor WD740GD is faster than the RAID-0 machine, with a queue length of one and a transfer size of up to 32K. When the transfer size increases to 64K however, the two striped Raptors take the lead from the single drive. Increasing the number of operations in the I/O-queue to eight means the striped setup leaves the single Raptor in a cloud of dust. At peak performance, the RAID-configuration manages 99.6MB/s in a completely sequential reading pattern, versus 70.1MB/s for the single setup, even though the PCI bus is significantly limiting the RAID-controller's performance.