2008/02/11

Raid and Raid, what is Raid

For those that got the joke, congrats. For the rest click here ..

OK, while most people think of RAID as just for disks its really mean to describe anything. But lets talk about disks for a minute.

Different RAID levels refer to different styles of building an array. The numbers kind of imply one building on another (i.e. Raid 5 is better than Raid 4), but don't think of them as perfectly building on another.

Raid 0
Striping
This mearly means taking two or more drives and combining them into one larger drive. There are two reasons for this, one being lazyness and one being performance.

When I say lazyness I mean unless you had a single file larger than one drive the only reason for combining two drives into a single drive is so that you dont need to remember which drive your files are on.

Striping can improve Performance because it doesn't just add the new disk to the end of the old disk. Every other block is written to the other device so when you are reading a file 50% of the file comes from drive 1 and 50% of the file comes from drive 2. Since drives are fairly slow devices this has a very positive impact

Raid 1
Mirroring

This refers to using two drives to store the same data. The purpose of this is to protect the data rather than improve performance.

If one of the drives in a Mirror stops functioning then the data is still availible because the other member of the mirror is still availible. The disadvantage to this configuration is that you need 2x storage to save files. i.e. you want 500gb you need to supply 1tb of storage (as two seperate 500gb drives)

Performance is a mixed bag. Every time you write, the machine needs to write the data twice. Every time you do a read, the machine can read 50% of the data from drive 1 and 50% of the data from drive 2. Sometimes Raid 1 is configured to do a read/verify meaning read the same sector from both drives and verify the mirror is valid.

Raid 2Cannot find anything
Raid 3/4
Striped with Parity

I have
found
different explanations
for 3 vs 4
for this i'm
not going to
discuss the
differences

Simlar to a Raid 0 stripe except there is 1 extra drive that is providing a level of protection. Parity is a error correction method that works as follows

0 + 0 = 0 Lets call this Odd Parity. If we have an odd number of 1's then
0 + 1 = 1 Parity will be true, if we have an even number of 1's then
1 + 0 = 1 Parity would be false
1 + 1 = 0

if one of the drives failed solve the following:



X + 1 = 0, so what is the value of X

Since we can read drive 2 and the parity drive I can re-construct what was on drive 1 by reading the other values and determine this via math

Since the parity drive needs to be written to every time any of the other drives change it gets accessed far more often than the others. There is a danger that the parity drive will fail long before any of the members fail.

Raid 5
Parity with Striping

Raid 5 is the same idea as Raid 3/4 with the creation of parity, but the parity data is striped accross the disks as well. In this way one drive is not dedicated to the parity, and the load is shared accross all drives.

Raid 5 does not mean that 5 drives must be used. Raid 5 can be done with three or more drives. People typically don't do very large (# of disk's) because of the danger of 2 drive loss

Raid 6 Parity with Dual Striping

Raid 5 suffers from a danger that when a drive fails, until its replaced and rebuild the array is in danger. If a second drive were to fail all of the data would be corrupt

Raid 6 addresses this by having 2 parity areas accross the array, which mean you need a minimum of 4 drives per array, but the practical minimum is 6 otherwise mirroring makes more sense. Two drives could fail without loss of data.

Raid 0 + 1
Mirrored Stripes

This is a combination of Striping and Mirroring (done the wrong way). Create 2 stripe sets, then mirror them.

The problem is as follows:
Stripe 1 - Disks A and B
Stripe 2 - Disks C and D
Array - Mirror of Stripe 1 and Stripe 2

If A and D or B and C fail, the entire array is dead

Raid 1 + 0 (10)
Striped Mirrors

More stable configuration, Create mirrored pairs, then stripe them

Mirror 1 - Disks A and B
Mirror 2 - Disks C and D
Array - Stripe of Mirror 1 and Mirror 2

Raid 5 + 0 (50)
Striped Parity

Takes two Raid 5 arrays and creates a single larger drive. Raid 6 can provide same results with better protection

Array 1 - Raid 5 of Disks A, B, C, D and E
Array 2 - Raid 5 of Disks F, G, H, I and J
Array 3 - Stripe of Array 1 and Array 2

Raid 5 + 1 (51)
Mirrored Parity

Can you say paranoid ?

Good for clustered drive configs, expecially accross different disk channels

Array 1 - Raid 5 of Disks A, B, C, D and E
Array 2 - Raid 5 of Disks F, G, H, I and J
Array 3 - Mirror of Array 1 and Array 2



http://en.wikipedia.org/wiki/RAID

No comments: