RAID Storage Explained

3
Version 1.0 June 18, 2007  RAID storage explained By George Ou Since I've been doing a lot of coverage of storage technology, both for the enterprise and for the home lately, I thought I should give an explanation of what RAID storage is. I won't go in to every RAID type under the sun; I just want to cover the basic types of RAID and explain the benefits and tradeoffs. RAID was originally defined as Redundant Array of Inexpensive Drives. But RAID setups were traditionally very expensive, so the definition of "I" became Independent. The costs have recently come dow n significantly because of commoditization, and RAID features are now embedded in most higher-end motherboards. Storage RAIDs were primarily designed to improve fault tolerance, offer better performance, and allow easier storage management. It presents multiple hard drives as a single storage volume, which simplifies storage management. Before we start talking about the di fferent RAID types, I'm going to define some basic concepts. Fault tolerance defined Basic fault tolerance in the world of storage means your data is intact even if one or more hard drives fails. Some of the more expensive RAID types permit multiple hard drive failures without loss of data. There are also more advanced forms of fault tolerance in the enterprise storage world called path redundancy (AKA, multi-path), which allow different storage controllers and the connectors that connect hard drives to fail wi thout loss in service. Path redundancy isn't considered a RAID technology but it is a form of storage fault tolerance. Storage performance defined There are two basic metrics of performance in the world of storage: I/O performance and throughput. In general, read performance is more valued than write performance because storage devices spend the majority of their time reading data. I/O (input/output) performance is the measure of how many small random read/write requests can be processed in a single second, and it is very important in the server world, especially database type applications. IOPS (I/O per second) is the common unit of measurement for I/O performance. Throughput is the measurement of how much data can be read or written in a single second, and it is important in certain server applications and very desirable for home use. Throughput is typically measured in MB/sec (megabytes transferred per second), though mbps (megabits per second) is sometimes also used to describe storage communication speeds. There is sometimes confusion between megabits versus megabytes since they sound alike. For example, 100-megabit FastEthernet might sound faster than a typical hard drive that gets 70 MB/sec, but this would be like thinking that 100 ounces weighs more than 70 pounds. In reality, the hard drive is much faster because 70 MB/sec is equivalent to 560 mbps. RAID techniques defined There are three fundamental RAID techniques, and the various RAID types can use one or more of these techniques: Mirroring Striping Striping with parity Mirroring Data mirroring stores the same data across two hard drives, which provides redundancy and read speed. It's redundant because if a single drive fails, the other drive still has the data. It's great on read I/O performance and read throughput because it can independently process two read requests at the same time. In a well implemented RAID controller that uses mirroring, the read IOPS and read throughput (for two tasks) can be twi ce that of a single drive. Write IOPS and write throughput aren't any faster than a single hard drive because they can't be processed independently, since data must be w ritten to both hard drives at the same time. The downside to mirroring is that your capacity is only half the total capacity of all your hard drives, so it's expensive. Page 1 Copyright ©2007 CNET Networks, Inc. All rights reserved. For more downloads and a free TechRepublic membership, please visit http://techrepublic.com.com/2001-6240-0.html  

Transcript of RAID Storage Explained

Page 1: RAID Storage Explained

8/8/2019 RAID Storage Explained

http://slidepdf.com/reader/full/raid-storage-explained 1/3

Page 2: RAID Storage Explained

8/8/2019 RAID Storage Explained

http://slidepdf.com/reader/full/raid-storage-explained 2/3

RAID storage explained

StripingData striping distributes data across multiple hard drives. Striping scales very well on read and write throughputfor single tasks, but it has less read throughput than data mirroring when processing multiple tasks. A good RAIDcontroller can produce single-task read/write throughput equal to the total throughput of each individual drive.

Striping also produces better read and write IOPS, though it's not as effective on read IOPS as data mirroring.

You also get a large consolidated drive volume equal to the total capacity of all the drives in the RAID array.Striping is rarely used by itself because it provides zero fault tolerance, and a single drive failure causes not onlythe data on that drive to fail, but the entire RAID array. Striping is often used in conjunction with data mirroring orwith parity.

Striping with parityAlthough striping alone is unreliable in terms of fault tolerance, striping with parity solves the reliability problem.But it comes at the expense of some capacity and a big hit on write IOPS and write throughput compared to justdata striping. Data is striped across multiple hard drives just like normal data striping, but a parity is generatedand stored on one or more hard drives. Parity data allows a RAID volume to be reconstructed if one (sometimestwo) hard drives fail within the array.

Generating parity can be done in the RAID controller hardware or done via software (driver level, OS level, oradd-on volume manager) using the general purpose processor. The hardware method of generating parity results

in an expensive RAID controller and/or poor throughput performance. The software method is computationallyexpensive, though that's no longer a problem with fast multicore processors . Despite the performance andcapacity penalty of using parity, parity uses up far less capacity than data mirroring while providing drive faulttolerance, making this a cost-effective form of reliable large-capacity storage.

Basic RAID levels definedThe various RAID types used in the storage world are defined by level numbers. At the basic level, we have RAIDLevel 0 through 6. We also have various composite RAID types that consist of multiple RAID levels. Note thatpeople often drop the word "Level" when referring to RAID types, and this has become an accepted practice. Alsonote that even though same-size hard drives are not technically required, RAID normally uses hard drives ofsimilar size. Any implementation that uses different-size hard drives will result in wasted capacity .

