RAID level 0, typically shortened to RAID0 and often referred to as disk striping, is a method by which two or more physical disks masquerade as one single larger disk.
It must be stressed that RAID0/JBOD SHOULD NOT BE USED IN PRODUCTION ENVIRONMENTS where data integrity and reliability must be assured! This RAID level should only be used where non-essential data needs reading and writing to disk quickly. Before implementing RAID0, you should first strongly consider using one of the fault tolerant RAID levels such as RAID1, RAID3, or RAID5.
Speed is often a factor in choosing this RAID level due to the performance of data reads and writes, as in the following example:
Four disks are used to create a single RAID0 disk using a software based RAID driver. A user application saves a 1MiB file to this disk. The RAID0 driver splits the file into four equal-sized chunks (in this case 256KiB each). The driver then writes the first chunk to the first disk, the second chuck to the second disk, and so on until all the chunks are written to its respective disk.
When reading data the opposite takes place where each of the four chunks are read from their respective drives and re-assembled into one original file and passed onto the requesting program.
Theoretically the system can write files (in this example) four times faster using this method then it could to a single disk.
Note: RAID level 0 is not restricted to four disks as in the above example, any number from two to the maximum the system will handle can produce a single RAID0 disk.
Space is another advantage since all disks in the RAID can be utilized to store data. For example three 500GiB drives in a RAID0 set will provide 1.5TB of storage. This differs from other RAID levels that consume one disk for parity in order to provide fault tolerance.
The implementation of this RAID level can be achieved in software thereby reducing the need to purchase dedicated hardware RAID controllers.
The main disadvantage of this RAID level is the lack of fault tolerance. Since data is split up and written across all the disks within the RAID0 set a failure of one disk will cause the total loss of all data.
There are a number of variations that can be applied to this RAID level. The two common ones are:
JBOD, which is simply "Just a Bunch Of Disks" is another method of mounting multiple physical drives as a single logical volume. Unlike RAID0, it does not have the requirement of the disks having the same capacity, hence the name. Also unlike RAID0, JBOD does not "stripe" each file across all of the disks in the volume, so it does not provide any speed advantage for accessing any given file. Since there is no performance advantage, and any single disk can be mounted anywhere on the filesystem anyway (ie /usr/home can be a directory on a drive, or it can be an entire separate drive), there is no good reason to use disk concatenation on a unixlike operating system.
RAID10, sometimes referred to as RAID level 01, level 0+1, level 1+0, mirrored striping, gives the advantages of RAID0 but with the redundancy and data safe-guarding of RAID1 thereby limited the disadvantages of RAID0.
This RAID level achieves this by creating two identical RAID0 disks and applying RAID1, or mirroring, over the top of them. This means that if one of the underlying disks in one of the RAID0 sets fails the other RAID0 will retain system and data reliability. However if one disk from both RAID0 sets fails all data will be lost.
Typical usage for this RAID level is in the field of audio and/or video editing or indeed anything that requires rapid data reading and writing without the need to safeguard data loss.
FreeBSD supports software based RAID0 through the GEOM disk management subsystem. Hardware based RAID0 is also available through various supported hardware controllers.
The FreeBSD Handbook has details covering the GEOM RAID0 / Striping subsystem.
There is a working example of implementing RAID0 on FreeBSD documented in the article RAID0 (Setup).