raid technology the one

Upload: ai-zil-zaczs

Post on 10-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 RAID Technology the One

    1/36

    RAID Technology

    Reference and Sources:

    y The most part of text in this guide has been taken from copyrighted document ofAdaptec,Inc. on site (www.adaptec.com)

    y Perceptive Solutions, Inc.RAID stands for Redundant Array of Inexpensive (or sometimes "Independent") Disks.

    RAID is a method of combining several hard disk drives into one logical unit (two or more disksgrouped together to appear as a single device to the host system). RAID technology was developedto address the fault-tolerance and performance limitations of conventional disk storage. It can offerfault tolerance and higher throughput levels than a single hard drive or group of independent hard

    drives. While arrays were once considered complex and relatively specialized storage solutions,today they are easy to use and essential for a broad spectrum of client/server applications.

    Redundant Arrays of Inexpensive Disks (RAID)

    "KILLS - BUGS - DEAD!"-- TV commercial for RAID bug spray

    There are many applications, particularly in a business environment, where there are needsbeyond what can be fulfilled by a single hard disk, regardless of its size, performance or qualitylevel. Many businesses can't afford to have their systems go down for even an hour in the event of a

    disk failure; they need large storage subsystems with capacities in the terabytes; and they want to beable to insulate themselves from hardware failures to any extent possible. Some people working with multimedia files need fast data transfer exceeding what current drives can deliver, withoutspending a fortune on specialty drives. These situations require that the traditional "one hard diskper system" model be set aside and a new system employed. This technique is called RedundantArrays of Inexpensive Disks or RAID. ("Inexpensive" is sometimes replaced with "Independent",but the former term is the one that was used when the term "RAID" was first coined by theresearchers at the University of California at Berkeley, who first investigated the use of multiple-drive arrays in 1987.)

    The fundamental principle behind RAID is the use of multiple hard disk drives in an array that

    behaves in most respects like a single large, fast one. There are a number of ways that this can bedone, depending on the needs of the application, but in every case the use of multiple drives allowsthe resulting storage subsystem to exceed the capacity, data security, and performance of the drivesthat make up the system, to one extent or another. The tradeoffs--remember, there's no free lunch--are usually in cost and complexity.

    Originally, RAID was almost exclusively the province of high-end business applications, due to thehigh cost of the hardware required. This has changed in recent years, and as "power users" of all

  • 8/8/2019 RAID Technology the One

    2/36

    sorts clamor for improved performance and better up-time, RAID is making its way from the"upper echelons" down to the mainstream. The recent proliferation of inexpensive RAIDcontrollers that work with consumer-grade IDE/ATA drives--as opposed to expensive SCSI units--has increased interest in RAID dramatically. This trend will probably continue. I predict that moreand more motherboard manufacturers will begin offering support for the feature on their boards,

    and within a couple of yearsP

    C builders will start to offer systems with inexpensive RAID setupsas standard configurations. This interest, combined with my long-time interest in this technology, isthe reason for my recent expansion of the RAID coverage on this site from one page to 80. :^)

    Unfortunately, RAID in the computer context doesn't really kill bugs dead. It can, if properlyimplemented, "kill down-time dead", which is still pretty good. :^)

    History

    RAID technology was first defined by a group of computer scientists at the University of Californiaat Berkeley in 1987. The scientists studied the possibility of using two or more disks to appear as asingle device to the host system. Although the array's performance was better than that of large, single-disk storage systems,reliability was unacceptably low. To address this, the scientists proposed redundant architectures toprovide ways of achieving storage fault tolerance. In addition to defining RAID levels 1 through 5,the scientists also studied data striping -- a non-redundant array configuration that distributes filesacross multiple disks in an array. Often known as RAID 0, this configuration actually provides nodata protection. However, it does offer maximum throughput for some data-intensive applicationssuch as desktop digital video production.

    The driving factors behind RAID

    A number of factors are responsible for the growing adoption of arrays for critical network storage.More and more organizations have created enterprise-wide networks to improve productivity andstreamline information flow. While the distributed data stored on network servers providessubstantial cost benefits, these savings can be quickly offset if information is frequently lost orbecomes inaccessible. As today's applications create larger files, network storage needs haveincreased proportionately. In addition, accelerating CPU speeds have outstripped data transferrates to storage media, creating bottlenecks in today's systems.

    RAID storage solutions overcome these challenges by providing a combination of outstanding dataavailability, extraordinary and highly scalable performance, high capacity, and recovery with no lossof data or interruption of user access.By integrating multiple drives into a single array -- which is viewed by the network operating systemas a single disk drive -- organizations can create cost-effective, minicomputersized solutions of up toa terabyte or more of storage.

  • 8/8/2019 RAID Technology the One

    3/36

    Principles

    RAID combines two or more physical hard disks into a single logical unit using special hardwareor software. Hardware solutions are often designed to present themselves to the attached system asa single hard drive, so that the operating system would be unaware of the technical workings. For

    example, if one were to configure a hardware-based RAID-5 volume using three 250GB harddrives (two drives for data, and one for parity), the operating system would be presented with asingle 500GB volume. Software solutions are typically implemented in the operating system and would present the RAID volume as a single drive to applications running within the operatingsystem.

    There are three key concepts in RAID: mirroring, the writing of identical data to more than onedisk; striping, the splitting of data across more than one disk; and error correction, whereredundant ("parity") data is stored to allow problems to be detected and possibly fixed (known asfault tolerance). Different RAID schemes use one or more of these techniques, depending on thesystem requirements. The purpose of using RAID is to improve reliability and availability of data,

    ensuring that important data is not harmed in case of hardware failure, and/or to increase thespeed of file input/output.

    Mirroring

    Mirroring is one of the two data redundancy techniques used in RAID (the other beingparity). Ina RAID system using mirroring, all data in the system is written simultaneously to two hard disksinstead of one; thus the "mirror" concept. The principle behind mirroring is that this 100% dataredundancy provides full protection against the failure of either of the disks containing theduplicated data. Mirroring setups always require an even number of drives for obvious reasons.

    The chief advantage of mirroring is that it provides not only complete redundancy of data, but alsoreasonably fast recovery from a disk failure. Since all the data is on the second drive, it is ready touse if the first one fails. Mirroring also improves some forms of read performance (though itactually hurts write performance.) The chief disadvantage of RAID 1 is expense: that dataduplication means half the space in the RAID is "wasted" so you must buy twice the capacity thatyou want to end up with in the array. Performance is also not as good as some RAID levels.

  • 8/8/2019 RAID Technology the One

    4/36

    Block diagram of a RAID mirroring configuration. The RAID controllerduplicates the same information onto each of two hard disks. Note thatthe RAID controller is represented as a "logical black box" since its functions

    can be implemented in software, or several different types of hardware(integrated controller, bus-based add-in card, stand-alone RAID hardware.)

    Mirroring is used in RAID 1, as well as multiple-level RAID involving RAID 1 (RAID 01 orRAID 10). It is related in concept to duplexing. Very high-end mirroring solutions even includesuch fancy technologies as remote mirroring, where data is configured in a RAID 1 array with thepairs split between physical locations to protect against physical disaster! You won't typically findsupport for anything that fancy in aPC RAID card. :^)

    Duplexing

    Duplexing is an extension ofmirroringthat is based on the same principle as that technique. Likein mirroring, all data is duplicated onto two distinct physical hard drives. Duplexing goes one stepbeyond mirroring, however, in that it also duplicates the hardware that controls the two hard drives(or sets of hard drives). So if you were doing mirroring on two hard disks, they would both beconnected to a single host adapter or RAID controller. If you were doing duplexing, one of thedrives would be connected to one adapter and the other to a second adapter.

  • 8/8/2019 RAID Technology the One

    5/36

    Block diagram of a RAID duplexing configuration. Two controllers are usedto send the same information to two different hard disks. The controllers areoften regular host adapters or disk controllers with the mirroring done by the

    system. Contrast this diagram with the one for straight mirroring.

    Duplexing is superior to mirroring in terms of availability because it provides the same protectionagainst drive failure that mirroring does, but also protects against the failure of either of thecontrollers. It also costs more than mirroring because you are duplicating more hardware.Duplexing is one option when implementing RAID 1 (though most people think of RAID 1 asonly being mirroring, and certainly, mirroring is much more commonly implemented thanduplexing.)

    Since hardware RAID is typically set up under the assumption that the RAID controller willhandle all the drives in the array, duplexing is not supported as an option in most PC hardware

    RAID solutions--even fairly high-end ones. Duplexing is more often found in software RAIDsolutions managed by the operating system, where the operating system is running the RAIDimplementation at a high level and can easily split the data between the host adapters. (There arehardware RAID duplexing solutions but usually only on very expensive external RAID boxes.)

    Striping

    The main performance-limiting issues with disk storage relate to the slow mechanical componentsthat are used forpositioning and transferring data. Since a RAID array has many drives in it, anopportunity presents itself to improve performance by using the hardware in all these drives inparallel. For example, if we need to read a large file, instead of pulling it all from a single hard disk,

    it is much faster to chop it up into pieces, store some of the pieces on each of the drives in anarray, and then use all the disks to read back the file when needed. This technique iscalled striping, after the pattern that might be visible if you could see these "chopped up pieces" onthe various drives with a different color used for each file. It is similar in concept to the memoryperformance-enhancing technique called interleaving.

    Striping can be done at the byte level, or in blocks. Byte-level striping means that the file is brokeninto "byte-sized pieces" (hee hee, sorry about that, I just couldn't resist. ;^) ) The first byte of the file

  • 8/8/2019 RAID Technology the One

    6/36

    is sent to the first drive, then the second to the second drive, and so on. (See the discussion ofRAID level 3 for more on byte-level striping.) Sometimes byte-level striping is done as a sector of512 bytes. Block-level striping means that each file is split into blocks of a certain size and those aredistributed to the various drives. The size of the blocks used is also called the stripe size (or blocksize, or several other names), and can be selected from a variety of choices when the array is set

    up; see here for more details.

    Block diagram of a RAID striping configuration. One controller (which againcan be hardware or software) splits files into blocks or bytes and distributesthem across several hard disks. The block size determines how many "pieces" fileswill be split into. In this example, the first block of file 1 is sent to disk #1, then thesecond block to disk #2, etc. When all four disks have one block of file 1, thefifth block goes back to disk #1, and this continues until the file is completed. Notethat file 3 is only on one disk; this means it was smaller than the block size in this case.

    Striping is used in the implementation of most of the basic, single RAID levels (and by extension,anymultiple RAID levelsthat use those single RAID levels). However, the actual way striping is setup, and how it is used, varies greatly from level to level. RAID 0 uses block-level striping withoutparity; RAID 3 and RAID 7 use byte-level striping with parity; and RAID 4, RAID 5 and RAID 6use block-level striping with parity. Note the distinction between striping with and without parity:striping by itself involves no redundancy, and therefore, provides no data protection. Also see the

  • 8/8/2019 RAID Technology the One

    7/36

    discussion ofRAID 2 for a look at the oddball bit-level striping with ECC defined by that RAIDtype.

    Some companies use the term "spanning" when they really mean striping. Spanning really normally

    refers toJBOD.

    Parity

    Mirroringis a data redundancy technique used by some RAID levels, in particular RAID level 1,to provide data protection on a RAID array. While mirroring has some advantages and is well-suited for certain RAID implementations, it also has some limitations. It has a high overhead cost,because fully 50% of the drives in the array are reserved for duplicate data; and it doesn't improveperformance as much as data striping does for manyapplications. For this reason, a different wayof protecting data is provided as an alternate to mirroring. It involves the use of parity information,which is redundancy information calculated from the actual data values.

    You may have heard the term "parity" before, used in the context ofsystem memory errordetection; in fact, the parity used in RAID is very similar in concept to parity RAM. The principlebehind parity is simple: take "N" pieces of data, and from them, compute an extra piece of data.Take the "N+1" pieces of data and store them on "N+1" drives. If you lose any one of the "N+1"pieces of data, you can recreate it from the "N" that remain, regardless of which piece is lost. Parityprotection is used with striping, and the "N" pieces of data are typically the blocks or bytesdistributed across the drives in the array. The parity information can either be stored on a separate,dedicated drive, or be mixed with the data across all the drives in the array.

    The parity calculation is typically performed using a logical operation called "exclusive OR" or"XOR". As you may know, the "OR" logical operator is "true" (1) if either of its operands is true, and

    false (0) if neither is true. The exclusive OR operator is "true" if and only if one of its operands istrue; it differs from "OR" in that if both operands are true, "XOR" is false. This truth table for thetwo operators will illustrate:

    Input Output

    #1 #2 "OR" "XOR"

    0 0 0 0

    0 1 1 1

    1 0 1 11 1 1 0

    Uh huh. So what, right? Well, the interesting thing about "XOR" is that it is a logical operation thatif performed twice in a row, "undoes itself". If you calculate "A XOR B" and then take that resultand do another "XOR B" on it, you get back A, the value you started with. That is to say, "A XORB XOR B = A". This property is exploited for parity calculation under RAID. If we have four data

  • 8/8/2019 RAID Technology the One

    8/36

    elements, D1, D2, D3 and D4, we can calculate the parity data, "DP" as "D1 XOR D2 XOR D3XOR D4". Then, if we know any four of D1, D2, D3, D4 and DP, we can XOR those fourtogether and it will yield the missing element.

    Let's take an example to show how this works; you can do this yourself easily on a sheet of paper.

    Suppose we have the following four bytes of data: D1=10100101, D2=11110000, D3=00111100,and D4=10111001. We can "XOR" them together as follows, one step at a time:

    D1 XOR D2 XOR D3 XOR D4= ( (D1 XOR D2) XOR D3) XOR D4= ( (10100101 XOR 11110000) XOR 00111100) XOR 10111001= (01010101.XOR 00111100) XOR 10111001= 01101001 XOR 10111001= 11010000

    So "11010000" becomes the parity byte, DP. Now let's say we store these five values on five harddisks, and hard disk #3, containing value "00111100", goes el-muncho. We can retrieve the missingbyte simply by XOR'ing together the other three original data pieces, and the parity byte wecalculated earlier, as so:

    D1 XOR D2 XOR D4 XOR DP= ( (D1 XOR D2) XOR D4) XOR DP= ( (10100101 XOR 11110000) XOR 10111001) XOR 11010000= (01010101 XOR 10111001) XOR 11010000= 11101100 XOR 11010000= 00111100

    Which is D3, the missing value. Pretty neat, huh? :^) This operation can be done on any numberof bits, incidentally; I just used eight bits for simplicity. It's also a very simple binary calculation--which is a good thing, because it has to be done for every bit stored in a parity-enabled RAIDarray.

    Compared to mirroring, parity (used with striping) has some advantages and disadvantages. Themost obvious advantage is that parity protects data against any single drive in the array failingwithout requiring the 50% "waste" of mirroring; only one of the "N+1" drives contains redundancyinformation. (The overhead of parity is equal to (100/N)% where N is the total number of drives inthe array.) Striping with parity also allows you to take advantage of the performance advantagesofstriping. The chief disadvantages of striping with parity relate to complexity: all those parity byteshave to be computed--millions of them per second!--and that takes computing power. This means

    ahardware controller that performs these calculations is required for high performance--if youdo software RAID with striping and parity the system CPU will be dragged down doing all thesecomputations. Also, while you can recover from a lost drive under parity, the missing data all hasto be rebuilt, which has its own complications; recovering from a lost mirrored drive iscomparatively simple.

    All of the RAID levels from RAID 3 to RAID 7 use parity; the most popular of these todayis RAID 5. RAID 2 uses a concept similar to parity but not exactly the same.

  • 8/8/2019 RAID Technology the One

    9/36

    RAID Levels

    There are several different RAID "levels" or redundancy schemes, each with inherent cost,performance, and availability (fault-tolerance) characteristics designed to meet different storageneeds. No individual RAID level is inherently superior to any other. Each of the five array

    architectures is well-suited for certain types of applications and computing environments. Forclient/server applications, storage systems based on RAID levels 1, 0/1, and 5 have been the mostwidely used. This is because popular NOSs such as Windows NT Server and NetWare managedata in ways similar to how these RAID architectures perform.

    RAID 0 - RAID 1 - RAID 2 - RAID 3 - RAID 4 - RAID 5 - RAID 0/1 (or RAID 10)

    RAID Level 0

    Common Name(s): RAID 0. (Note that the term "RAID 0" is sometimes used to mean not onlythe conventional striping technique described here but also other "non-redundant" ways of setting

    up disk arrays. Sometimes it is (probably incorrectly) used just to describe a collection of disks thatdoesn't use redundancy.)

    Technique(s) Used: Striping (without parity)

    Description: The simplest RAID level, RAID 0 should really be called "AID", since it involves noredundancy. Files are broken into stripes of a size dictated by the user-defined stripe size of thearray, and stripes are sent to each disk in the array. Giving up redundancy allows this RAID levelthe best overall performance characteristics of the single RAID levels, especially for its cost. Forthis reason, it is becoming increasingly popular by performance-seekers, especially in the lower endof the marketplace.

    This illustration shows how files of different sizes are distributed between thedrives on a four-disk, 16 kiB stripe size RAID 0 array. The red file is 4 kiB insize; the blue is 20 kiB; the green is 100 kiB; and the magenta is 500 kiB.

  • 8/8/2019 RAID Technology the One

    10/36

    They are shown drawn to scale to illustrate how much space they takeup in relative terms in the array--one vertical pixel represents 1 kiB.(To see the impact that increasing or decreasing stripe size has on the way the data is stored in the array, see the 4 kiB and 64 kiB stripe sizeversions of this illustration on the page discussing stripe size issues.)

    Controller Requirements: Supported by all hardware controllers, both SCSI and IDE/ATA, andalso most software RAID solutions.

    Hard Disk Requirements: Minimum of two hard disks (some may support one drive, the point of which escapes me); maximum set by controller. Any type may be used, but they should be ofidentical type and size for best performance and to eliminate "waste".

    Array Capacity: (Size of Smallest Drive * Number of Drives).

    Storage Efficiency: 100% if identical drives are used.

    Fault Tolerance: None. Failure of any drive results in loss of all data, short of specialized datarecovery.

    Availability: Lowest of any RAID level. Lack of fault tolerance means no rapid recovery fromfailures. Failure of any drive results in array being lost and immediate downtime until array can berebuilt and data restored from backup.

    Degradation and Rebuilding: Not applicable.

    Random Read Performance: Very good; better if using larger stripe sizes if the controller supports

    independent reads to different disks in the array.

    Random Write Performance: Very good; again, best if using a larger stripe size and a controllersupporting independent writes.

    Sequential Read Performance: Very good to excellent.

    Sequential Write Performance: Very good.

    Cost: Lowest of all RAID levels.

    Special Considerations: Using a RAID 0 array without backing up any changes made to its data atleast daily is a loud statement that that data is not important to you.

    Recommended Uses: Non-critical data (or data that changes infrequently and is backed upregularly) requiring high speed, particularly write speed, and low cost of implementation. Audioand video streaming and editing; web servers; graphic design; high-end gaming or hobbyist systems;temporary or "scratch" disks on larger machines.

  • 8/8/2019 RAID Technology the One

    11/36

  • 8/8/2019 RAID Technology the One

    12/36

    Controller Requirements: Supported by all hardware controllers, both SCSI and IDE/ATA, andalso most software RAID solutions.

    Hard Disk Requirements: Exactly two hard disks. Any type may be used but they should ideally beidentical.

    Array Capacity: Size of Smaller Drive.

    Storage Efficiency: 50% if drives of the same size are used, otherwise (Size of Smaller Drive / (Sizeof Smaller Drive + Size of Larger Drive) )

    Fault Tolerance: Very good; duplexing even better.

    Availability: Very good. Most RAID controllers, even low-end ones, will support hot sparing andautomatic rebuilding of RAID 1 arrays.

    Degradation and Rebuilding: Slight degradation of read performance; write performance willactually improve. Rebuilding is relatively fast.

    Random Read Performance: Good. Better than a single drive but worse than many other RAIDlevels.

    Random Write Performance: Good. Worse than a single drive, but better than many other RAIDlevels. :^)

    Sequential Read Performance: Fair; about the same as a single drive.

    Sequential Write Performance: Good; again, better than many other RAID levels.

    Cost: Relatively high due to redundant drives; lowest storage efficiency of the single RAID levels.Duplexing is still more expensive due to redundant controllers. On the other hand, no expensivecontroller is required, and large consumer-grade drives are rather inexpensive these days, makingRAID 1 a viable choice for an individual system.

    Special Considerations: RAID 1 arrays are limited to the size of the drives used in the array.Multiple RAID 1 arrays can be set up if additional storage is required, but RAID 1+0 begins tolook more attractive in that circumstance. Performance may be reduced if implemented usingsoftware instead of a hardware controller; duplexing may require software RAID and thus mayshow lower performance than mirroring.

    Recommended Uses:Applications requiring high fault tolerance at a low cost, without heavyemphasis on large amounts of storage capacity or top performance. Especially useful in situationswhere the perception is that having a duplicated set of data is more secure than using parity. Forthis reason, RAID 1 is popular for accounting and other financial data. It is also commonly usedfor small database systems, enterprise servers, and for individual users requiring fault tolerance with a minimum of hassle and cost (since redundancy using parity generally requires moreexpensive hardware.)

  • 8/8/2019 RAID Technology the One

    13/36

    RAID Level 2

    Common Name(s): RAID 2.

    Technique(s) Used: Bit-level striping with Hamming code ECC.

    Description: Level 2 is the "black sheep" of the RAID family, because it is the only RAID level thatdoes not use one or more of the "standard" techniques of mirroring, striping and/or parity. RAID 2uses something similar to striping with parity, but not the same as what is used by RAID levels 3 to7. It is implemented by splitting data at the bit level and spreading it over a number of data disksand a number of redundancy disks. The redundant bits are calculated using Hamming codes, aform of error correcting code (ECC). Each time something is to be written to the array these codesare calculated and written along side the data to dedicated ECC disks; when the data is read backthese ECC codes are read as well to confirm that no errors have occurred since the data waswritten. If a single-bit error occurs, it can be corrected "on the fly". If this sounds similar to the waythat ECC is used within hard disks today, that's for a good reason: it's pretty much exactly the same.It's also the same concept used for ECC protection of system memory.

    Level 2 is the only RAID level of the ones defined by the original Berkeleydocumentthat is notused today, for a variety of reasons. It is expensive and often requires manydrives--see below forsome surprisingly large numbers. The controller required was complex, specialized and expensive.The performance of RAID 2 is also rather substandard in transactional environments due to thebit-level striping. But most of all, level 2 was obviated by the use of ECC within a hard disk;essentially, much of what RAID 2 provides you now get for "free" within each hard disk, with otherRAID levels providing protection above and beyond ECC.

    Due to its cost and complexity, level 2 never really "caught on". Therefore, much of theinformation below is based upon theoretical analysis, not empirical evidence.

    Controller Requirements: Specialized controller hardware required.

    Hard Disk Requirements: Depends on exact implementation, but a typical setup required 10 datadisks and 4 ECC disks for a total of 14, or 32 data disks and 7 ECC disks for a total of 39! Thedisks were spindle-synchronized to run in tandem.

    Array Capacity: Depends on exact implementation but would be rather large if built today usingmodern drives.

    Storage Efficiency: Depends on the number of data and ECC disks; for the 10+4 configuration,about 71%; for the 32+7 setup, about 82%.

    Fault Tolerance: Only fair; for all the redundant drives included, you don't get much tolerance:only one drive can fail in this setup and be recoverable "on the fly".

    Availability: Very good, due to "on the fly" error correction.

  • 8/8/2019 RAID Technology the One

    14/36

    Degradation and Rebuilding: In theory, there would be little degradation due to failure of a singledrive.

    Random Read Performance: Fair. Bit-level striping makes multiple accesses impossible.

    Random WriteP

    erformance:P

    oor, due to bit-level striping and ECC calculation overhead.

    Sequential Read Performance: Very good, due to parallelism of many drives.

    Sequential Write Performance: Fair to good.

    Cost: Very expensive.

    Special Considerations: Not used in modern systems.

    Recommended Uses: Not used in modern systems.

    RAID Level 3

    Common Name(s): RAID 3. (Watch out for some companies that say their products implementRAID 3 when they are really RAID 4.)

    Technique(s) Used: Byte-level striping with dedicated parity.

    Description: Under RAID 3, data is striped across multiple disks at a byte level; the exact numberof bytes sent in each stripe varies but is typically under 1024. The parity information is sent to adedicated parity disk, but the failure of any disk in the array can be tolerated (i.e., the dedicatedparity disk doesn't represent a single point of failure in the array.) The dedicated paritydisk does generally serve as a performance bottleneck, especially for random writes, because itmust be accessed any time anything is sent to the array; this is contrasted to distributed-parity levelssuch as RAID 5 which improve write performance by using distributed parity (though they stillsuffer from large overheads on writes, as described here). RAID 3 differs from RAID 4 only in thesize of the stripes sent to the various disks.

  • 8/8/2019 RAID Technology the One

    15/36

    This illustration shows how files of different sizes are distributedbetween the drives on a four-disk, byte-striped RAID 3 array. As withthe RAID 0 illustration, the red file is 4 kiB in size; the blue is 20 kiB;the green is 100 kiB; and the magenta is 500 kiB, with each verticalpixel representing 1 kiB of space. Notice that the files are evenlyspread between three drives, with the fourth containing parityinformation (shown in dark gray). Since the blocks are so tiny inRAID 3, the individual boundaries between stripes can't be seen.You may want to compare this illustration to the one for RAID 4.

    Controller Requirements: Generally requires a medium-to-high-end hardware RAID card.

    Hard Disk Requirements: Minimum of three standard hard disks; maximum set by controller.Should be of identical size and type.

    Array Capacity: (Size of Smallest Drive) * (Number of Drives - 1)

    Storage Efficiency: If all drives are the same size, ( (Number of Drives - 1) / Number of Drives).

    Fault Tolerance: Good. Can tolerate loss of one drive.

    Availability: Very good. Hot sparing and automatic rebuild are usually supported by controllers

    that implement RAID 3.

    Degradation and Rebuilding: Relatively little degrading of performance if a drive fails. Rebuilds cantake many hours.

    Random Read Performance: Good, but not great, due to byte-level striping.

  • 8/8/2019 RAID Technology the One

    16/36

    Random Write Performance: Poor, due to byte-level striping, parity calculation overhead, and thebottleneck of the dedicated parity drive.

    Sequential Read Performance: Very good.

    Sequential WriteP

    erformance: Fair to good.

    Cost: Moderate. A hardware controller is usually required, as well as at least three drives.

    Special Considerations: Not as popular as many of the other commonly-implemented RAIDlevels. For transactional environments, RAID 5 is usually a better choice.

    Recommended Uses: Applications working with large files that require high transfer performancewith redundancy, especially serving or editing large files: multimedia, publishing and so on. RAID3 is often used for the same sorts of applications that would typically see the use of RAID 0, wherethe lack of fault tolerance of RAID 0 makes it unacceptable.

    RAID Level 4

    Common Name(s): RAID 4 (sometimes called RAID 3 by the confused).

    Technique(s) Used: Block-level striping with dedicated parity.

    Description: RAID 4 improves performance by striping data across many disks in blocks, andprovides fault tolerance through a dedicated parity disk. This makes it in some ways the "middlesibling" in a family of close relatives, RAID levels 3, 4 and 5. It is like RAID 3 except that it usesblocks instead of bytes for striping, and like RAID 5 except that it uses dedicated parity instead ofdistributed parity. Going from byte to block striping improves random access performancecompared to RAID 3, but the dedicated parity disk remains a bottleneck, especially for randomwrite performance. Fault tolerance, format efficiency and many other attributes are the same as forRAID 3 and RAID 5.

  • 8/8/2019 RAID Technology the One

    17/36

    This illustration shows howfiles of different sizes are distributed betweenthe drives on a four-disk RAID 4 array using a 16 kiB stripe size. As with theRAID 0 illustration, the red file is 4 kiB in size; the blue is 20 kiB; the greenis 100 kiB; and the magenta is 500 kiB, with each vertical pixel representing1 kiB of space. Notice that as with RAID 3, the files are evenly spread betweenthree drives, with the fourth containing parity information (shown in gray).You may want to contrast this illustration to the one for RAID 3 (which is verysimilar except that the blocks are so tiny you can't see them) and the onefor RAID 5 (which distributes the parity blocks across all four drives.)

    Controller Requirements: Generally requires a medium-to-high-end hardware RAID card.

    Hard Disk Requirements: Minimum of three standard hard disks; maximum set by controller.Should be of identical size and type.

    Array Capacity: (Size of Smallest Drive) * (Number of Drives - 1).

    Storage Efficiency: If all drives are the same size, ( (Number of Drives - 1) / Number of Drives).

    Fault Tolerance: Good. Can tolerate loss of one drive.

    Availability: Very good. Hot sparing and automatic rebuild are usually supported..

    Degradation and Rebuilding: Moderate degrading if adrive fails; potentially lengthy rebuilds.

    Random Read Performance: Very good.

    Random Write Performance: Poor to fair, due to parity calculation overhead and the bottleneck ofthe dedicated parity drive.

  • 8/8/2019 RAID Technology the One

    18/36

    Sequential Read Performance: Good to very good.

    Sequential Write Performance: Fair to good.

    Cost: Moderate. Ahardware controller is usually required, as well as at least three drives.

    Special Considerations: Performance will depend to some extent upon the stripe size chosen.

    Recommended Uses: Jack of all trades and master of none, RAID 4 is not as commonly used asRAID 3 and RAID 5, because it is in some ways a "compromise" between them that doesn't have atarget market as well defined as either of those two levels. It is sometimes usedbyapplications commonly seen using RAID 3 or RAID 5, running the gamut from databases andenterprise planning systems to serving large multimedia files.

    RAID Level 5

    Common Name(s): RAID 5.

    Technique(s) Used: Block-level striping with distributed parity.

    Description: One of the most popular RAID levels, RAID 5 stripes both data and parityinformation across three or more drives. It is similar to RAID 4 except that it exchanges thededicated parity drive for a distributed parity algorithm, writing data and parity blocks across all thedrives in the array. This removes the "bottleneck" that the dedicated parity drive represents,improving write performance slightly and allowing somewhat better parallelism in a multiple-transaction environment, though the overhead necessary in dealing with the parity continues to bogdown writes. Fault tolerance is maintained by ensuring that the parity information for any givenblock of data is placed on a drive separate from those used to store the data itself. Theperformance of a RAID 5 array can be "adjusted" by trying different stripe sizes until one is foundthat is well-matched to the application being used.

  • 8/8/2019 RAID Technology the One

    19/36

    This illustration shows how files of different sizes are distributedbetween the drives on a four-disk RAID 5 array using a 16 kiB stripesize. As with the RAID 0 illustration, the red file is 4 kiB in size; the blueis 20 kiB; the green is 100 kiB; and the magenta is 500 kiB, with eachvertical pixel representing 1 kiB of space. Contrast this diagram to theone for RAID 4, which is identical except that the data is only on threedrives and the parity (shown in gray) is exclusively on the fourth.drive.

    Controller Requirements: Requires a moderately high-end card for hardware RAID; supported bysome operating systems for software RAID, but at a substantial performance penalty.

    Hard Disk Requirements: Minimum of three standard hard disks; maximum set by controller.Should be of identical size and type.

    Array Capacity: (Size of Smallest Drive) * (Number of Drives - 1).

    Storage Efficiency: If all drives are the same size, ( (Number of Drives - 1) / Number of Drives).

    Fault Tolerance: Good. Can tolerate loss of one drive.

    Availability: Good to very good. Hot sparing and automatic rebuild are usually featured onhardware RAID controllers supporting RAID 5 (software RAID 5 will require down-time).

    Degradation and Rebuilding: Due to distributed parity, degradation can be substantial after afailure and during rebuilding.

    Random Read Performance: Very good to excellent; generally better for larger stripe sizes. Can bebetter than RAID 0 since the data is distributed over one additional drive, and the parityinformation is not required during normal reads.

  • 8/8/2019 RAID Technology the One

    20/36

    Random Write Performance: Only fair, due to parity overhead; this is improved over RAID 3 andRAID 4 due to eliminating the dedicated parity drive, but the overhead is still substantial.

    Sequential Read Performance: Good to very good; generally better for smaller stripe sizes.

    Sequential WriteP

    erformance: Fair to good.

    Cost: Moderate, but often less than that of RAID 3 or RAID 4 due to its greater popularity, andespecially if software RAID is used.

    Special Considerations: Due to the amount of parity calculating required, software RAID 5can seriously slow down a system. Performance will depend to some extent upon the stripe sizechosen.

    Recommended Uses: RAID 5 is seen by many as the ideal combination of good performance,good fault tolerance and high capacity and storage efficiency. It is best suited for transactionprocessing and is often used for "general purpose" service, as well as for relational databaseapplications, enterprise resource planning and other business systems. For write-intensiveapplications, RAID 1 or RAID 1+0 are probably better choices (albeit higher in terms of hardwarecost), as the performance of RAID 5 will begin to substantially decrease in a write-heavyenvironment.

    RAID LEVEL 6

    Common Name(s): RAID 6. Some companies use the term "RAID 6" to refer to proprietaryextensions of RAID 5; these are not discussed here.

    Technique(s) Used: Block-level striping with dual distributed parity.

    Description: RAID 6 can be thought of as "RAID 5, but more". It stripes blocks of data and parityacross an array of drives like RAID 5, except that it calculates two sets of parity information foreach parcel of data. The goal of this duplication is solely to improve fault tolerance; RAID 6 canhandle the failure of any two drives in the array while other single RAID levels can handle at mostone fault. Performance-wise, RAID 6 is generally slightly worse than RAID 5 in terms of writesdue to the added overhead of more parity calculations, but may be slightly faster in random readsdue to spreading of data over one more disk. As with RAID levels 4 and 5, performance can beadjusted by experimenting with different stripe sizes.

  • 8/8/2019 RAID Technology the One

    21/36

    This illustration shows how files of different sizes are distributedbetween the drives on a four-disk RAID 6 array using a 16 kiB stripesize. As with the RAID 0 illustration, the red file is 4 kiB in size; the blueis 20 kiB; the green is 100 kiB; and the magenta is 500 kiB, with eachvertical pixel representing 1 kiB of space. This diagram is the same as the

    RAID 5 one, except that you'll notice that there is now twice as muchgray parity information, and as a result, more space taken up on thefour drives to contain the same data than the other levels that use striping.

    Controller Requirements: Requires a specialized (usually meaning expensive) hardware controller.

    Hard Disk Requirements: Minimum of four hard disks; maximum set by controller. Should be ofidentical size and type.

    Array Capacity: (Size of Smallest Drive) * (Number of Drives - 2).

    Storage Efficiency: If all drives are the same size, ( (Number of Drives - 2) / Number of Drives).

    Fault Tolerance: Very good to excellent. Can tolerate the simultaneous loss of any two drives in thearray.

    Availability: Excellent.

  • 8/8/2019 RAID Technology the One

    22/36

    Degradation and Rebuilding: Due to the complexity of dual distributed parity, degradation can besubstantial after a failure and during rebuilding. Dual redundancy may allow rebuilding to bedelayed to avoid performance hit.

    Random Read Performance: Very good to excellent; generally better for larger stripe sizes.

    Random Write Performance: Poor, due to dual parity overhead and complexity.

    Sequential Read Performance: Good to very good; generally better for smaller stripe sizes.

    Sequential Write Performance: Fair.

    Cost: High.

    Special Considerations: Requires special implementation; not widely available.

    Recommended Uses: In theory, RAID 6 is ideally suited to the same sorts of applications as RAID5, but in situations where additional fault tolerance is required. In practice, RAID 6 has neverreally caught on because few companies are willing to pay for the extra cost to insure against arelatively rare event--it's unusual for two drives to fail simultaneously (unless something happensthat takes out the entire array, in which case RAID 6 won't help anyway). On the lower end of theRAID 5 market, the rise of hot swapping and automatic rebuild features for RAID 5 have madeRAID 6 even less desirable, since with these advanced features a RAID 5 array can recover from asingle drive failure in a matter of hours (where without them, RAID 5 would require downtime forrebuilding, giving RAID 6 a substantial advantage.) On the higher end of the RAID 5 market,RAID 6 usually loses out to multiple RAID solutions such as RAID 10 that provide some degreeof multiple-drive fault tolerance while offering improved performance as well.

    RAID Level 7

    Common Name(s): RAID 7.

    Technique(s) Used: Asynchronous, cached striping with dedicated parity.

    Description: Unlike the other RAID levels, RAID 7 isn't an open industry standard; it is really atrademarked marketing term of Storage Computer Corporation, used to describe their proprietaryRAID design. (I debated giving it a page alongside the other RAID levels, but since it is used in themarket, it deserves to be explained; that said, information about it appears to be limited.) RAID 7is based on concepts used in RAID levels 3 and 4, but greatly enhanced to address some of thelimitations of those levels. Of particular note is the inclusion of a great deal ofcache arranged intomultiple levels, and a specialized real-time processor for managing the array asynchronously. Thishardware support--especially the cache--allow the array to handle many simultaneous operations,greatly improving performance of all sorts while maintaining fault tolerance. In particular, RAID 7offers much improved random read and write performance over RAID 3 or RAID 4 because thedependence on the dedicated parity disk is greatly reduced through the added hardware. Theincreased performance of RAID 7 of course comes at a cost. This is an expensive solution, madeand supported by only one company.

  • 8/8/2019 RAID Technology the One

    23/36

    Controller Requirements: Requires a specialized, expensive, proprietary controller.

    Hard Disk Requirements: Depends on implementation.

    Array Capacity: Depends on implementation.

    Storage Efficiency: Depends on implementation.

    Fault Tolerance: Very good.

    Availability: Excellent, due to use of multiple hot spares.

    Degradation and Rebuilding: Better than many RAID levels due to hardware support for paritycalculation operations and multiple cache levels.

    Random Read Performance: Very good to excellent. The extra cache can often supply the results

    of the read without needing to access the array drives.

    Random Write Performance: Very good; substantially better than other single RAID levels doingstriping with parity.

    Sequential Read Performance: Very good to excellent.

    Sequential Write Performance: Very good.

    Cost: Very high.

    Special Considerations: RAID 7 is a proprietary product of a single company; if it is of interestthen you should contact Storage Computer Corporation for more details on the specifics ofimplementing it. All the caching creates potential vulnerabilities in the event of power failure,making the use of one or more UPS units mandatory.

    Recommended Uses: Specialized high-end applications requiring absolutely top performance andwilling to live with the limitations of a proprietary, expensive solution. For most users, a multipleRAID level solution like RAID 1+0 will probably yield comparable performance improvementsover single RAID levels, at lower cost.

    Multiple (Nested) RAID Levels

    The single RAID levels have distinct advantages and disadvantages, which is why most of them areused in various parts of the market to address different application requirements. It wasn't longafter RAID began to be implemented that engineers looked at these RAID levels and began towonder if it might be possible to get some of the advantages of more than one RAID level bydesigning arrays that use a combination of techniques. These RAID levels are calledvariouslymultiple, nested, or multi-RAID levels. They are also sometimes called two-dimensional,in reference to the two-dimensional schematics that are used to represent the application of twoRAID levels to a set of disks, as you shall see.

  • 8/8/2019 RAID Technology the One

    24/36

    Multiple RAID levels are most commonly used to improve performance, and they do this well.Nested RAID levels typically provide better performance characteristics than either of the singleRAID levels that comprise them. The most commonly combined level is RAID 0, which is oftenmixed with redundant RAID levels such as 1, 3 or 5 to provide fault tolerance while exploiting theperformance advantages of RAID 0. There is never a "free lunch", and so with multiple RAID

    levels what you pay is a cost in complexity: many drives are required, management andmaintenance are more involved, and for some implementations a high-end RAID controller isrequired.

    Not all combinations of RAID levels exist (which is good, because I'd get really bored of describingthem all! :^) ) Typically, the most popular multiple RAID levels are those that combine singleRAID levels that complement each other with different strengths and weaknesses. Making amultiple RAID array marrying RAID 4 to RAID 5 wouldn't be the best idea, since they are sosimilar to begin with.

    In this section I take a look at some of the more common multiple RAID levels. Note that someof the multiple RAID levels discussed here are frequently used, but others are rarely implemented.In particular, for completeness I describe both the "X+Y" and "Y+X" configurations of eachmultiple level, when in some cases only one or the other is commonly made into product. Forexample, I know that RAID 50 (5+0) is an option in commercial RAID controllers, but I am notsure if anyone makes a RAID 05 solution. There may also be other combinations of RAID levelsthat I am not aware of.

    RAID X+Y vs. RAID Y+X

    Before looking at the specific multiple RAID levels, I have to explain a few things about the waymultiple RAID levels are constructed. A multiple RAID level is generally created by taking anumber of disks and dividing them into sets. Within each set a single RAID level is applied toform a number of arrays. Then, the second RAID level is applied to the arrays to create a higher-level array. This is why these are sometimes called nested arrays.

    Since there are two levels, there are two ways they can be combined. The choice of which level isapplied first and which second has an impact on some important array characteristics. Let's take asan example multiple RAID employing RAID 0 and RAID 1 to create an array of ten disks. Muchas we can define 10 to be 2*5 or 5*2, we can create our multiple RAID array two ways:

    y RAID 0, then RAID 1: Divide the ten disks into two sets of five. Turn each set into aRAID 0 array containing five disks, then mirror the two arrays. (Sometimes called a "mirrorof stripes".)

    y RAID 1, then RAID 0: Divide the ten disks into five sets of two. Turn each set into aRAID 1 array, then stripe across the five mirrored sets. (A "stripe of mirrors").

    Naming conventions for multiple RAID levels are just horrible. The standard that most of theindustry seems to use is that if RAID level X is applied first and then RAID level Y is applied overtop of it, that is RAID "X+Y", also sometimes seen as "RAID XY" or "RAID X/Y". This wouldmean that alternative number 1 above would be called "RAID 0+1" or "RAID 1+0", and that's infact the terminology that most companies use. Unfortunately, other companies reverse the terms!

  • 8/8/2019 RAID Technology the One

    25/36

    They might call the RAID 0 and then RAID 1 technique "RAID 1/0" or "RAID 10" (perhaps out offear that people would think "RAID 01" and "RAID 1" were the same thing). Some designers usethe terms "RAID 01" and "RAID 10" interchangeably. The result of all this confusion is that you must investigate to determine what exactly a company is implementing when you look atmultiple RAID. Don't trust the label.

    Of course, I haven't even explained why you should care about the distinctions, so I suppose Ishould do that. :^) After all, if you have ten marbles, why would you care if they are arranged infive columns and two rows, or two columns and five rows? Same here: aren't ten disks in an arrayten disks in an array? Clearly I am setting you up, so the answer is obviously "no". :^)

    In many respects, there is no difference between them: there is no impact on drive requirements,capacity, storage efficiency, and importantly, not much impact on performance. The big differencecomes into play when we look at fault tolerance. Most controllers implement multiple level RAIDby forming a "super array" comprised of "sub-arrays" underneath it. In many cases the arrays thatcomprise the "super array"--often called sets--are considered to be logical "single units", whichmeans that the controller only considers one of these "single units" to either be "up" or "down" as awhole. It will make use of redundancy features within a sub-array, but not between sub-arrays, evenif the higher-level array means that drives in different sub-arrays will have the same data.

    That makes this sound much more complicated than it really is; it's much easier to explain with anexample. Let's look at 10 drives and RAID 0+1 vs. RAID 1+0 again:

    y RAID 0+1: We stripe together drives 1, 2, 3, 4 and 5 into RAID 0 stripe set "A", and drives6, 7, 8, 9 and 10 into RAID 0 stripe set "B". We then mirror A and B using RAID 1. If onedrive fails, say drive #2, then the entire stripe set "A" is lost, because RAID 0 has noredundancy; the RAID 0+1 array continues to chug along because the entire stripe set "B" isstill functioning. However, at this point you are reduced to running what is in essence astraight RAID 0 array until drive #2 can be fixed. If in the meantime drive #9 goes down,you lose the entire array.

    y RAID 1+0: We mirror drives 1 and 2 to form RAID 1 mirror set "A"; 3 and 4 become "B";5 and 6 become "C"; 7 and 8 become "D"; and 9 and 10 become "E". We then do a RAID 0stripe across sets A through E. If drive #2 fails now, only mirror set "A" is affected; it stillhas drive #1 so it is fine, and the RAID 1+0 array continues functioning. If while drive #2 isbeing replaced drive #9 fails, the array is fine, because drive #9 is in a different mirror pairfrom #2. Only two failures in the same mirror set will cause the array to fail, so in theory,five drives can fail--as long as they are all in different sets--and the array would still be fine.

    Clearly, RAID 1+0 is more robust than RAID 0+1. Now, if the controller running RAID 0+1 were

    smart, when drive #2 failed it would continue striping to the other four drives in stripe set "A", andif drive #9 later failed it would "realize" that it could use drive #4 in its stead, since it should havethe same data. This functionality would theoretically make RAID 0+1 just as fault-tolerant asRAID 1+0. Unfortunately, most controllers aren't that smart. It pays to ask specific questions abouthow a multiple RAID array implementation handles multiple drive failures, but in general, acontroller won't swap drives between component sub-arrays unless the manufacturer of thecontroller specifically says it will.

  • 8/8/2019 RAID Technology the One

    26/36

    The same impact on fault tolerance applies to rebuilding. Consider again the example above. InRAID 0+1, if drive #2 fails, the data on five hard disks will need to be rebuilt, because the wholestripe set "A" will be wiped out. In RAID 1+0, only drive #2 has to be rebuilt. Again here, theadvantage is to RAID 1+0.

    Tip: For a diagram showing graphically the difference between RAID 0+1 and RAID 1+0,see the page discussing those levels.

    Some controllers offer the choice of "what order" you use to set up a multiple RAID array; they willlet you do either RAID X+Y or RAID Y+X, as you choose. Others will force you to use only oneor the other configuration. Again, ask for details when considering a solution, and be specific withyour questions so you can figure out what exactly the controller you are investigating does.

    RAID Levels 0+1 (01) and 1+0 (10)

    Common Name(s): RAID 0+1, 01, 0/1, "mirrored stripes", "mirror of stripes"; RAID 1+0, 10, 1/0,"striped mirrors", "stripe of mirrors". Labels are often used incorrectly; verify the details of theimplementation if the distinction between 0+1 and 1+0 is important to you.

    Technique(s) Used: Mirroring and striping without parity.

    Description: The most popular of the multiple RAID levels, RAID 01 and 10 combine the bestfeatures of striping and mirroring to yield large arrays with high performance in most uses andsuperior fault tolerance. RAID 01 is a mirrored configuration of two striped sets; RAID 10 is astripe across a number of mirrored sets. RAID 10 and 01 have been increasing dramatically inpopularity as hard disks become cheaper and the four-drive minimum is legitimately seen as muchless of an obstacle. RAID 10 provides better fault tolerance and rebuild performance than RAID01. Both array types provide very good to excellent overall performance by combining the speed ofRAID 0 with the redundancy of RAID 1 without requiring parity calculations.

  • 8/8/2019 RAID Technology the One

    27/36

    This illustration shows howfiles of different sizes are distributed between thedrives on an eight-disk RAID 0+1 array using a 16 kiB stripe size for the RAID 0portion. As with the RAID 0 illustration, the red file is 4 kiB in size; the blue is20 kiB; the green is 100 kiB; and the magenta is 500 kiB, with each vertical pixelrepresenting 1 kiB of space. The large, patterned rectangles represent the twoRAID 0 "sub arrays", which are mirrored using RAID 1 to create RAID 0+1.The contents of the striped sets are thus identical. The diagram for RAID 1+0would be the same except for the groupings: instead of two large boxes dividingthe drives horizontally, there would be four large boxes dividing the drives vertically into mirrored pairs. These pairs would then be striped together toform level 1+0. Contrast this diagram to the ones for RAID 0 and RAID 1.

    Controller Requirements: Almost all hardware controllers will support one or the other of RAID10 or RAID 01, but often not both. Even low-end cards will support this multiple level, usuallyRAID 01. High-end cards may support both 01 and 10.

    Hard Disk Requirements: An even number of hard disks with a minimum of four; maximumdependent on controller. All drives should be identical.

  • 8/8/2019 RAID Technology the One

    28/36

  • 8/8/2019 RAID Technology the One

    29/36

    RAID 0 dimension: the more parity drives, the lower capacity and storage efficiency, but thegreater the fault tolerance. See the examples below for more explanation of this.

    Most of the characteristics of RAID 0+3 and 3+0 are similar to those of RAID 0+5 and 5+0. RAID30 and 03 tend to be better for large files than RAID 50 and 05.

    Controller Requirements: Generally requires a high-end hardware controller.

    Hard Disk Requirements: Number of drives must be able to be factored into two integers, one ofwhich must be 2 or higher and the other 3 or higher (you can make a RAID 30 array from 10drives but not 11). Minimum number of drives is six, with the maximum set by the controller.

    Array Capacity: For RAID 03: (Size of Smallest Drive) * (Number of Drives In Each RAID 0 Set)* (Number of RAID 0 Sets - 1). For RAID 30: (Size of Smallest Drive) * (Number of Drives InEach RAID 3 Set - 1) * (Number of RAID 3 Sets).

    For example, the capacity of a RAID 03 array made of 15 18 GB drives arranged as three five-drive RAID 0 sets would be 18 GB * 5 * (3-1) = 180 GB. The capacity of a RAID 30 array madeof 21 18 GB drives arranged as three seven-drive RAID 3 sets would be 18 GB * (7-1) * 3 = 324GB. The same 21 drives arranged as seven three-drive RAID 3 sets would have a capacity of 18GB * (3-1) * 7 = "only" 252 GB.

    Storage Efficiency: For RAID 03: ( (Number of RAID 0 Sets - 1) / Number of RAID 0 Sets). ForRAID 30: ( (Number of Drives In Each RAID 3 Set - 1) / Number of Drives In Each RAID 3Set).

    Taking the same examples as above, the 15-drive RAID 03 array would have a storage efficiency of(3-1)/3 = 67%. The first RAID 30 array, configured as three seven-drive RAID 3 sets, would have astorage efficiency of (7-1)/7 = 86%, while the other RAID 30 array would have a storage efficiencyof, again, (3-1)/3 = 67%.

    Fault Tolerance: Good to very good, depending on whether it is RAID 03 or 30, and the numberof parity drives relative to the total number. RAID 30 will provide better fault tolerance than RAID03.

    Consider the two different 21-drive RAID 30 arrays mentioned above: the first one (three seven-drive RAID 3 sets) has higher capacity and storage efficiency, but can only tolerate three maximumpotential drive failures; the one with lower capacity and storage efficiency (seven three-drive RAID3 sets) can handle as many as seven , if they are in different RAID 3 sets. Of course few

    applications really require tolerance for seven independent drive failures! And of course, if those21 drives were in a RAID 03 array instead, failure of a second drive after one had failed and takendown one of the RAID 0 sub-arrays would crash the entire array.

    Availability: Very good to excellent.

    Degradation and Rebuilding: Relatively little for RAID 30 (though more than RAID 10); can bemore substantial for RAID 03.

  • 8/8/2019 RAID Technology the One

    30/36

    Random Read Performance: Very good, assuming RAID 0 stripe size is reasonably large.

    Random Write Performance: Fair.

    Sequential Read Performance: Very good to excellent.

    Sequential Write Performance: Good.

    Cost: Relatively high due to requirements for a hardware controller and a large number of drives;storage efficiency is better than RAID 10 however and no worse than any other RAID levels thatinclude redundancy.

    Special Considerations: Complex and expensive to implement.

    Recommended Uses: Not as widely used as many other RAID levels. Applications include datathat requires the speed of RAID 0 with fault tolerance and high capacity, such as criticalmultimedia data and large database or file servers. Sometimes used instead of RAID 3 to increasecapacity as well as performance.

    RAID Levels 0+5 (05) and 5+0 (50)

    Common Name(s): RAID 0+5 or 05; RAID 5+0 or 50. As with the other multiple RAID levels,verify the exact implementation instead of relying on the label.

    Technique(s) Used: Block striping with distributed parity combined with block striping.

    Description: RAID 05 and 50 form large arrays by combining the block striping and parity ofRAID 5 with the straight block striping of RAID 0. RAID 05 is a RAID 5 array comprised of anumber of striped RAID 0 arrays; it is less commonly seen than RAID 50, which is a RAID 0array striped across RAID 5 elements. RAID 50 and 05 improve upon the performance of RAID5 through the addition of RAID 0, particularly during writes. It also provides better fault tolerancethan the single RAID level does, especially if configured as RAID 50.

    Most of the characteristics of RAID 05 and 50 are similar to those of RAID 03 and 30. RAID 50and 05 tend to be preferable for transactional environments with smaller files than 03 and 30.

  • 8/8/2019 RAID Technology the One

    31/36

    This illustration shows how files of different sizes are distributed between the driveson an eight-disk RAID 5+0 array using a 16 kiB stripe size. As with the RAID 0illustration, the red file is 4 kiB in size; the blue is 20 kiB; the green is 100 kiB; andthe magenta is 500 kiB, with each vertical pixel representing 1 kiB of space.Each of the large, patterned rectangles represents a four-drive RAID 5 array.

    The data is evenly striped between these two RAID 5 arrays using RAID 0. Thenwithin each RAID 5 array, the data is stored using striping with parity. So the firstsmall file, and 12 kiB of the second file, were sent to the top RAID 5 array; theremaining 8 kiB of the second file and the first 8 kiB of the 100 kiB file went to thebottom RAID 5 array; then the next 16 kiB of the 100 kiB went to the top array,and so on. Within each RAID 5 array the data is striped and parity calculated justlike a regular RAID 5 array; each array just does this with half the number of blocksit normally would. Contrast this diagram to the ones for RAID 0 and RAID 5.

    Controller Requirements: Generally requires a high-end hardware controller.

    Hard Disk Requirements: Number of drives must be able to be factored into two integers, one ofwhich must be 2 or higher and the other 3 or higher (you can make a RAID 30 array from 6 drivesbut not 7). Minimum number of drives is six, with the maximum set by the controller.

    Array Capacity: Same as RAID 03 and 30. For RAID 05: (Size of Smallest Drive) * (Number ofDrives In Each RAID 0 Set) * (Number of RAID 0 Sets - 1). For RAID 50: (Size of SmallestDrive) * (Number of Drives In Each RAID 5 Set - 1) * (Number of RAID 5 Sets).

  • 8/8/2019 RAID Technology the One

    32/36

    For example, the capacity of a RAID 05 array made of 15 18 GB drives arranged as three five-drive RAID 0 sets would be 18 GB * 5 * (3-1) = 180 GB. The capacity of a RAID 50 array madeof 21 18 GB drives arranged as three seven-drive RAID 5 sets would be 18 GB * (7-1) * 3 = 324GB. The same 21 drives arranged as seven three-drive RAID 5 sets would have a capacity of 18GB * (3-1) * 7 = 252 GB.

    Storage Efficiency: Same as for RAID 03 and 30. For RAID 05: ( (Number of RAID 0 Sets - 1) /Number of RAID 0 Sets). For RAID 50: ( (Number of Drives In Each RAID 5 Set - 1) / Numberof Drives In Each RAID 5 Set).

    Taking the same examples as above, the 15-drive RAID 05 array would have a storage efficiency of(3-1)/3 = 67%. The first RAID 50 array, configured as three seven-drive RAID 5 sets, would have astorage efficiency of (7-1)/7 = 86%, while the other RAID 50 array would have a storage efficiencyof (3-1)/3 = 67%.

    Fault Tolerance: Same as for RAID 03 and 30. Good to very good, depending on whether it isRAID 05 or 50, and the number of parity drives relative to the total number. RAID 50 will providebetter fault tolerance than RAID 05.

    Consider the two different 21-drive RAID 50 arrays mentioned above: the first one (three seven-drive RAID 5 sets) has higher capacity and storage efficiency, but can only tolerate three maximumpotential drive failures; the one with lower capacity and storage efficiency (seven three-drive RAID5 sets) can handle as many as seven , if they are in different RAID 5 sets. Of course fewapplications really require tolerance for seven independent drive failures! And of course, if those21 drives were in a RAID 05 array instead, failure of a second drive after one had failed and takendown one of the RAID 0 sub-arrays would crash the entire array.

    Availability: Very good to excellent.

    Degradation and Rebuilding: Moderate for RAID 50; worse for RAID 05.

    Random Read Performance: Very good to excellent.

    Random Write Performance: Good.

    Sequential Read Performance: Very good.

    Sequential Write Performance: Good.

    Cost: Relatively high due to requirements for a hardware controller and a large number of drives;storage efficiency is better than RAID 10 however and no worse than any other RAID levels thatinclude redundancy.

    Special Considerations: Complex and expensive to implement.

  • 8/8/2019 RAID Technology the One

    33/36

    Recommended Uses: Applications that require high fault tolerance, capacity and randompositioning performance. Not as widely used as many other RAID levels. Sometimes used insteadof RAID 5 to increase capacity. Sometimes used for large databases.

    RAID Levels 1+5 (15) and 5+1 (51)

    Common Name(s): RAID 1+5 or 15; RAID 5+1 or 51. "Common" is a bit of a stretch with thislevel, as it is less common than probably any other, so it's important to verify the details of eachimplementation.

    Technique(s) Used: Mirroring (or duplexing) combined with block striping with distributed parity.

    Description: RAID 1+5 and 5+1 might be sarcastically called "the RAID levels for the trulyparanoid". :^) The only configurations that use both redundancy methods, mirroring and parity,this "belt and suspenders" technique is designed to maximize fault tolerance and availability, at theexpense of just about everything else. A RAID 15 array is formed by creating a striped set withparity using multiple mirrored pairs as components; it is similar in concept to RAID 10 except thatthe striping is done with parity. Similarly, RAID 51 is created by mirroring entire RAID 5 arraysand is similar to RAID 01 except again that the sets are RAID 5 instead of RAID 0 and henceinclude parity protection. Performance for these arrays is good but not very high for the costinvolved, nor relative to that of other multiple RAID levels.

    The fault tolerance of these RAID levels is truly amazing; an eight-drive RAID 15 array cantolerate the failure of anythree drives simultaneously; an eight-drive RAID 51 array can also handlethree and even as many as five, as long as at least one of the mirrored RAID 5 sets has no morethan one failure! The price paid for this resiliency is complexity and cost of implementation, andvery low storage efficiency.

    The RAID 1 component of this nested level may in fact use duplexing instead of mirroring to addeven more fault tolerance.

    Controller Requirements: Requires at least a high-end controller; may in fact require multiplesystems and/or specialized hardware or software. RAID 51 is sometimes implemented as a "hybrid"of hardware and software RAID, by doing software mirroring at the operating system level over apair of RAID 5 controllers, thus implementing duplexing for even higher fault tolerance. In theorythis could be done with Windows NT software mirroring and a pair of hardware RAID 5 cards, ifyou could set it all up to work together properly.

    Hard Disk Requirements: An even number of hard disks with a minimum of six; maximum

    dependent on controller. All drives should be identical.

    Array Capacity: (Size of Smallest Drive) * ( (Number of Drives / 2) - 1). So an array with ten 18GB drives would have a capacity of 18 GB * ( (10/2) - 1 ) = just 72 GB.

    Storage Efficiency: Assuming all drives are the same size, ( (Number of Drives / 2) - 1 ) / (Numberof Drives). In the example above, efficiency is 40%. This is the worst storage efficiency of anyRAID level; a six-drive RAID 15 or 51 array would have a storage efficiency of just 33%!

  • 8/8/2019 RAID Technology the One

    34/36

    Fault Tolerance: Excellent; by far the best of any level.

    Availability: Excellent.

    Degradation and Rebuilding: Can be substantial.

    Random Read Performance: Very good.

    Random Write Performance: Good.

    Sequential Read Performance: Very good.

    Sequential Write Performance: Good.

    Cost: Very high. An uncommon solution requiring a lot of storage devices for relatively lowcapacity, and possibly additional hardware or software.

    Special Considerations: Complex and very expensive to implement.

    Recommended Uses: Critical applications requiring very high fault tolerance. In my opinion, if youget to the point of needing this much fault tolerance this badly, you should be looking beyondRAID to remote mirroring, clustering or other redundant server setups; RAID 10 provides mostof the benefits with better performance and lower cost. Not widely implemented.

    "Just A Bunch Of Disks" (JBOD)

    If you have some disks in a system that you decide not to configure into a RAID array, what do you do with them? Traditionally, they are left to act as independent drive volumes within thesystem, and that's how many people in fact use two, three or more drives in a PC. In someapplications, however, it is desirable to be able to use all these disks as if they were one single volume. The proper term for this is spanning; the pseudo-cutesy term for it, clearly chosen tocontrast against "redundant array of inexpensive disks", is Just A Bunch Of Disks or JBOD. Howfrightfully clever.

    JBOD isn't really RAID at all, but I discuss it here since it is sort of a "third cousin" of RAID...JBOD can be thought of as the opposite of partitioning: while partitioning chops single drives upinto smaller logical volumes, JBOD combines drives into larger logical volumes. It provides nofault tolerance, nor does it provide any improvements in performance compared to theindependent use of its constituent drives. (In fact, it arguably hurts performance, by making it moredifficult to use the underlying drives concurrently, or to optimize different drives for differentuses.)

    When you look at it, JBOD doesn't really have a lot to recommend it. It still requires a controllercard or software driver, which means that almost any system that can do JBOD can also do RAID0, and RAID 0 has significant performance advantages over JBOD. Neither provide faulttolerance, so that's a wash. There are only two possible advantages of JBOD over RAID 0:

  • 8/8/2019 RAID Technology the One

    35/36

    y Avoiding Drive Waste: If you have a number of odd-sized drives, JBOD will let youcombine them into a single unit without loss of any capacity; a 10 GB drive and 30 GBwould combine to make a 40 GB JBOD volume but only a 20 GB RAID 0 array. Thismay be an issue for those expanding an existing system, though with drives so cheap thesedays it's a relatively small advantage.

    yEasier Disaster Recovery: If a disk in a RAID 0 volume dies, the data on every disk in thearray is essentially destroyed because all the files are striped; if a drive in a JBOD set diesthen it may be easier to recover the files on the other drives (but then again, it might not,depending on how the operating system manages the disks.) Considering that you shouldbe doing regular backups regardless, and that even under JBOD recovery can be difficult,this too is a minor advantage.

    Note: Some companies use the term "spanning" when they really mean striping, so watch outfor that!

    Summary Comparison of RAID Levels

    Below you will find a table that summarizes the key quantitative attributes of the various RAIDlevels for easy comparison. For the full details on any RAID level, see its own page, accessiblehere. For a description of the different characteristics, see the discussion of factors differentiatingRAID levels. Also be sure to read the notes that follow the table:

    RAIDLevel

    Number ofDisks

    CapacityStorageEfficiency

    FaultTolerance

    Availability

    RandomReadPerf

    RandomWritePerf

    SequentialReadPerf

    SequentialWritePerf

    Cost

    0 2,3,4,... S*N 100% none $

    1 2 S*N/2 50% $$

    2 manyvaries,large

    ~ 70-80%

    $$$$$

    3 3,4,5,... S*(N-1)(N-1)/N

    $$

    4 3,4,5,... S*(N-1)(N-1)/N

    $$

    5 3,4,5,... S*(N-1) (N-1)/N $$

    6 4,5,6,... S*(N-2)(N-2)/N

    $$$

    7 varies varies varies$$$$$

  • 8/8/2019 RAID Technology the One

    36/36

    01/10

    4,6,8,... S*N/2 50% $$$

    03/30

    6,8,9,10,...

    S*N0*(N3-1)

    (N3-1)/N3

    $$$$

    05/50

    6,8,9,10,...

    S*N0*(N5-1)

    (N5-1)/N5

    $$$$

    15/51

    6,8,10,...

    S*((N/2)-1)

    ((N/2)-1)/N

    $$$$$

    Notes on the table:

    y For the number of disks, the first few valid sizes are shown; you can figure out the rest fromthe examples given in most cases. Minimum size is the first number shown; maximum sizeis normally dictated by the controller. RAID 01/10 and RAID 15/51 must have an even

    number of drives, minimum 6. RAID 03/30 and 05/50 can only have sizes that are aproduct of integers, minimum 6.

    y For capacity and storage efficiency, "S" is the size of the smallest drive in the array, and "N"is the number of drives in the array. For the RAID 03 and 30, "N0" is the width of theRAID 0 dimension of the array, and "N3" is the width of the RAID 3 dimension. So a 12-disk RAID 30 array made by creating three 4-disk RAID 3 arrays and then striping themwould have N3=4 and N0=3. The same applies for "N5" in the RAID 05/50 row.

    y Storage efficiency assumes all drives are of identical size. If this is not the case, the universalcomputation (array capacity divided by the sum of all drive sizes) must be used.

    y Performance rankings are approximations and to some extent, reflect my personalopinions. Please don't over-emphasize a "half-star" difference between two scores!

    y Cost is relative and approximate, of course. In the real world it will depend on manyfactors; the dollar signs are just intended to provide some perspective.