RAID-Guide

Posted: December 22, 2010 in Uncategorized

A term coined decades ago, RAID is essentially, disks arranged in a manner to protect the information they contain – simply by adding redundancy. While there are multiple expansions for RAID – Redundant Array of Inexpensive Disks, which has now transformed to Redundant Array of Independent Disks, the aim is essentially to protect the data and RAID achieves this, by not putting all the data into a single disk.

Performance of storage media, gains a lot of importance in cases where data in the media is to be constantly read from, or written to. Many a time, the bottleneck in a computing environment is related to this input/output performance. Most RAID configurations provide performance enhancement that make it a popular option of SME’s and web-hosts.

 

Before we go any further, getting familiarized with a few key terms is essential.

Striping

It is the process of dividing data into small blocks and spreading these data blocks across several physical disks. Striping is the means by which RAID increases input/output performance, by allowing multiple data reads and writes to work on a single data set at a given point in time.

Mirroring

It is the process of copying data blocks from one disk to one or more additional disks, to make data available from more than one place. In effect it takes snapshot of one disk on to the disk added for redundancy. Mirroring is what makes RAID array fault tolerant.

Parity

The concept of parity in computing refers to a technique of checking if data has been lost or written over, when it’s moved from one place in storage to another(or from one computer to another, in case of data transmission).

In the context or RAID, it can be explained with an example. Suppose there are “n” blocks of data, and from these “n” blocks, we compute an extra block of data called the “parity block” and store it separately. The parity block is computed such that even if you lose any of the blocks among the “n” blocks, you could still recreate the missing block from the remaining blocks and the parity block.

The technology of RAID is used in different scenarios, for different end results. The various configurations or implementations are categorized into levels, and are referred to as “Levels of RAID”. More on levels of RAID, their performance, comparison of hardware and software RAID to come.

Adopting a specific RAID technology, involves finding the right implementation that meets all your requirements. It is more or less, striking a balance between cost of devices, performance, and fault tolerance.

Apart from the big decision of selecting either hardware of software RAID, which I will cover in my next blog, selecting RAID levels is the first step.

 

RAID 0

RAID 0 implements a striped disk array, wherein data is broken down into blocks and each block is written to a separate physical disk drive. There is actually no redundancy involved, and hence does not actually fit in with the acronym RAID.

RAID 1

This RAID level provides redundancy by writing all data blocks to two or more drives.The performance of a level 1 array is faster on reads and slower on writes, when compared to a single drive, but if either drive fails,no data is lost(in case of an array of two drives).

RAID 5

Imparts redundancy by writing data blocks and parity blocks across three or more drives, thus increasing performance. The RAID Level 5 is arguably the most popular RAID technology.

RAID 10

This level can be referred to as nested RAID. Here data is simultaneously mirrored and striped, and hence imparts redundancy along with high performance. The model finds its application where both high read/write performance and greater fault tolerance is needed.

I’m winding up this part with a table on comparisons of various RAID levels. More to come. Do visit Bobcares blog!


The ability to make choices based on facts and analysis, has always been a challenge for a person managing IT infrastructure. Much of this hardship can be attributed to the day to day advances in technology, and stiff markets.

Out here, we help to make one such choice – that of choosing Hardware or Software RAID. Earlier we ventured into basic concepts of RAID and comparison of various RAID levels. Here we describe and compare hardware and software RAID solutions.

 

Definition of Software and Hardware RAID

To put it simple, a RAID solution that uses the Host’s CPU resource, and is implemented as a software that runs within the host’s O/S is termed as Software RAID. While, a setup wherein dedicated hardware in the form of “RAID controller” is used to control the RAID array, is referred to as Hardware RAID.

Advantages of Software RAID

  • Software RAID solutions can distribute data across various drive technologies such as IDE, ATA, SCSI, iSCSI, or any other network/block device. This is obtained by the high level of abstraction prevailing in software RAID implementations.
  • Being hardware controller less, disks can be easily moved between arrays/controllers, unlike a hardware controller driven state, where such movements would be restricted.
  • These days with multi core environments, CPU cycles are no more a big concern. If you have free resources, you could use it, rather than relying on a less powerful dedicated processor that accompanies the hardware RAID.
  • The solution is feature rich, and newer features usually comes in along with the O/S package updates. Unlike hardware RAID, you do not have to worry about the varying complexity of the management interfaces, outdated firmware and cease of support for a given RAID card.

Advantages of Hardware RAID

  • The ability to manage disk drives across multiple O/S and file-systems. Independent of the host O/S’s integrity. And the array can house the boot partition of OS unlike software RAID solutions that typically cannot boot off a software RAID array.
  • Advanced RAID features like disk hot plug, easy array migration and online expansion etc.
  • In built caching to reduce access times, and ability to use write-back caching with battery backed memory state protection.
  • Fine tuned software and powerful GUI for maintenance of the RAID array, all without using the host’s resources.

There is probably no solution that suits all your requirements, and hence the adoption of a solution is usually a trade-off between requirements. The in depth know how of the requirement and options, is what helps in implementing a solution!

 

Leave a comment