One of the main reasons for going for the BBS was that it provides the ability to have lots of drives and RAID them up. RAID comes in several flavours, and can be implemented in either hardware or software. Hardware RAID is a lot faster, but the cards are more expensive. While the BBS comes with a RAID controller (SiliconImage SiI3124) this is actually implementing RAID in software. Given this I decided to use the linux RAID functionality instead – if it’s going to be in software it may as well be as portable as possible.
RAID also comes in several levels- the main ones of interest are:
- RAID 0 – this essentially mashes all your disks into 1. so if you have 4 1Tb drives in RAID 0 you have 4Tb of space. But if one of them goes wrong you are stuffed.
- RAID 1 – this duplicates all your data on 2 drives. If you have 4 1Tb drives you have 2Tb of space, but it is on two drives, so you have data protection
- RAID 5 – This uses parity data to protect your data – if you have 4 1Tb drives you’ll have one parity drive and 3 data drives – so 3 Tb of space. If one drive fails you can recover the data from the parity bits, but this will take a while (~24 hours on the BBS). In exchange for the data protection you lose a bit of speed – on a drive write you have to write both the data and the parity bit.
For my build I will be using RAID 5.
Two other things to note that are of some importance:
- RAID is NOT A DATA BACKUP SOLUTION. While it protects against drive failure if you are burgled, or your house burns to the ground you still have no data!
- RAID and LVM are not mutually exclusive. If you had 2 drives in RAID 1 then you may want to add two more drives later. Rebuilding the RAID array would take a long time, but you could just create a second array and use LVM to combine the two arrays into one volume group.