Fast and Inexpensive - Promise's FastTrak66 IDE RAID-Controller

RAID 0 - Striping

RAID 0 is by many not seen as a real RAID level, because it does not add any redundancy. As a matter of fact RAID 0 is even less reliable than a normal single hard drive, because all data of the array will be lost if only one drive should fail. RAID 0 has still got a lot of charm though, because it offers excellent performance.

RAID 0 is using a mechanism called 'data striping'. It maps data across a number of different hard drives to create one large drive. The data is stored onto the physical drives in consecutive 'stripes', which are of defined size. This means that a file that is larger than the actual stripe size is distributed over the hard drives in the array, so that the different stripes of that file can be read in parallel. In this case the data transfer rate of the RAID 0 Array or 'Stripe Set' is the product of the data transfer rate of the slowest drive in the array times the number of drives that are in the array. If identical hard drives are used, the data transfer bandwidth is simply multiplied by the number of drives. A stripe set of four drives with a data transfer speed of 20 MB/s can therefore reach speeds of 80 MB/s, because data is read or written to or from the four drives in parallel. Of course this example is only valid if the data is indeed distributed over all the four hard drives. Making the stripe size small enough can insure this.

Alternatively, in an environment with a lot of simultaneous requests for small amounts of data the stripe size should be chosen rather large, so that the data is typically found on only one drive in the set, making the access faster, because the request doesn't need to wait until all drives have found and delivered the data.. This example is not valid for IDE though, it only works with SCSI.

What you should know about RAID 0 or 'Stripe Sets'

  • The size of the array will always be the number of drives in the array times the size of the smallest drive in the array. This is because the data is distributed equally over the drives in the set. Therefore it's best to use identical drives or at least drives that have very similar sizes, unless you want to waste drive space.
  • The data transfer rate of the array is always the number of drives times the data transfer rate of the slowest drive, as long as the stripe size is small enough. This is also not too difficult to understand if you realize that the requested chunk needs to be read completely, before another chunk can be read. Therefore each drive has to deliver its stripe of the data chunk before the data can be sent to the processor or DMA-device and so the slowest drive defines the speed.
  • The data access time of a RAID 0 array is either the same as of the slowest drive, or in case of identical drives the access time is equal or slightly higher than of one drive in the array, because all drives need to access their data for the data transfer and unless they are synchronized (only possible with SCSI drives), one of the drives may take longer to access the data than the other.
  • If one drive in the array fails, all data will be lost, because if one stripe of a file is missing, the file cannot be retrieved anymore.

RAID 1 - Mirroring

RAID 1 is also called 'mirroring', because it simply keeps a complete copy of one drive on another drive. A RAID 1 array of two hard drives has the storage capacity of only one drive, because the other drive contains the 'mirror'. RAID 1 is obviously the most reliable kind of array, because it always keeps a complete backup of your data. Its performance is naturally not as high as RAID 0 though. Read requests are actually faster than from one single drive, because the data is simply read from the one drive of the two that delivers it faster. RAID 1 is therefore reducing the access time. Write requests are usually slower on RAID 1, because the data needs to be written on two drives and then compared.

RAID 1 is usually offering 'hot swap', which means single drives in the array can be removed or replaced while the system is running, without interruption. However, once one drive in the array has failed, you need to replace it to ensure data integrity, and if you replace it with a new drive, this one needs to be 'filled' with the mirror again. This has naturally an impact on the performance of the array until the mirroring is finalized.

As you can imagine, RAID 1 is not only a very secure, but also a rather expensive RAID-solution, because you need two hard drives for the capacity of only one.

RAID 10 Or 0,1

This RAID level resembles a combination of RAID 0 and RAID 1. The idea is to mirror a stripe set or to stripe a mirror. The effect is the same. Due to striping, the read and write performance is excellent, as long as no failed drive needs to be rebuilt by the mirror-process. The reliability is also excellent, because you still have a complete backup of your data on another drive. However, you require double the amount of drives than with RAID 0 to achieve the same capacity.

Spanning

'Spanning' is no RAID level, but it is another option offered by the FastTrak66. It simply makes one drive out of a number of drives, regardless of their size. It does neither stripe nor mirror, but it simply hangs one drive on another, so that e.g. a 13 GB and a 8 GB drive make one 21 GB drive. Data stored on this 'spanning-array' is first stored on the first drive and when this drive is full the next data goes onto the next drive. The performance in each dedicated 'area' of the span-array is identical to the performance of the single drive that represents this area.

The FastTrak66

The FastTrak66 is an IDE RAID controller that offers RAID 0 (Striping), RAID 1 (Mirroring), RAID 0,1 or 10 (Mirror of Stripes/Stripe of Mirrors) and Spanning. The two ATA66 IDE-channels can theoretically transfer up to 66 MB/s each, so that in theory FastTrak66 could utilize the whole bandwidth of the PCI-bus, which is 133 MB/s. FastTrak66 is only using one interrupt for both channels, which is already making it more attractive than the onboard IDE that's always using IRQ 14 and 15 for its two channels.

Promise's FastTrak66 is a nice little PCI-card with two IDE-connectors. It looks just a bit too similar to its little brother, the Ultra66 from Promise, which is supposed to upgrade systems that don't have onboard ATA66.