|
RAID (Redundant Array of Independent Disks) also (originally)
known as Redundant Array of Iinexpensive Disks was first
defined by computer scientists at Berkeley (University
of California) around 1987. The scientists were studying
the possibility of using two or more hard drives to
appear as a single device to host systems.
There
are many RAID levels defined today in order to achieve
a mix of enhanced performance an increased reliability.
The only exception is RAID 0, the bastard child of RAID
as described sometimes. The "0" says it all,
it is not redundant and even worth, it increases failure
risks! RAID 0 is a straight stripe configuration with
no parity information meaning that if you lose a drive
from the array, you lose all the data (with 4 drives
in RAID 0 configuration, you have 4 times the chance
to lose your data!). The only benefit of RAID 0 is performance.
With RAID 0, you have an increased read/write speed
as well as a faster random access time. Using RAID 0
for performance requires to keep data backups as all
drives break as they wear out.
While
most original RAID systems were running on RAID 0,1
or 5, there are many RAID level defined and used today:
- RAID
0: Data striping without data redundancy.
Drives: 2+
Strength: performance increase when the number
of parallel hard drives.
Weakness: Failure risk increase with the number
of parallel hard drives.
- RAID
1: Disk mirroring.
Drives: 2+ (must grow evenly)
Strength: Read performance is improved since
either disk can be read at the same time. Write performance
is the same as for single disk storage hwereas other
resiliency solution tend to slow write operations.
Weakness: High resiliency cost because all
data has to be duplicated and twice the storage capacity
is required.
- RAID
2: No practical use in disk array technologies.
Uses striping across disks with disks storing error
checking and correcting (ECC) information. RAID 3
provide the same capability at a lower cost.
- RAID
3: Byte-level data striping with dedicated parity
drive.
Uses striping and dedicates one drive to storing parity
information. Data recovery is accomplished by calculating
the exclusive OR (XOR) of the information recorded
on the other drives. I have not seen any system using
RAID 3!
Drives: 3+
Strength: Excellent performance for large,
sequential data requests.
Weakness: Since an I/O operation addresses
all drives at the same time, RAID-3 cannot overlap
I/O.
- RAID
4: Block-level data striping with dedicated parity
drive.
Uses large stripes so you can read records from any
single drive. This allows to take advantage of overlapped
I/O for read operations. Since all write operations
have to update the parity drive, no I/O overlapping
is possible. I have not seen any system using RAID
4!
Drives: 3+
Strength: Data striping offers multiple simultaneous
read requests.
Weakness: Write requests suffer from the same
single parity-drive bottleneck as RAID 3 and RAID
5.
- RAID
5: Block-level data striping with distributed
parity.
This type includes a rotating parity array addressing
write limitations of RAID 3 & 4. RAID-5 stores
parity information used to reconstruct data in case
of loss. It's best for multi-user systems in which
performance is not critical or which do few write
operations.
Drives: 3+ (5 often recommended)
Strength: All read and write operations can
be overlapped and provides one of the best cost/performance
ratio for transaction-oriented networks.
Weakness: Write performance is slower than
RAID 0 or RAID 1.
- RAID
6: Block-level data striping with dual distributed
parity.
Similar to RAID-5 but includes a second parity scheme
that is distributed across different drives to offer
high fault-tolerance.
Drives:
4+
Strength: Even more resilient than RAID 5 allowing
2 drives to fail without loosing data.
Weakness: Expensive and slow rebuild after
failure due to the dual parity.
- RAID
7: Asynchronous, cached striping with dedicated
parity.
Non-Industry standard technology and rarely found
on the market (Storage Computer Corporation trademark).
RAID 7 is based on concepts used in RAID 3 & 4,
but greatly enhanced to address some of the limitations.
Uses cache arranged into multiple levels, and a specialized
real-time processor for managing the array asynchronously.
- RAID
10 (1+0 or 0+1):
Mirroring and striping without parity.
Combining RAID 0 & 1 (often referred to as RAID
10) to offer higher performance than RAID 1 at much
higher cost. In RAID 0+1, data is organized as stripes
across multiple disks, and then the striped disk sets
are mirrored. In RAID 1+0, the data is mirrored and
the mirrors are striped.
Drives: 4+ (must grow evenly)
Strength: One of the best performance accross
the board (better performance than that comes at a
higher cost).
Weakness: High cost and low storage efficiency.
- RAID
50 (5+0): Block striping with distributed parity
combined with block striping.
RAID 0+5 is a RAID 5 array comprised of a number of
striped RAID 0 arrays and is less commonly seen than
RAID 5+0, which is a RAID 0 array striped across RAID
5 elements. Improves RAID 5 performance without reducing
data protection.
Drives: 6+ (Grow in multiples of the primary
RAID technology used)
Strength: Very good performance and resiliency
(the number of simultaneous drive failures depend
on the implementation).
Weakness: Complex and expensive to implement.
- RAID
53 (5+3 or 0+3 or 3+0): Byte striping with dedicated
parity combined with block striping.
It should be named RAID 0+3 (03) or RAID 3+0 (30).
Instead, the number 53 is often used in place of 03
and worse, 53 is often actually implemented as 30,
not 03. This type uses striping (RAID 0 style) for
RAID 3's virtual disk blocks. It offers higher performance
than RAID 3 but at much higher cost.
Drives: 6+ (Grow in multiples of the primary
RAID technology used)
Strength: Very good performance and resiliency
with better storage efficiency than RAID 10.
Weakness: Complex and expensive to implement.
- RAID
51 (5+1 or 1+5): Mirroring/Duplexing combined
with block striping with distributed parity.
RAID 1+5 or 5+1 is for the truly paranoid. The
only configurations using both mirroring and parity
designed to maximize fault tolerance and availability
at the expense of just about everything else. A RAID
1+5 array is a striped set with parity using multiple
mirrored pairs as components and a RAID 5+1 is created
by mirroring entire RAID 5 arrays. An 8-drive RAID
1+5 array can tolerate the failure of any three drives
simultaneously and an 8-drive RAID 5+1 array can also
handle the failure of three to as many as five drives,
as long as at least one of the mirrored RAID 5 sets
has no more than one failure!
Drives: 6+ (must grow evenly)
Strength: Best resiliency possible.
Weakness: Complex and expensive to implement
for a low storage efficiency.
- RAID
S:also known as Parity RAID is an alternate, proprietary
method for striped parity RAID from EMC Symmetrix
that is no longer in use on current equipment. Appears
to be similar to RAID 5 with performance enhancements
using technologies such as high-speed disk cache on
the disk array.
Based
on my recent NAS (Network Area Storage) purchase experience,
I discovered a new kind of "hybrid" RAID technology
called X-RAID from Infrant. X-RAID is Infrant Technologies
patent-pending Expandable RAID technology, allowing
users to add drives at their leisure into their NAS
arrays. You can start with one disk with no resiliency
and add a second disk later to gain disk failure protection.
Add a third to automatically double the capacity while
maintaining protection. Finally, add a fourth disk to
triple the protected capacity, all without reconfiguring
the system and without having to shuffle data in and
out of the device. As described for their ReadyNAS product
line:
- 1
Drive = NAS
- 2
Drives = NAS + RAID Protection
- 3
Drives = NAS + RAID Protection + Double Capacity
- 4
Drives = NAS + RAID Protection + Triple Capacity
Not
only that, you can replace all four disks (one by one)
to increase capacity, X-RAID do all the RAID level and
data migration in the background so you still see just
one volume with all your data intact, just with more
free space.
There
are 3 type of array implementations:
- Software-based
arrays
- Low price.
- Only requires a standard controller.
- Bus-based
array adapters/controllers
- Requires a hardware controller to be hosted.
- More robust fault-tolerant features.
- Increased performance versus software-based RAID.
- Subsystem-based
external array controllers
- OS independent.
- Dedicated high performance systems including large
amount of cache.
- Can support large amount of simultaneous host operations.
- Super high-capacity storage systems for high-end
servers.
There
are many critics regarding software based RAID controllers
but it is important to note that all RAID code is based
on software. The difference among the solutions is where
that software code is executed: on the host CPU (software-based
arrays) or off-loaded to an on-board processor (bus-based
and external array controllers). Software-based arrays
will be performing as well/bad as the host server.
|