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 Operating Systems 2 RAID 2 Chr. Vogt
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 Further Aspects for High Availability Performance Optimization Features
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 level defines how the disks are organized, Depending on the RAID level, the reliability and/or the performance will be improved. RAID systems can be implemented in software in hardware RAID controllers external RAID subsystems RAID functionality offered by the storage arrays in a SAN (Storage Area Network) Operating Systems 2 RAID 3 Chr. Vogt RAID Levels Originally, five RAID levels were defined: RAID 1: Mirrored disks 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) RAID 6: dual redundancy using a Reed-Solomon code Only RAID 0, RAID 1, RAID 0+1, RAID 5, and RAID 6 are commonly used today. Operating Systems 2 RAID 4 Chr. Vogt
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? 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. 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? Operating Systems 2 RAID 5 Chr. Vogt 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: Performance: No redundancy, 100% storage efficiency, no extra cost. No redundancy, no reliability. Very good, when the disks can work in parallel. Depends on the stripe size, the I/O size, and on the number of simultaneous requests. Operating Systems 2 RAID 6 Chr. Vogt
RAID 1 or Mirroring The same data is written to two or more disks. Space efficiency / cost: Performance: Restoration: 1/n for an n-fold mirror / n times as many disks are needed n-1 disks can fail without losing data Read performance is improved: read from any disk (in parallel) Write performance is unchanged: parallel writes to all disks Copy the data from a remaining disk in the mirror set Operating Systems 2 RAID 7 Chr. Vogt 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 Space efficiency / cost: 1/2 (when using 2-fold mirrors) / twice as many disks are needed Performance: As with RAID 0 Operating Systems 2 RAID 8 Chr. Vogt
RAID 0+1 (2) Mirrored Stripesets: Striped Mirrorsets: Any disk can fail without losing data (2-fold mirroring). A failing disk makes the whole stripe set inaccessible. 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 remaining i 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. Operating Systems 2 RAID 9 Chr. Vogt 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. Space efficiency / cost: (n-1)/n when using n disks / 1 extra parity disk is needed 1 disk may fail without losing data Operating Systems 2 RAID 10 Chr. Vogt
RAID 3 (2) Performance: Normal operation: 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. 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. Operating Systems 2 RAID 11 Chr. Vogt 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, the parity information is distributed over the disks. Space efficiency / cost: (n-1)/n when using n disks / 1 additional disk is needed 1 disk may fail without losing data Operating Systems 2 RAID 12 Chr. Vogt
RAID 5 (2) Performance: Normal operation: 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. 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.) Operating Systems 2 RAID 13 Chr. Vogt Adaptive RAID 3+5 Some vendors claim that their RAID systems (software or hardware) perform adaptive 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, where large large and small small must be seen in relation to the chunksize. Operating Systems 2 RAID 14 Chr. Vogt
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), the parity information is distributed over the disks. Space efficiency / cost: (n-2)/n when using n disks / 2 additional disks are needed 2 disks may fail without losing data. Performance and Restoration: Similar to RAID 5. Operating Systems 2 RAID 15 Chr. Vogt Further Aspects for High Availability RAID sets protect against the loss of data in case of a disk failure. In addition, provisions i 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 with load balancing for the I/O requests, with cache takeover in case of a controller failure, hot-swappable components (disks, power supplies, etc.), hot spare disks to reduce the time during which a disk is missing from a RAID set. Operating Systems 2 RAID 16 Chr. Vogt
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. 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, the application I/Os, in order to affect the applications as little as possible. Operating Systems 2 RAID 17 Chr. Vogt