RAID (Redundant Array of Independent Disks) basically turns two or more hard drives into one drive array (viewed as one large hard drive). There are several ways of achieving this:
RAID 0: Striping
Data is striped across both disks. For example, if you were using a 1-bit stripe across two disks (not that you ever would, but just for illustration), writing the byte: 10011011 would result in:
Disk 1: 1
Disk 2: 0
Disk 1: 0
Disk 2: 1
Disk 1: 1
Disk 2: 0
Disk 1: 1
Disk 2: 1
The advantage of this is that you've effectively doubled your sequential read/write speeds, since you have two disks operating in unison. The disadvantage is that if you lose one disk, your whole array is toast. And having two drives doubles your chances of losing one drive. RAID 0 is fast, but dangerous.
RAID 1: Mirroring
Data is mirrored to two disks. Both disks receive exactly the same data. Writing our same 10011011 would result in:
Disk 1: 1
Disk 2: 1
Disk 1: 0
Disk 2: 0
Disk 1: 0
Disk 2: 0
Disk 1: 1
Disk 2: 1
Disk 1: 1
Disk 2: 1
Disk 1: 0
Disk 2: 0
Disk 1: 1
Disk 2: 1
Disk 1: 1
Disk 2: 1
The advantage of RAID 1 is that you've just exponentially decreased your odds of losing your data. If you lose one drive, you have another that's identical. The chances of losing both drives at once are astronomically high, so reliability is the stronpoint of RAID 1.
RAID 0+1: Striping + Mirroring
Raid O+1 requires four disks, & combines the strongpoints of RAID 0 & 1. Writing 10011011 again would result in:
Disk 1/3: 1
Disk 2/4: 1
Disk 1/3: 0
Disk 2/4: 0
Disk 1/3: 0
Disk 2/4: 0
Disk 1/3: 1
Disk 2/4: 1
Disk 1/3: 1
Disk 2/4: 1
Disk 1/3: 0
Disk 2/4: 0
Disk 1/3: 1
Disk 2/4: 1
Disk 1/3: 1
Disk 2/4: 1
You have the same data striped across two pairs of mirrored drives. You get the speed of RAID 0, since you're striping across more than one drive, & you also get the reliability of RAID 1, since you're mirroring each drive as you go.
Spanning
Spanning is another form of RAID that's less commonly used, because it's only real advantage is converting smaller volumes into one larger volume. Let's say you have three hard drives: a 10 gig, a 20 gig, & a 40 gig. You start with the 40, & when you fill it completely your data automatically flows to the 20, & to the 10 when that becomes full. With large hard drives becoming commonplace, spanning is pointless, but still an option.
So what does a RAID controller do?
A RAID controller makes all these operations invisible to the operating system. The OS doesn't need to know that it's data is being written twice, four times, or even across multiple disks. The OS only sees one drive, & a controller.
[EDIT]Damn, I knew I shouldn't have wasted my time. Even on a Sunday morning you guys are still too fast for me. :|[/EDIT]
Viper GTS