In the computing world
RAID stands for Redundant Array of Independent Disks!
No, and it isn't a bug spray either.
Whew, thought I was in trouble there for a minute...
So what is a Redundant Array of Independent Disks and how does it work?
There are three key types of Redundant Array of Independent Disks configurations: 0, 1, and 5. We will not take into account the other types in between. (This applies to the both
SATA and IDE controllers that are add on cards or embedded in to the motherboard, and
SCSI add on controllers - used mainly in servers).
RAID 0 is when you have a
Redundant Array of Independent Disks controller in a system but don't use the RAID facility of the controller.
RAID 1 is one of the most often used to backup (mirror) the Operating System drive.
RAID 5 is the other most often used configuration with servers for enlarging and making a redundant partition or partitions.
A hard drive interface is just that, an interface between the hard drive and the motherboard. The only function of the interface is to connect the hard drive to the motherboard to facilitate the transfer of data back and forth from the drive to the motherboard and from the motherboard to the drive.
A hard drive controller on the other hand controls the function and transfer of the data back and forth. Some controllers have a built in backup system called a cache (to speed up the transfer of data), it may also have a battery backup to keep the cache powered up in case of a power failure or an when the computer restarts unexpectedly, such as in a inadvertent restart by software failure or human intervention.
When a hard drive controller has the ability to add the raw space of one
drive to another drive this is called an array.
If you have say four different capacity drives for example:
- 100 GB
- 200 GB
- 250 GB
- 300 GB
You could combine them all in to one large partition, this is called an array the total size of the partition would be 850 GB before formatting.
Now if you wanted to have redundancy for your array you have to use a controller that has the ability to take part of that partition and use it for storage of a special type of file. This is called a
Redundant Array of Independent Disks controller.
What the engineers have came up with is a way to take a certain length of data and create a code that tells the controller what is in the that data. This is called parity or CRC (Checksum Redundant Code). What the controller does is takes the data in bytes and adds it up to come to the CRC, if one or more bytes change from when the code was calculated the controller can replace the changed bytes back to the original data.
When the array is created the person (usually a Systems Admin) will select the type of array that will make the redundancy. The most common types stripe and mirror.
RAID 1 is a mirror of two drives (they should be the same size, but the mirror drive can be bigger if that is all you have) one will be the original drive and the second will be the mirror drive. The mirror drive is an exact copy of the original drive. What ever changes on the original drive is changed on the mirror drive. If one drive fails your backup is the other drive either the original or the mirror. When there is a mirror drive array and one drive fails to get the computer operational again the Systems Admin has to
'Break the mirror' that is remove the bad drive from the array. This procedure would be done from the Array interface or software provided by the array controller manufacture.
RAID 5 is three or more drives made to look like one partition (this
is not the same as a Windows OS 'volume'!). The controller adds all the raw space in to one large drive. The difference is that it then takes size of one drive and makes that space the parity space. By using the stripped type of CRC or parity the redundancy is spread across all the drives. This allows for the controller to rebuild the data if one drive fails. The draw back of this type of array is that if one drive fails it can recover the data but
if two or more drives fail there is no way to recover the data. Backup of important data is a must!
When you make the Redundant Array of Independent Disks 5 partition you will select the size of the parity in bits, common sizes are 32 bit, 64 bit, 128 bit, and newer controllers have 256 bits.
Now the bad news: RAID 5 will use the smallest capacity drive to create the array. That is if you have four dissimilar sized drives such as the example above the controller will take the 100 GB drive as the base size of all the drives then create the
Redundant Array of Independent Disks partition. With out
Redundant Array of Independent Disks
you would have a 850 GB partition, with
Redundant Array of Independent Disks 5 you would only have a 300 GB partition! Whoa, you lost 550 GB by using RAID! No
you lost 450 GB because 100 GB would be the parity of the other 300 GB.
For this reason it is important that all drives must be the same size and then add one more drive to supply the parity for the
Redundant Array of Independent Disks.
Lets say you want to have a 1 TB RAID 5 array, how would you order the drives?
You could use either 5ea 250 GB drives or 6ea 200 GB drives. Do you see how I figured that out?
4ea 250 GB drives for data, 1ea 250 GB drive for parity or 5ea 200 GB drives for data, 1ea 200 GB drive for parity.
Last thing to remember about using Redundant Array of Independent Disks to protect your data: BACK IT UP! and if a drive fails REPLACE IT IMMEDIATELY!
Note: This is a hardware solution not software such as the array you can create with say Windows Drive Manager (using the drive manager
does not have redundancy!)
If you have a server or would like to learn more about building your own server this is an excellent starting point -
Build a Server Guide
Now where is that bug spray??...