|
Background
RAID was originally an acronym for Redundant Array of Inexpensive
Disks. Each RAID level describes the method in which data
is distributed across a number of disk drives, known as an
array. It must be noted however, that these are not true "levels",
as the higher levels don't contain all the functions of the
lower levels, and RAID 5 is not necessarily better than RAID
3.
The birth of drive arrays effectively started with a paper
published by Berkeley University (CA), this paper classified
the different architectures as RAID levels. The driving force
was to provide minicomputers with high performance drive subsystems
using the (then) newly available low cost 5.25" Winchesters
rather than the very expensive mass storage magnetic drives
used by mainframes. The concept was to provide the required
capacity using multiple 5.25" drives connected as an array;
in effect the drives were operated in parallel to increase
their performance.
The word Inexpensive in RAID's original definition is now
somewhat of a misnomer. The drives used in a RAID solution
tend to be high quality, fast, SCSI devices which are by no
means the cheapest drives available for PCs. Consequently,
the definition of RAID is undergoing a change from Redundant
Array of Inexpensive Disks to Redundant Array of Independent
Disks.
RAID: Redundant Array of Independent Disks
The original Berkeley paper described five RAID levels. Of
these only RAID 1, 3 and 5 are now considered practical solutions.
RAID 2 and 4 have been superseded by RAID 3 and 5 respectively
as they offer similar or superior performance at no additional
cost.
There are other levels of RAID, but of these, only RAID 0
is accepted as an industry standard.
Note: For the purpose of this document, the diagrams
illustrate a RAID solution using either two or four disk drives
- this is not a mandatory requirement. Each RAID solution
should be tailored to the customer's application using the
appropriate number of drives.
The table below give the raid levels supported by the Mylex
RAID controller.
| RAID Level |
Description |
Drives / Channel Min Max
|
| 0 |
Striping. This method significantly increases
disk throughput however does not provide any redundancy.
|
2
|
8
|
| 1 |
Mirroring. This refers to the 100% of duplication
of data from one disk onto another. Each disk contains
a mirror image of the data. |
2
|
2
|
| 5 |
Striping with parity. This method provides
complete data redundancy. All data and parity blocks are
divided between each drive in such away that if a drive
fails or is removed the missing drive can be re-built
using the data and parity information on the remaining
drives. |
3
|
8
|
| 0+1 |
Mylex RAID 6. This is a combination of level
0 and 1. This provides striping and redundancy through
mirroring. |
3
|
8
|
| JBOD |
Just a Bunch Of Drives. Each drive can operate
independently or may be spanned and seen as a single large
drive. No redundancy. |
1
|
1
|
In recent years, the use of computers to store and process
information has risen dramatically. Literally every major
business uses the computer as a tool to compete in industry.
The necessity to use computers to compete has driven the need
for higher performance systems. Rapid access to information
is critical. Equally as important is the safety and availability
of information stored on computer systems.
Redundancy: The key to designing a high availability system
is component redundancy. If a RAID system goes down because
of a single point of failure, it is of limited use in a high
availability environment.
Performance: High data availability is very important, but
not at the expense of performance. RAID system performance
is largely a factor of the RAID controllers design. In particular,
a RAID controller should offer read cache and the ability
to tune a I/O chunk size for different applications. A large
read cache is very important to a RAID systems overall
performance.
The Mean Time Between Failure (MTBF) of the array will be
equal to the MTBF of an individual drive, divided by the number
of drives in the array, because of this the MTBF of an array
of drives would be too low for many applications. However,
disk arrays can be made fault-tolerant by redundantly storing
information in various ways.
There are several types of array architectures, RAID-0 through
RAID-5, as defined in the Berkeley paper, each providing disk
fault-tolerance and each offering different trade-offs in
features and performance. These may be achieved by several
methods.
Types of RAID
There are three primary ways of implementing an array:
- Software-based arrays.
- Bus-based arrays adapters/controllers.
- Subsystem-based external array controllers.
Software Based Array
Primarily used with entry level servers. These type of arrays
rely on the use of a standard host adapter and execute all
commands relevant to the operation of the array in the host
server cpu. This can slow down system performance by increasing
host PCI bus traffic, CPU utilisation and CPU interrupts.
Some network operating systems such as NT and Novell include
the software for such implementation.

