Udgivet d. 16 Nov. 2001 af:
Bo Krüger Hansen
Introduction
Microsoft recommends to use hardware-based RAID or Windows NT
software-based RAID instead of using segments in SQL Server 6.5.
So, segments are no longer supported in SQL Server 7.0.
In this article, I want to tell you, what you should know about
RAID levels to choose appropriate RAID system for your databases.
RAID is an abbreviation of Redundant Array of Inexpensive Disks
(sometimes write Redundant Array of Inexpensive Drives). This term
was used in a 1988 by David Patterson, Randy Katz and Garth Gibson
in their publication about "A Case for Redundant Arrays of Inexpensive
Disks".
RAID provides real-time data recovery when a hard drive fails,
increasing system uptime and network availability, while protecting
against loss of data. Multiple drives working together can also
increase system performance in several times.
RAID Levels
There are many different ways to implement a RAID array, using some combination of mirroring, striping, duplexing and parity technologies. Several standardized methods were defined in the 1988 Berkeley research publication that is credited with starting the RAID phenomenon; for some (unfortunate) reason, the researchers decided to call these different techniques levels. This was a poor choice of words in my opinion because the word "level" implies hierarchy or revision, or that the different RAID levels are somehow "built upon each other", when in fact, that is not the case. The word "level" implies to some people that "RAID level N+1" is better somehow than "RAID level N". In fact, this isn't really true--the various levels are independent and different, and no strict hierarchy should be inferred from the specific number attached to a RAID level. A given RAID level that is "better" for one person may be "worse" for another.
The original 1988 paper defined RAID levels 1 through 5; since then, single RAID levels 0 and 6 have been added to the mix, and other extensions such as the proprietary RAID 7 have shown up as well. Beyond these single-level RAID designs, a number of multiple RAID levels have been defined, which use two or more of the single RAID levels in combination to create new array types with new capabilities (and limitations). Most of these different RAID levels are in use today in different systems, a testament to the different needs of various RAID users. Some have largely disappeared from the market as experience over time has shown them to be inferior to other levels without advantages to compensate.
In this section I take a detailed look at RAID levels. I start with a discussion of some of the key technical factors that differentiate RAID levels; these are then used to frame the coverage of the RAID levels themselves. I discuss the eight single-level RAID designs, and take a look at several common multiple-level RAID types as well. Each RAID level is discussed in detail and information is provided about over a dozen of its various characteristics, with general recommendations provided for typical uses of each level. Finally, I show a summary comparison table that contrasts the different levels in terms of their benefits and costs.
Tip: Carefully consider all the factors and variables when comparing different RAID levels; sometimes, things are not what they seem. Pay careful attention to the various performance attributes, to help differentiate levels based on how you are most likely to use the array; sometimes the "common wisdom" about different RAID levels will not apply to your needs.
Warning: As I am noticing increasingly these days in all areas of computing, the RAID levels are sometimes not used consistently by manufacturers. For example, I have encountered a significant RAID controller maker that provides support for what they call "RAID 3"; when you examine the details, however, you find that this RAID level is actually implemented as block striping with dedicated parity, which is RAID 4, not 3. Why they did this, I have no idea. An organization called the RAID Advisory Board or RAB does maintain RAID standards and certifies hardware that meets "official" RAID level definitions, so you can look for their "seals of approval". Even so, it's still best to ask for specific technical details about any RAID system if you aren't certain of what the manufacturer has implemented.
Basic RAID Levels:
Basic RAID Levels include six RAID levels, 0 through 5. Each level
offers various mixes of performance, reliability, and cost. Each
level uses a different algorithm to implement fault tolerance.
Following is a brief description of each basic RAID level.
Level 0
RAID level 0 does not provide fault tolerance. This level is also
known as disk striping, because it uses a disk file system called
a stripe set. Data is divided into blocks and is spread in a fixed
order among all the disks in the array. RAID level 0 improves read
and write performance by spreading operations across multiple disks,
so that operations can be performed independently.
Level 1
RAID level 1 provides fault tolerance. This level is also known as
disk mirroring because it uses a disk file system called a mirror set.
Disk mirroring provides a redundant, identical copy of a selected disk.
All data written to the primary disk is written to the mirror disk.
It also generally improves read performance (but may degrade write
performance).
Level 2
RAID level 2 uses error correcting algorithm that employs disk-striping
strategy that breaks a file into bytes and spreads it across multiple
disks. The error-correction method requires several disks. RAID level 2
is more advanced than Level 0, because it provides fault tolerance, but
is not as efficient as other RAID levels and is not generally used.
Level 3
RAID level 3 is similar to RAID level 2, because it uses the same
striping method as level 2, but it requires only one disk for parity
data. RAID 3 suffers from a write bottleneck, because all parity data
is written to a single drive, but provides some read and write
performance improvement.
Level 4
RAID level 4 is similar to RAID level 3, because it uses the similar
striping method as level 3 and requires only one disk for parity
data, but it employs striped data in much larger blocks or segments.
RAID level 4 is not as efficient as RAID level 5, because (as in RAID
level 3) all parity data is written to a single drive, so RAID level 4
suffers from a write bottleneck and is not generally used.
Level 5
RAID level 5 is known as striping with parity. This is the most popular
RAID level. It is similar to level 4 in that it stripes the data in
large blocks across all the disks in the array. It differs in that it
writes the parity across all the disks.
The data redundancy is provided by the parity information. The data
and parity information are arranged on the disk array so that the two
are always on different disks.
RAID level 5 has better performance than RAID level 1 and provides
fault tolerance.
Hybrid RAID Levels:
Some hardware vendors provide hybrid RAID levels combining features
of the original RAID levels. Three of the most common hybrid levels
are RAID level 10, RAID level 30, and RAID level 50.
RAID level 10 is hybrid RAID level that combine mirroring with striping.
RAID level 30 and RAID level 50 are hybrid RAID levels that combine
parity RAID techniques with data striping.
Level 10
RAID level 10 is known as mirroring with striping. This level uses
a striped array of disks, which are then mirrored to another identical
set of striped disks. RAID level 10 provides the performance benefits
of disk striping (level 0) with the disk redundancy of mirroring
(level 1). RAID 10 provides the highest read/write performance of any
of the Hybrid RAID levels, but uses twice as many disks.
Level 30
RAID level 30 is formed by striping across a number of RAID level 3
sub-arrays. In general, it provides performance better than RAID 3
due to the addition of RAID 0 striping, but is not as efficient as
RAID level 0.
Level 50
RAID level 50 is formed by striping across a number of RAID level 5
sub-arrays. In general, it provides performance better than RAID 5
due to the addition of RAID 0 striping, but is not as efficient as
RAID level 0. It also provides better fault tolerance than the single
RAID level 5.
Most of the characteristics of RAID level 50 are similar to those of
RAID level 30.
Back to RAID main page.