IDE RAID Comparison

by Matthew Witheiler on June 18, 2001 4:31 AM EST

RAID Explained

Before we can analyze the RAID solutions out there, a proper understanding of RAID technology must be gained first. To begin, we will discuss each RAID type and how it works, an area that is often gray in the minds of many consumers.

For starters, the "A" for array and "I" for independent in RAID are important: they tell that more than one physical hard drive must be used. The number of drives required depends on the RAID type being implemented, but each RAID setup requires at least two hard drives. Typically, it is best to use identical drives. This ensures that both drives react to the RAID environment in the same way. It is possible to use different brands or models on a RAID array, but various issues such as reduced array size and/or decreased performance may result but more on that in the individual sections.

RAID 0

The first but not necessarily the most basic RAID type is RAID 0, or striping. The main purpose of RAID 0 is to provide speed, not fault-tolerence as other RAID configurations offer. Requiring two or more physical drives, RAID 0 works in the following manner.

RAID 0 uses an algorithm to break files into smaller files of the user defined size called the stripe size. Once a file is broken down into these stripes, each drive in the array receives one or more of these fragments. For example, if there are two drives in a RAID 0 array with a 64KB stripe size and the RAID controller gets a command to write a single 128KB file, the file is broken down into two 64KB stripes. Next, one of the two stripes is sent to disk 1 and the other to disk 2 simultaneously This completes the write process.


Image courtesy of Promise Technology, Inc.

Naturally, this decreases the time required to write a file since more than one disk is working to store the information. In our example above the time associated with writing our 128KB file turns out to be the time required to write a single 64KB file, since this is what is what occurs simultaneously on both disks in the array.

The speed of reading a file back is also increased with a sufficiently large file. Let's use our 128KB file on a two disk RAID 0 array with a 64KB stripe size for example again. After the data is stored on both drives in the array, it can be read back by reading the two 64KB files from each drive at the same time. Thus, once again, the time required to read back our 128KB file is actually only the time required to read a single 64KB file.

In some situations, when a file is smaller than the stripe, the file is not broken up and instead is written to the array as is. This results in no speed improvement over a non RAID 0 setup because the drives on the array are not working together when reading or writing.

At the same time, an extremely small stripe size makes a drive do more work than it can handle and can significantly slow down RAID 0 performance as well. For example, if we had a 1KB stripe size and a 128KB file, each drive would have to be written to 64 times to store 64 different 1KB files. This creates a bottleneck as the drive attempts to read or write a large number of times for a single file.

As we mentioned before, RAID 0 has no fault tolerance, meaning that if one drive in the array fails, the whole array is shot. There is no way to rebuild or repair the information stored on a RAID 0 array. This makes a RAID 0 is setup the most susceptible to failure RAID type, a fact that usually keeps users with sensitive data from choosing RAID 0 as their RAID setup.

At the same time, however, RAID 0 is the fastest of all RAID setups. Since there is no overhead required to store extra information for fault tolerance, the speed of RAID 0 can theoretically perform 2 times the speed of a single drive when there are 2 drives in the array. Adding more drives only increases this theoretical performance amount, so if you have a 6 drive RAID 0 array, performance could be as large as 6 times the performance of a single drive.

Using different hard drives in a RAID 0 setup can result in two problems. First off, the size of the RAID array will only be the size of the smallest drive multiplied by the number of drives in the array. This is because the controller always writes to all the drives in the array and once one is filled no more information can be stored on the array. Secondly, the speed of a RAID 0 setup is only as fast as the slowest drive in the array. Because chunks of data are being written to the disks at the same time, if one drive is slower than the rest the others must sit and wait for the slowest drive to finish. It is for these reasons that it is suggested that identical drives be used on a RAID 0 setup.

What RAID 0 boils down to is speed and little more. The fact of the matter is that RAID 0 is not redundant at all, just fast. But for many users, this is all that is important.

Index RAID 1
Comments Locked

2 Comments

View All Comments

  • kburrows - Thursday, December 4, 2003 - link

    Have you run any tests on any onboard RAID solutions for RAID 0 & 1? I would love to see the results posted for the new SATA RAID on the Intel 875 boards.
  • Anonymous User - Sunday, August 17, 2003 - link

    In adressing the performance of an raid array with different stripe sizes, you miss an important factor, namely the accestime of an disk. This wait time has two main couses. First the head positioning and second the rotational latency (the heads track the right trace, but position where the read start has not passed under the head). You may have to wait from 0 to (in the worst case) a full cycle.
    Since the disks move independently You can calculate that the average latency to get an small file is minimal when the stripe size is about an full cycle of an disk in the array (aprox. 250kB today). All other factors I do know do not reduce this. (controller overhead, transport,...)
    So I think that today a minimum stripe size of 256kB should be used.

Log in

Don't have an account? Sign up now