Bus Based Array
This system uses a dedicated array controller that plugs
into the host systems bus slot. All of the relevant array
commands are performed by secondary processors on the controller.
In addition to offering the fault-tolerance benefits of RAID,
bus based array controllers perform connectivity functions
that are similar to standard host adapters. By residing on
the host bus they provide the highest performance of all array
types. Extra memory and battery back-up modules may be fitted
to these controllers.

External Array Controllers.
SCSI to SCSI array uses a standard host adapter to connect
to an external array controller. The external controller has
its own processor and memory that provides high performance.

RAID Levels
RAID-0
RAID-0 does not provide any data protection. Instead, its
purpose results from the need for fast data availability.
The technique used in a RAID-0 solution is called stripping.
Stripping is performed at a block level in RAID-0, but without
data redundancy. If any drive should fail, the entire array
will fail and data will be lost up to the last system backup.
RAID 0 was not described by the Berkeley team but due to
its wide availability has since been endorsed by the RAID
Advisory Board (RAB). RAB is an association of suppliers and
consumers of RAID related products and other organisations
with an interest in RAID technology set up to standardise
RAID related terminology throughout the industry.
RAID 0, also known as disk striping, works by segmenting
a user file into 'data blocks' and then writing the blocks
sequentially across the drives in the array.
Disk striping offers excellent performance by transferring
data using several disks at once. However, in this configuration
only one copy of the data is stored, and therefore no fault
tolerance is achieved. In fact this method is even more open
to data loss; when four drives make up a single logical drive,
that logical drive is four times more likely to fail than
a single physical disk. Strictly speaking RAID level 0 is
not a RAID at all as there is no redundancy.
RAID 0 can be implemented on any NetWare or Windows NT system
with more than 1 hard disk, without the introduction of any
special hardware. Under NetWare this option is called "Spanning
a volume" and is achieved when creating a new volume either
at installation time or when adding another drive. Under Windows
NT 3.5 this is a standard feature of the Disk Administrator
and is called "Create Stripe Set".

RAID-1
The simplest approach to high reliability is to provide redundancy,
which means that each volume has a secondary, duplicated copy.
Each write is done to the primary and to the secondary volume.
However, this simplest option is also the most expensive one,
because it doubles costs. In addition, the throughput is lower
because of higher control unit use. RAID-1 can employ "seek
optimisation" that is, the control unit can choose
between two disks that contain the same data. By choosing
the volume that results in the shorter latency delay, the
average service time can drop
RAID 1 is also known as mirroring or shadowing. In its simplest
form two disks are connected to a single controller, and as
data is written to one disk the same information is also written
to the mirrored disk. If one drive fails, the system continues
to run using data from the remaining drive. However, if the
controller fails, both drives fail and the system is down.
To overcome this, two controller cards can be used, which
is a method known as duplexing.
The biggest disadvantage of mirroring is its cost. With each
active drive duplicated exactly, there is 50 percent data
redundancy and twice the cost of the same system with no mirroring.
Again, RAID 1 can be implemented on any NetWare or Windows
NT system with more than 1 hard disk, without the introduction
of any special hardware.

RAID-0/1

This is a mixture of both RAID-1 and RAID-0. It allows for
data stripping and mirroring.
RAID-2
The technique of error correction by hamming code, used in
RAID-2, has long been used in semiconductor memory. Here,
along with the 64 data bits, an additional 8 bits of ECC (Error
Correction Code) codes are stored. It is impractical to implement
the same algorithm on SCSI clusters. Consequently RAID-2 remains
of academic interest only.
RAID-3
With RAID-3, the data is stripped in parallel across several
disks, and error correction information is stored on a dedicated
disk called a "parity disk". The striping can be performed
on a block, byte or bit level. The advantage of this model
lies in its high potential data rate and low number (one)
of parity devices. The main disadvantage is that the entire
cluster is seen as a single device. Because RAID-3 is most
suitable for applications that write or read large sequential
data files and require high data transfer rates (for example,
numerically intensive computing, modelling, visualisation
and fluid dynamics). RAID-3 is not very useful for commercial
transaction processing.
RAID 3 employs a technique called 'disk striping with redundancy'.
This offers the advantage of disk striping but without the
very high level of data redundancy and cost of mirroring.
It provides data redundancy by producing 'parity' data that
is stored on a dedicated drive referred to as the parity drive.
Parity data is created by applying complex mathematical calculations
to the original data which extract relevant bits of information
that can be stored using a fraction of the space used by a
mirror image. In the event of a drive failure, this parity
information can be used to reconstruct the original data.
The disadvantage with this technique is that every time a
write occurs, parity information must be stored to a single
disk. The idea of introducing "Striping" is so that when a
system is under heavy load, the writes are spread across a
number of drives in parallel, implementing RAID 3 therefore
reduces the performance of the system by having only a single
drive for parity.
RAID-4
The RAID-4 model improves performance of small transfers.
A block of information is written to a single disk, and error
correction is stored on a dedicated parity drive. Writing
new data means writing new parity information but it is not
mandatory to calculate the error correction information by
reading the whole disk.
RAID-5

