RAID (Redundant Arrays of Independent Disks)
Pre-Requisite: Data Redundancy in DBMS
RAID is a technique that makes use of a combination of multiple disks instead of using a single disk for increased performance, data redundancy, or both. The term was coined by David Patterson, Garth A. Gibson, and Randy Katz at the University of California, Berkeley in 1987.
Why Data Redundancy?
Data redundancy, although taking up extra space, adds to disk reliability. This means, in case of disk failure, if the same data is also backed up onto another disk, we can retrieve the data and go on with the operation. On the other hand, if the data is spread across just multiple disks without the RAID technique, the loss of a single disk can affect the entire data.
Key Evaluation Points for a RAID System
- Reliability: How many disk faults can the system tolerate?
- Availability: What fraction of the total session time is a system in uptime mode, i.e. how available is the system for actual use?
- Performance: How good is the response time? How high is the throughput (rate of processing work)? Note that performance contains a lot of parameters and not just the two.
- Capacity: Given a set of N disks each with B blocks, how much useful capacity is available to the user?
RAID is very transparent to the underlying system. This means, to the host system, it appears as a single big disk presenting itself as a linear array of blocks. This allows older technologies to be replaced by RAID without making too many changes to the existing code.
Different RAID Levels
- RAID-0 (Stripping)
- RAID-1 (Mirroring)
- RAID-2 (Bit-Level Stripping with Dedicated Parity)
- RAID-3 (Byte-Level Stripping with Dedicated Parity)
- RAID-4 (Block-Level Stripping with Dedicated Parity)
- RAID-5 (Block-Level Stripping with Distributed Parity)
- RAID-6 (Block-Level Stripping with two Parity Bits)
1. RAID-0 (Stripping)
- Blocks are “stripped” across disks.
- In the figure, blocks “0,1,2,3” form a stripe.
- Instead of placing just one block into a disk at a time, we can work with two (or more) blocks placed into a disk before moving on to the next one.
- Reliability: 0
There is no duplication of data. Hence, a block once lost cannot be recovered.
- Capacity: N*B
The entire space is being used to store data. Since there is no duplication, N disks each having B blocks are fully utilized.
- It is easy to implement.
- It utilizes the storage capacity in a better way.
- A single drive loss can result in the complete failure of the system.
- Not a good choice for a critical system.
2. RAID-1 (Mirroring)
- More than one copy of each block is stored in a separate disk. Thus, every block has two (or more) copies, lying on different disks.
- The above figure shows a RAID-1 system with mirroring level 2.
- RAID 0 was unable to tolerate any disk failure. But RAID 1 is capable of reliability.
Assume a RAID system with mirroring level 2.
- Reliability: 1 to N/2
1 disk failure can be handled for certain because blocks of that disk would have duplicates on some other disk. If we are lucky enough and disks 0 and 2 fail, then again this can be handled as the blocks of these disks have duplicates on disks 1 and 3. So, in the best case, N/2 disk failures can be handled.
- Capacity: N*B/2
Only half the space is being used to store data. The other half is just a mirror of the already stored data.
- It covers complete redundancy.
- It can increase data security and speed.
- It is highly expensive.
- Storage capacity is less.
3. RAID-2 (Bit-Level Stripping with Dedicated Parity)
- In Raid-2, the error of the data is checked at every bit level. Here, we use Hamming Code Parity Method to find the error in the data.
- It uses one designated drive to store parity.
- The structure of Raid-2 is very complex as we use two disks in this technique. One word is used to store bits of each word and another word is used to store error code correction.
- It is not commonly used.
- In case of Error Correction, it uses hamming code.
- It Uses one designated drive to store parity.
- It has a complex structure and high cost due to extra drive.
- It requires an extra drive for error detection.
4. RAID-3 (Byte-Level Stripping with Dedicated Parity)
- It consists of byte-level striping with dedicated parity striping.
- At this level, we store parity information in a disc section and write to a dedicated parity drive.
- Whenever failure of the drive occurs, it helps in accessing the parity drive, through which we can reconstruct the data.
- Here Disk 3 contains the Parity bits for Disk 0, Disk 1, and Disk 2. If data loss occurs, we can construct it with Disk 3.
- Data can be transferred in bulk.
- Data can be accessed in parallel.
- It requires an additional drive for parity.
- In the case of small-size files, it performs slowly.
5. RAID-4 (Block-Level Stripping with Dedicated Parity)
- Instead of duplicating data, this adopts a parity-based approach.
- In the figure, we can observe one column (disk) dedicated to parity.
- Parity is calculated using a simple XOR function. If the data bits are 0,0,0,1 the parity bit is XOR(0,0,0,1) = 1. If the data bits are 0,1,1,0 the parity bit is XOR(0,1,1,0) = 0. A simple approach is that an even number of ones results in parity 0, and an odd number of ones results in parity 1.
- Assume that in the above figure, C3 is lost due to some disk failure. Then, we can recompute the data bit stored in C3 by looking at the values of all the other columns and the parity bit. This allows us to recover lost data.
- Reliability: 1
RAID-4 allows recovery of at most 1 disk failure (because of the way parity works). If more than one disk fails, there is no way to recover the data.
- Capacity: (N-1)*B
One disk in the system is reserved for storing the parity. Hence, (N-1) disks are made available for data storage, each disk having B blocks.
- It helps in reconstructing the data if at most one data is lost.
- It can’t help in reconstructing when more than one data is lost.
6. RAID-5 (Block-Level Stripping with Distributed Parity)
- This is a slight modification of the RAID-4 system where the only difference is that the parity rotates among the drives.
- In the figure, we can notice how the parity bit “rotates”.
- This was introduced to make the random write performance better.
- Reliability: 1
RAID-5 allows recovery of at most 1 disk failure (because of the way parity works). If more than one disk fails, there is no way to recover the data. This is identical to RAID-4.
- Capacity: (N-1)*B
Overall, space equivalent to one disk is utilized in storing the parity. Hence, (N-1) disks are made available for data storage, each disk having B blocks.
- Data can be reconstructed using parity bits.
- It makes the performance better.
- Its technology is complex and extra space is required.
- If both discs get damaged, data will be lost forever.
7. RAID-6 (Block-Level Stripping with two Parity Bits)
- Raid-6 helps when there is more than one disk failure. A pair of independent parities are generated and stored on multiple disks at this level. Ideally, you need four disk drives for this level.
- There are also hybrid RAIDs, which make use of more than one RAID level nested one after the other, to fulfill specific requirements.
- Very high data Accessibility.
- Fast read data transactions.
- Due to double parity, it has slow write data transactions.
- Extra space is required.
Advantages of RAID
- Increased data reliability: RAID provides redundancy, which means that if one disk fails, the data can be recovered from the remaining disks in the array. This makes RAID a reliable storage solution for critical data.
- Improved performance: RAID can improve performance by spreading data across multiple disks. This allows multiple read/write operations to co-occur, which can speed up data access.
- Scalability: RAID can be scaled by adding more disks to the array. This means that storage capacity can be increased without having to replace the entire storage system.
- Cost-effective: Some RAID configurations, such as RAID 0, can be implemented with low-cost hardware. This makes RAID a cost-effective solution for small businesses or home users.
Disadvantages of RAID
- Cost: Some RAID configurations, such as RAID 5 or RAID 6, can be expensive to implement. This is because they require additional hardware or software to provide redundancy.
- Performance limitations: Some RAID configurations, such as RAID 1 or RAID 5, can have performance limitations. For example, RAID 1 can only read data as fast as a single drive, while RAID 5 can have slower write speeds due to the parity calculations required.
- Complexity: RAID can be complex to set up and maintain. This is especially true for more advanced configurations, such as RAID 5 or RAID 6.
- Increased risk of data loss: While RAID provides redundancy, it is not a substitute for proper backups. If multiple drives fail simultaneously, data loss can still occur.
Please Login to comment...