RAID
Definition and Use of the Different RAID Levels
Contents
The different RAID levels: Definition
Cost / Efficiency
Reliability
Performance
Further High Availability Aspects Performance Optimization Features
What is RAID? RAID Levels
Evaluation Criteria for the RAID Levels RAID 0 or Striping RAID 1 or Mirroring RAID 0+1 (1) RAID 0+1 (2) RAID 3 (1) RAID 3 (2) RAID 5 (1) RAID 5 (2) Adaptive RAID 3+5 RAID 6
What is RAID?
RAID(Redundant Array of Independent Disks)
was first defined by Patterson, Gibson, and Katz from the Berkeley University in 1987,
uses logical volumes consisting of several disks.
The RAID leveldefines how the disks are organized,
Depending on the RAID level, the reliabilityand/or the performancewill be improved.
RAID systems can be implemented in software
Operating Systems 2 RAID 3 Chr. Vogt in software
in hardware
RAID controllers
external RAID subsystems
RAID functionality offered by the storage arrays in a SAN (Storage Area Network)
RAID Levels
Originally, five RAID levels were defined: RAID 1: Mirrored disks
RAID 2 H i d f ti
RAID 2: Hamming code for error correction
RAID 3: Single parity disk, bit-interleaved parity
RAID 4: Single parity disk, block-level parity
RAID 5: Data and parity spread over all disks (block-level distributed parity)
Later, further RAID levels were defined: RAID 0: Striped disks (no redundancy)
RAID 0+1: a combination of RAID 0 and RAID 1 (also called RAID 10)
Operating Systems 2 RAID 4 Chr. Vogt RAID 6: dual redundancy using a Reed-Solomon code
Evaluation Criteria for the RAID Levels
The following aspects need to be considered when evaluating the different RAID levels: Space efficiency / cost: How much additional disk space is required?
Space efficiency / cost: How much additional disk space is required? Reliability: How many disks may fail without losing data?
Also: What reliability remains after a disk failure?
Performance:
during normal operation,
after a disk failure,
during the restoration of a failed disk.
Operating Systems 2 RAID 5 Chr. Vogt during the restoration of a failed disk.
In many cases
read and write operations have to be considered separately,
the performance also depends on the size of the I/O.
Restoration: What needs to be done in order to restore the data of a failed disk?
RAID 0 or Striping
For a RAID 0 array with n disks, data is divided into n strips which are written to the disks in a round-robin fashion.
Space efficiency / cost: No redundancy, 100% storage efficiency, no extra cost. Reliability: No redundancy, no reliability.
Performance: Very good, when the disks can work in parallel.
RAID 1 or Mirroring
The same data is written to two or more disks.
Operating Systems 2 RAID 7 Chr. Vogt Space efficiency / cost: 1/n for an n-fold mirror / n times as many disks are needed Reliability: n-1 disks can fail without losing data
Performance: Read performance is improved: read from any disk (in parallel) Write performance is unchanged: parallel writes to all disks Restoration: Copy the data from a remaining disk in the mirror set
RAID 0+1 (1)
RAID 0+1 sometimes is also called RAID 10. It can be built in two different ways:
Mirrored Stripesets Striped Mirrorsets
RAID 0+1 (2)
Reliability:Mirrored Stripesets: Any disk can fail without losing data (2-fold mirroring). A failing disk makes the whole stripe set inaccessible A failing disk makes the whole stripe set inaccessible. Striped Mirrorsets: Any disk can fail without losing data (2-fold mirroring).
1 disk can fail per mirror set in the stripe set. Restoration(of a single failed disk):
Mirrored Stripesets: A whole stripeset needs to be copied from one of the remaining copies in the mirrorset.
Striped Mirrorsets: The data on the failed disk needs to be copied from one of the i i di k i th i t
Operating Systems 2 RAID 9 Chr. Vogt
remaining disks in the mirrorset. RAID 0+1
should always be built as striped mirrorsets,
is the best possible solution when cost is not the main concern.
RAID 3 (1)
For a RAID 3 array with n disks, data
is divided into n-1 strips (typically small ones),
parity information (bitwise XOR) is calculated over the n 1 strips and stored on the n th disk
parity information (bitwise XOR) is calculated over the n-1 strips and stored on the n-th disk.
RAID 3 (2)
Performance:Normal operation:p
Good read performance (disks are accessed in parallel).
Good write performance for large I/O requests (more than n-1 strips), because all disks are accessed in parallel.
Very bad performance for small writes which access only one or a few disks:
read the old data from the disks, which will not be overwritten,
calculate the new parity,
write the new data and the new parity.
After a disk failure: Performance decreases, because the missing data must be restored from the old data and the parity information
Operating Systems 2 RAID 11 Chr. Vogt
restored from the old data and the parity information. In either situation, the single parity disk can become a bottleneck.
Restoration: In order to restore the contents of a failed disk, all remaining disks, including the parity disk, must be read. Hence, there will be a heavy I/O load on the disks during the restoration.
RAID 5 (1)
For a RAID 5 array with n disks, data
is divided into n-1 strips (typically large ones),
parity information (bitwise XOR) is calculated over the n 1 strips
parity information (bitwise XOR) is calculated over the n-1 strips,
the parity information is distributed over the disks.
RAID 5 (2)
Performance:Normal operation:
Good read performance (disks are accessed in parallel)
Good read performance (disks are accessed in parallel).
Because of the big stripe size, I/Os typically only access one or a few disks.
Very bad performance for small writes:
read the old data that is to be changed and the old parity information,
calculate the new parity (from the old data, the old parity, and the new data),
write the new data and the new parity.
After a disk failure: Performance decreases, because the missing data must be restored from the old data and the parity information.
Operating Systems 2 RAID 13 Chr. Vogt Restoration: In order to restore the contents of a failed disk, all remaining disks,
containing data and parity, must be read. Hence, there will be a heavy I/O load on the disks during the restoration.
(Same as with RAID 3.)
Adaptive RAID 3+5
Some vendors claim that their RAID systems (software or hardware) perform adaptive RAID 3 / RAID 5 ti
RAID 3 / RAID 5 operations.
The placement of the parity information is fixed, and cannot be changed dynamically. The adaptation lies in the choice of the write algorithm, depending on the I/O size:
perform large I/Os by writing all data and the parity in parallel,
perform small I/Os by using the algorithm described for RAID 5,
RAID 6
For a RAID 6 array with n disks, data is divided into n-2 strips,
two pieces of parity information are calculated over the n-2 strips (using a Reed-Solomon code),
two pieces of parity information are calculated over the n 2 strips (using a Reed Solomon code),
the parity information is distributed over the disks.
Operating Systems 2 RAID 15 Chr. Vogt Space efficiency / cost: (n-2)/n when using n disks / 2 additional disks are needed Reliability: 2 disks may fail without losing data.
Performance and Restoration: Similar to RAID 5.
Further Aspects for High Availability
RAID sets protect against the loss of data in case of a disk failure.
I dditi i i d t b t k t
In addition, provisions need to be taken to make the access to the data highly available,
improve the performance of I/O operations.
In order to make data access highly available, a RAID system should provide redundant power supplies, fans, etc.
several busses for attaching the disks,
redundant controllers
Operating Systems 2 RAID 16 Chr. Vogt with load balancing for the I/O requests,
with cache takeover in case of a controller failure,
hot-swappable components (disks, power supplies, etc.),
Performance Optimization Features
Caches, which in particular can improve the bad write performance of RAID3 and RAID5 sets. To avoid data inconsistencies („write hole“), caches must be protected with a battery backup.
Load balancing between redundant controllers. In mirrorsets,
load balance the read requests between the disks in the mirrorset,
read from the disk with the optimal head position.
Since I/O performance often depends on the size of the I/Os, a RAID system should gather statistical information about the I/O sizes,
allow the stripe size (or: chunk size) to be adjusted for each RAID set individually
Operating Systems 2 RAID 17 Chr. Vogt allow the stripe size (or: chunk size) to be adjusted for each RAID set individually.
Since restoring a failed disk causes a heavy additional I/O load, it should be possible to decide whether to give preference to
the restore operation, in order to restore redundancy as quickly as possible,