Last time on TNCT 301 we discussed approaches to constructing computers for different roles. One of the buzzwords that appeared while explaining a server setup was RAID. Originally called Redundant Arrays of Inexpensive Disks, RAID arrays have become a necessity in every storage-intensive field, in order to both speed access up, as well as provide additional protection for stored data.
RAID – “Independent” vs. “Inexpensive”
The term “RAID” predates personal computers by more than half a decade. Patented back in 1978 by the IBM laboratories, RAIDs had one objective in mind: provide mainframes with storage systems that would be protected from single-disk failures, so a single drive unit wouldn’t pull years of research and work with it. The original specifications called for certain RAID levels, different implementations and disk combinations, each with specific advantages and disadvantages. Modern-day RAID levels 1 through 5 were defined nearly a decade later in 1987. Although actual RAID levels and implementations differ from their original 1978 (and even 1987) definitions, the numbering system remains in use because of its simplicity in explaining both standalone RAID arrays and their nested variants, which will be explained later. All RAID arrays require at least two drives, with some implementations requiring four, eight or even more – all but a very specialized case.
There’s been a certain amount of discord among computer and information technology theorists and practical users about both the “redundant” and “inexpensive or independent” parts of the acronym. For instance, while RAID 0 (by far the most well-known RAID level) does have an assigned number, it’s outside the standard RAID definition both by numbering (it’s outside the 1-5 range) and it doesn’t implement redundancy – that is, it doesn’t provide a fail-safe mechanism for stored data. On the other hand, independent disks can’t be called an array until they’re linked into one, and in order to get linked they have to share certain parameters with other parts of the same array. At the same time, an array of inexpensive disks is also a very lightly used term, as disk prices were astronomically high when the original concept was proposed. However, none of this should affect the RAID’s actual usage – all differing modes have their uses, as explained below.
Stripes and spans
The “nullth” RAID level is by far the most common level of them all, common enough that most of today’s motherboards natively support creating a RAID 0 array without the need for a specialized controller. Also known as a striped volume, it works by splitting data into logical chunks (usually the size of a disk sector, 512 bytes), and writing to all the drives joined in the array in a round-robin fashion. In a three-disk RAID 0 array, for instance, the first block gets written to the first drive, the second to the second drive, the third to the third drive, the fourth to the first drive and so in circles. By forming a RAID 0 array you get a volume that might have somewhat decreased capacity – you take the capacity of the smallest drive in the array and multiply it by the number of disks, as any area outside that cannot be used to form a stripe. The upside is that since sequential data (that hopefully belongs to the same file) is stored simultaneously on all drives, it’s also read simultaneously. This may not hold true for home users who don’t rely on rapid data access, but can come in useful in server or workstation applications that rely on data swapping a lot. Note that a level zero isn’t a true RAID level, as it doesn’t provide any sort of backup or redundancy – it merely joins all disks together. Since the whole array would literally fall apart if one of the disks were to fail, the mean time between disk failure is actually decreased, since one erroneous disk causes the whole array to stop functioning properly.
Along with RAID 0, another relative of the striping family is the JBOD – commonly known as Just a Bunch Of Disks. As its name says, it joins a group of disks of any kind into a long stripe with a common filesystem. The process is the exact opposite of partitioning – it joins different drives into a single volume. Compared to RAID 0, there are two distinct advantages – one is that you can use wildly different capacities and join them in a stripe without losing any storage space, and the other is that a single drive crash doesn’t affect any unstriped data – a file stored on the third drive won’t be damaged if a portion of it wasn’t saved on the failing second drive, as an example. Like RAID 0, however, it doesn’t provide redundancy. Windows systems can be considered to support JBOD in their own way, as they can natively take several drives and join them in a so-called dynamic volume – however, this is not the same as a controller-based JBOD.
Pages: 1 2