RAID-5 removes the bottleneck of RAID-4 by distributing the
data and parity over the drives within the group. If a group
contains three 1.0GB drives, the group data capacity will
be 2.0GB, user data and error correction data will be interleaved
and striped across all disks. To avoid all mix-up RAID-5 does
not necessarily mean that 5 disks are needed, dependent of
the vendor of the RAID system, a minimum of three disks are
required. This system is considered most suitable for transaction
processing in commercial applications
RAID 5 combines data striping and the storing of parity data
on all drives, as opposed to one dedicated parity drive. This
option requires a minimum of three hard disk drives.
RAID 5 and RAID 3 are very similar in terms of the benefits
they offer, their cost implications and the way in which they
function. However, there are some fundamental differences
that make them suitable for very different applications.
The process of storing parity data across a number of drives,
rather than one dedicated parity drive, alleviates the bottleneck
created by many parity write requests being directed to one
drive.
In a RAID 5 configuration the amount of data actually stored
on each individual drive during the data striping process
is larger than in RAID 3. Consequently requests are typically
serviced from one drive, as opposed to several drives, and
thus the potential competition for access to one drive is
minimised. Due to this process RAID 5 is particularly effective
for applications which access a high number of small files
such as large databases and transaction processing systems
(which most network users will be running). In contrast, RAID
3 is particularly effective for applications such as image
processing which access large files.
RAID-6
RAID 6 is very similar to RAID 5, except that it stores two
copies of the parity data rather than one, with each copy
being written to a separate drive. This feature significantly
improves reliability as three disks in the array must fail
for data to be lost; however, the write performance is the
lowest of all RAIDs.
It should be noted that some manufacturers use the term RAID
6 to define the combination of RAID 0 & 1.
RAID-10
Level 10, usually pronounced "one zero", combines the features
of RAID level 0 (striping) and RAID level 1 (mirroring) to
produce a system with very high performance and high data
reliability, but at a relatively high cost.

Questions and Answers
Q. What does RAID stand for ?
A. RAID stands for Redundant Array of Inexpensive Disks,
or more recently Redundant Array of Independent Disks
Q. Why is RAID beneficial ?
A. It can provide an increased degree of fault tolerance
to prevent loss of information in the event of a failure of
the storage sub-system.
Q. Are there different types of RAID implementation ?
A. There are 6 main types of RAID, known as levels 0 to 5,
although in practice only levels 0, 1, 3, and 5 are used.
Q. Is one particular type of RAID best ?
A. The simple answer is 'no'. The most suitable implementation
depends on the type of data that is likely to be processed.
Q. Which RAID implementation is best for each type of data
? A. In general RAID 0 is used where speed is the only consideration
as no redundancy is provided. RAID 1 is excellent where the
need for reliability and speed are paramount; however, the
cost of data storage cannot be a consideration since the amount
of disk space is doubled. RAID 5 is best where there are small
files with a lot of disk I/O such as large databases or transaction
processing systems.
Hot Swap
Hot Swap is not a facility offered by RAID but is dependant
upon the server itself. It requires the ability to power down
each hard disk drive independently without shutting down the
server. Once the drive is powered down then the it can be
removed without putting too much electrical interference on
the, still active, SCSI bus.
Hot Standby
This is a facility provided by the RAID controller card.
If an additional disk is placed on the SCSI bus but is not
used for any data, then in the event of one of the other drives
failing, the data and parity information is recreated onto
the "spare" drive thus allowing for more than one drive to
fail without data loss.
Disk Failure Warning
With RAID hardware and software installed, it is possible
to continue normal operation in the event of a disk failure
to rectify faults without downing the server.
However, in any RAID scenario, whilst the system is running
in "degraded" mode (ie. one of the disks has failed and it
has not yet updated any hot spare drives that may be available)
switching off the wrong drive can cause data loss.
It is vital that all hardware engineers who may need to
change drives in a RAID system have training on what effects
removing the wrong drive can have.
|