Intro & Raid Explained
A few weeks ago Promise
sent us their newest S-ATA RAID controllers, the FastTrack S150 SX4 and TX4. After taking both cards out of their boxes, my first thought was "Ow yeah!", my second was "Let's test these babies". And that's what I did...
The SX4 can group your drive in RAID0/0+1/1 and RAID5 configuration, the TX4 is its smaller brother without RAID5 support
Before continuing this review, I'll first explain how the RAID5 works, more info about RAID0 and RAID1 can be found here
RAID5 works by gathering up three or more physical disk drives (usually from 3 to 32 - our Promise SX5 controller can handle 4) and combining them into a single logical entity.
RAID5 uses "distributed parity." This means as parity information is generated for each write command to the logical disk combined into a RAID5 set; the parity data is "striped" across all the disks in the set.
Parity for a RAID5 set is generated, usually in hardware by the RAID controller, by a process known as: "Read, modify, write." On a RAID5 set, a write operation is not complete until the following process occurs:
1. Read old data from the disks
2. Read the old parity from the disks and calculate the difference between the old data and the new data to be written, using an XOR operation
3. Write the new data to disks
4. Write the new parity to disksThis means that for every write operation, 4 operations actually happen
. This is known as the "RAID5 write penalty." RAID5 is a tradeoff between speed, reliability and disk space. RAID5 has an advantage of using less disk space for parity data than RAID1 mirror sets but there is a performance hit due to the overhead.
The actual mathematical calculation of the parity data is done as follows:
The parity is generated by grouping together the bits (0 an 1s) to be written, then flipping the bits for the parity data by making the 1 bits 0s and the 0 bits 1s. (This is an XOR operation.) A bit (0 or 1) is then added to each group of data bits so that it will have either an odd or even number of 1s. When reading back the parity, if the parity that was generated was odd, then any group of bits that arrives with an even number of 1s for that data must be in error. The data can then be regenerated using the parity information from the other disks.
Knowing this, let's us continue ->