R/E/P Community

Please login or register.

Login with username, password and session length
Advanced search  

Pages: [1]   Go Down

Author Topic: RAID type definitions....  (Read 1643 times)

Thomas Lester

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 677
RAID type definitions....
« on: July 20, 2004, 10:19:31 am »

Hi all -

I posted this as a response to another post, but I see the topic come up a lot, so I thought I'd post it as it's own topic.  Here goes:

OK...  Here's the break down of RAID techniques:

RAID 0:  Mulitple disks (2+) with data striped across them.  No redundency.  If you lose one disk in the array, then you've lost everything.  This provides the highest WRITE performance and depending on your read characteristics, can provide the greatest READ performance.  

RAID 1:  Simple mirror.  Two disks, the same information is written to both disks before the write is confirmed.  Reads can read from other side.  The WRITE performance is not so good, but the READ performance comparable to RAID 0.  Depending on read characteristics, this can be the best READ performance.  RAID 1 provides the greatest level of redundency.  If you lose one disk, you still have the other.  You replace it and "re-silver" the mirror.  Mirrors CAN have an even bigger redunency advantage.  For example...  if you have two SCSI drives, two controllers, and two cable paths...   if you mirrored across those completely independent paths, you could then lose your disk, or your controller, or your cable and still not lose your session.

RAID 5:  Like RAID 0, but with a parity stripe.  The parity stripe provides redundecy.  This stripe takes about 20-25% of your disk for over head.  With each write, the data stripe is written, and parity information about the data is written.  With this parity information, if any ONE disk is lost in the array, a new disk can be created from the parity information once the bad disk is replaced.  For cost effectiveness its best to have 4 or more disks for this type of array.

Hybrid arrays

RAID 0+1:  This is a combination of 0 and 1.  In this array, you essentially create two RAID 0 arrays.  Then, you mirror the two together.  This is very common when you have two hardware arrays that have single controllers.  You want the performance of the RAID0 within the box, but you need to mirror the two boxes so you have redundant controllers.  This is also the ULTIMATE READ performance.  While you are still making two writes for every commit, it's pretty fast WRITE performance as well.

RAID 1+0:  Same as above, but the other way around.  This is where you take like 5 pairs of disks.  Each "pair" of disks is mirrored to each other.  Then you create a stripe across the pairs.  This is not overly common, but I have seen it.

RAID 5+1:  A combination of RAID5 and RAID1.  This is very common in situations where availability is king.  I.e. hospitals, banks, etc.  In this scenario, you could lose several disks and still survive.  This is also usually set up with hot spares that can automatically be pulled into an array to "heal" its self if a disk fails.  So....  RAID 5 arrays are created, then mirrored together.

RAID 1+5:  Not very common.  Just like 1+0.  Mirrored pairs, then a raid 5 and parity stripe across those.

Hardware vs. Software Array

You can build arrays two different ways...  from hardware or from software.  Most common amoung the PC/Mac world is software.  This is where you take disks in your host or in a tray (like a Glyph rack) and use a piece of software to create a RAID array.  

Hardware is where the rack of disks has a hardware controller included that configures and controlls the disks behaviour.  With hardware arrays, the array is usually presented to the OS as a single disk and not all the individual disks because the hardware controller has already put them together as one big disk.  Hardware controllers have great advantages over software.

 1.  With the hardware doing the work, there is no overhead on your CPU(s)
 2.  Most H/W arrays have cache built in.  Cache buffers the read and write so that the effect or over head of the RAID it's self is minimized.  It's essentially RAM that sits up front.  So, it's like writing to RAM for as big of cache as you have.  Most of my arrays have 2GB or more of Cache per controller and I have have 2 contollers per array.  So...  in this situation, unless I have a single write that is over 2GB in size, I'm never writing dirrectly to the disk.  Instead, I'm writing to memory.  VERY high performance.

There are a few more versions of RAID (3,4) that are not very common and a few other variations.  If you guys have any questions, please let me know...  

-Tom

PS...  I'll be spending all next week learning how to architect and deploy SAN's.   So if anyone wants a SAN in your studio, let me know  Very Happy
Pages: [1]   Go Up