RAID Level 0RAID Level 0 is the cluster-level implementation of data striping, and it is the only RAID type that doesn't careabout fault tolerance. Clusters can vary in size and are user-definable, but they are typically blocks of 64thousand bytes. The clusters are evenly distributed across multiple hard drives. It's used by people who don't careabout data integrity if a single drive fails. This RAID type is sometimes used by video editing professionals whoare using the drive only as a temporary work space. It's also used by some PC enthusiasts who want maximumthroughput and capacity.

RAID Level 1RAID Level 1 is the pure implementation of data mirroring . In a nutshell, RAID Level 1 gives you fault tolerance ,but it cuts your usable capacity in half and offers excellent throughput and I/O performance . This RAID level isoften used in servers for the system partition for enhanced reliability, but PC enthusiasts can also get a niceperformance boost from RAID Level 1. Using multiple independent RAID Level 1 volumes can offer the bestperformance for database storage .

RAID Level 2RAID Level 2 is a bit-level implementation of data striping with parity. The bits are evenly distributed acrossmultiple hard drives, and one of the drives in the RAID is designated to store parity. Out of an array with "N"number of drives, the total capacity is equal to the sum of "N-1" hard drives. For example, an array with six equal-size hard drives will have the combined capacity of five hard drives. It's interesting to note that this RAID level isalmost forgotten and is rarely used.

RAID Level 3RAID Level 3 is a byte-level implementation of data striping with parity. The bytes are evenly distributed acrossmultiple hard drives, and one of the drives in the RAID is designated to store parity. Out of an array with "N"

Page 2

Copyright ©2007 CNET Networks, Inc. All rights reserved.For more downloads and a free TechRepublic membership, please visit http://techrepublic.com.com/2001-6240-0.html

Page 3: RAID Storage Explained

8/8/2019 RAID Storage Explained

http://slidepdf.com/reader/full/raid-storage-explained 3/3

RAID storage explained

number of drives, the total capacity is equal to the sum of "N-1" hard drives. For example, an array with fourequal-size hard drives will have the combined capacity of three hard drives. This RAID level is not commonlyused and is rarely supported.

RAID Level 4RAID Level 4 is a cluster-level implementation of data striping with parity . Clusters can vary in size and are user-

definable, but they are typically blocks of 64 thousand bytes. The clusters are evenly distributed across multiplehard drives, and one of the drives in the RAID is designated to store parity. Out of an array with "N" number ofdrives, the total capacity is equal to the sum of "N-1" hard drives. For example, an array with eight equalsize harddrives will have the combined capacity of seven hard drives. This RAID level is not commonly used and is rarelysupported.

RAID Level 5RAID Level 5 is a cluster-level implementation of data striping with DISTRIBUTED parity for enhancedperformance. Clusters can vary in size and are user-definable, but they are typically blocks of 64 thousand bytes.The clusters and parity are evenly distributed across multiple hard drives, and this provides better performancethan using a single drive for parity. Out of an array with "N" number of drives, the total capacity is equal to thesum of "N-1" hard drives. For example, an array with seven equal-size hard drives will have the combinedcapacity of six hard drives. This is the most common implementation of data striping with parity.

RAID Level 6RAID Level 6 is a cluster-level implementation of data striping with DUAL distributed parity for enhanced faulttolerance. It's similar to RAID Level 5, but it uses the equivalent capacity of two hard drives to store parity. RAIDLevel 6 is used in high-end RAID systems, but it's slowly becoming more common as technology becomes morecommoditized. Dual parity allows any two hard drives in the array to fail without data loss, which is unique in allthe basic RAID types. If a drive fails in a RAID Level 5 array, you'd better hope there is a hot spare that willquickly restore the array to a healthy state in a few hours and that you don't get a second failure during thatrecovery time. RAID Level 6 allows that second drive failure during recovery and is considered the ultimate RAIDlevel for fault tolerance. Out of an array with "N" number of drives, the total capacity is equal to the sum of "N-2"hard drives. For example, an array with eight equal-size hard drives will have the combined capacity of six harddrives.

RAID Level 10 (composite of 1 and 0)RAID Level 10 (sometimes called 1+0) is probably the most common composite RAID type, both in the server andhome/enthusiast market. For example, there are plenty of cheap consumer-grade RAID controllers that mightsupport RAID Level 0, 1, and 10 that don't support Level 5. The most common and recommended implementationof mirroring and striping is that mirroring is done before striping. This provides better fault tolerance because itcan statistically survive more often with multiple drive failures and performance isn't degraded as much when asingle drive has failed in the array. RAID Level 0+1, which does striping before mirroring, is considered an inferiorform of RAID and is not recommended. RAID Level 10 is commonly used in database applications because itprovides good I/O performance when the application can't distribute its own data across multiple storage volumes.But when the application knows how to evenly distribute data across multiple volumes, independent pairs of RAIDLevel 1 provides superior performance .

Page 3

Copyright ©2007 CNET Networks, Inc. All rights reserved.For more downloads and a free TechRepublic membership, please visit http://techrepublic.com.com/2001-6240-0.html