RAID 0 is not RAID. The R in RAID means redundant and there is nothing redundant in RAID 0. Never use RAID 0. It is not safe. It is not faster. It limits backup options. It complicates recover from disk failure. It makes recovery slowwwww. Alright, those are the best features of RAID 0, what are the bad things?
Redundant?
The R in RAID means Redundant. The data is spread over multiple disks multiple times or with a CRC, Cyclic Redundancy Check, on an extra disk. RAID 1 and variations of RAID 1 store multiple copies of data with each copy on a separate disk. If one disk breaks, you can replace the disk without losing anything. RAID 5 uses CRCs to recover data when one disk fails. RAID 6 is RAID 5 with two spare disks. RAID 0 is of zero use because it does not have multiple copies of the data and does not use a CRC. You cannot recover from a RAID 0 failure.
Using left over disks
There are also lots of different ways to implement RAID 0. No matter which one you use, one break on one disk breaks the whole lot. Everything is lost.
The simplest RAID 0 connects a whole lot of disks or disk partitions as if they are one big disk. You can use it to make a large disk out of a lot of left over small disks. The performance is equal to the speed of the disk you are accessing and will be effectively random if you use a mixture of different disks. The whole array will fail when the oldest weakest disk fails and you will lose everything.
As an example, person X grabbed a bunch of old disks off a shelf to create a RAID 0 array in a new server. After 12 hours work creating the server, an old disk failed and he had to start again. Another 12 hours work and the server ran for a few days, long enough for a whole team of people to transfer all their work to the server, then another disk failed. X was about to start the first complete backup of the whole system when the disk failed.
To stripe or not to stripe?
A RAID 0 hardware box will usually mix the data across the different drives using stripes. Striping was optional in early RAID 0 and now appears to be the standard more most RAID 0 products. Striping is controlled by options with weird names in some software. Striping works best for large linear files, including video, and is a disaster for database updates.
Striping does nothing for most average disk activity. In a mixed disk array, striping will make the performance average more than the speed of the slowest disk but never as fast as the fastest disk. Disk reads will be faster for large linear files and will be average for other files. Writes and updates will be average for linear files and slow for any write that is less than the stripe size because the system has to first read the stripe, then change part of the stripe, then write the whole stripe back.
Stripe size
You usually get the option to select the stripe size. 4 KiloBytes is usually the smallest and works for databases that write 4 KB blocks if the blocks end up aligned to the stripes. Reading one block produces one stripe read. Writing one block produces one stripe write. If the blocks are not aligned to the stripes, every block read will produce two stripe reads and every block write will produce two stripe reads followed by two stripe writes.
8 KB is the block allocation size for the Ext4 file system used in Linux. If you can select the 4 KB stripe size and align blocks to stripes, an 8 KB ext4 block read will be two stripe reads with the reads spread over two disks for a minuscule speed improvement.
Step up to video files. Your video editor might read and write data in 64 KB chunks. If those chunks are aligned to the file system blocks and to the RAID 0 stripe, a 64 KB chunk read could be two stripe reads of 32 KB spread over two disks for a medium speed improvement. If you can tell your video editor to read and write 128 KB chunks and align them to two 64 KB stripes, you get a bigger speed increase.
Every change you make to improve the speed of one thing ends up making everything else slower. To make maximum use of large stripe sizes, you have to create an array dedicated to large linear files and large stripes. You keep your databases on a separate array with a small stripe size to match the database page size.
Cost
The cost of a big fast reliable new disk in Sydney, Australia, is about equal to the cost of 6 hours work. The failure of a RAID 0 array can waste a whole day of your time and many hours of your customer's time. A repeat of the first failure will destroy your customer's confidence in your work. There are no circumstances where RAID 0 is justified based on cost.
Alternatives
If you are recycling a bunch of disks and there are two big ones in the mix, use the two big ones in RAID 1 and throw the rest away. If you have two big ones and two small ones, you could use the two small ones in a RAID 1 array for your system files and the two big ones in a RAID 1 array for your data files. Three or more similar sized disks can be used in a RAID 5 array.
Conclusion
RAID 0 is not RAID because it is not redundant. There is no safe use for RAID 0. Disks are too cheap to waste your time on RAID 0. Use RAID 1 or 5.









- Facebook Like
- Google Plus One
- Log in or register to post comments