RAID (Redundant Array of Inexpensive Drives) is a hardware technique to improve fault tolerance (the ability to compensate for failures) of data stored on hard drives. There are several variations of RAID, but the common goal is simple: If one hard drive fails, recover data from another.
RAID drives are grouped together into units called arrays. There are two techniques for controlling RAID arrays: Hardware and software. Hardware RAID involves a dedicated hardware RAID controller card, and it is usually faster, more reliable, but more expensive. Software RAID achieves the same result through the operating system and the inexpensive motherboard drive ports, but its performance and reliability are not as good as true hardware RAID.
RAID01 (RAID0+1) and RAID10 (RAID1+0) are two RAID configurations that are easily confused, so here is a brief description to help explain their differences and which is better.
RAID01 and RAID10 are actually hybrid RAID arrays that combine RAID0 and RAID1 into a single system involving disk duplexing. But first, what do these terms mean?
RAID 1 (Mirroring)
The simplest form of RAID duplicates the same data to two hard drives of equivalent size (the size of the smallest hard drive determines the size of the entire array for any RAID level.)
This is called mirroring, or RAID 1. The “1” refers to the RAID level, and represents mirroring.
When a file is written to the array, the same file is stored on both drives so if one hard drive fails, the file is retrievable from the other.
RAID 0 (Striping)
First of all, RAID 0 is not really RAID because it offers no fault tolerance, but it is often lumped in with RAID since it can be combined with other RAID levels.
When a file is stored, it is split into parts called stripes. Each stripe is stored to a separate drive simultaneously. For simplicity, suppose that a file is split into two parts labeled A and B. The A part is stored on one drive and the B part is stored on a second drive.
When the file is read, its stripes are combined back into a single file.
The advantage here is speed. In theory, the file writes to and reads from the array in half the time it would normally take since both halves can be transferred concurrently.
The disadvantage is the absence of fault tolerance. If one drive fails, then all of the data is lost.
This involves using more than one hard drive controller card so if one controller fails, the other remains operational. Hard drive controllers tend not to fail as often as mechanical drives, so the main advantage of disk duplexing is speed.
Two hard drive controllers provide two channels through which data is transferred instead of only one. This practically doubles the available throughput (within the system’s limitations).
RAID01 (Mirror of Stripes)
RAID 01, or RAID 0+1, is called a “mirror of stripes” because it places two RAID0 arrays inside a single RAID 1 array. Think of it as two RAID 0 arrays being duplicated.
RAID10 (Stripe of Mirrors)
RAID 10, or RAID 1+0, is just the opposite of RAID01. Called a “stripe of mirrors,” RAID10 places two RAID1 (mirror) arrays inside a single RAID0 (stripe) array.
Which is Better? RAID01 or RAID10?
When all drives are functioning properly, both are good. Which array is “better” is determined by what happens when a single drive fails.
RAID 01 Failure
When one drive fails in a RAID01 array, performance degrades because only one array contains both the A and B parts needed to recover a file. This means all data transfers pass through a single disk controller, and the advantages of disk duplexing are lost.
True, the specific RAID controller logic might compensate for this to a point, but the RAID 10 array handles this problem better.
RAID 10 Failure
With a RAID10 array, both disk controllers remain operational and offer the same performance even if one hard drive fails. This is because both RAID1 arrays contain duplicate stripes–only one half of a file. If one drive fails and loses the B part, for example, that array still contains a copy of the B part, and both disk controllers remain operational.
Probably the most confusing aspect is the naming. Is RAID10 a stripe of mirrors or a mirror of stripes? If you recall that the 1 in RAID10 means “RAID1 (a mirror)” and the 0 in RAID10 means “RAID0 (a stripe),” then it becomes easier to remember. Read RAID10 from right to left as, “RAID10 is a stripe (0) of mirrors (1).” The same is true for RAID01 when reading the numbers from right to left: “RAID01 is a mirror (1) of stripes (0).”