UFS Explorer
HomeContact
  Solutions Products Services Download Order Knowledge Base Support
Knowledge Base
 
 

RAID: Data organization and recovery

    

Different RAID levels apply different data organization techniques to best serve different purposes. Each level of RAID systems has its own advantages and disadvantages in performance and operation.

Data recovery chances from complex RAID systems depend much on the level of RAID array and actual causes of data loss and RAID failure, if applicable. Nevertheless, you may influence the situation and increase data recovery chances in that you choose efficient and reliable data recovery software that works with any RAID level and is capable of resolving even complicated tasks.


Contents

RAID array terms

Technical information concerning RAID arrays is generally provided in special terms that describe these types of storages. Below you will find most commonly used terms referred to complex RAID storages.

  • RAID - Redundant Array of Independent Disks. The term denotes a storage scheme where a set of independent storages is combined into one. Depending on actual data organization of the storage, this scheme increases its stability, performance and/or reliability.

  • Hardware RAID - hardware-driven RAID. Hardware RAID consists of RAID controller chip or board that operates the array and a set of attached disks. Operating system detects complex RAID storage as one solid storage device. Data are operated by hardware controller and can be configured with its BIOS settings.

  • Software RAID - software-driven RAID. Software RAID doesn't employ any hardware and is created on a set of independent storage units by OS. Operating system detects software RAID storage as one solid storage device. Data are operated by OS drivers that use CPU time and don't require additional hardware (e.g. NT LDM software RAIDs, Linux, BSD, Mac OS RAIDs such as LVM/LVM2 or MD).

  • Virtual RAID - hardware or software RAID virtually reconstructed from its components. This is a virtual storage created by data recovery software to simulate original RAID storage for data recovery purposes.

  • RAID Component (unit) - disk or disk partition used as a data storage for RAID storage.

  • Mirroring - data organization technique based on data replication onto separate units. Mirror creates a complete copy of one unit and uses another unit to store this copy. This ensures high fault-tolerance: If one unit fails there remains another copy of data located on another unit(s) of this RAID. Mirroring technique is implemented in RAID level 1.

  • Striping - data organization technique based on distribution of data fragments among units. Data striping allows to significantly increase Input/Output (I/O) performance of RAID storage. Data on RAID are divided into small parts (stripes) and distributed across all available units. Striping speeds up storage performance due to parallel reading/writing to all units independently. Striping is implemented in RAID level 0.

  • Parity - data organization technique based on adding a bit of data from different RAID units to a separate unit. Parity allows to increase fault-tolerance of a storage: Should any of drives fail, the contents of the failed drive can be reconstructed on a replacement drive by subjecting the data from the remaining drives but on condition that no more than one drive fails.

  • Reed-Solomon code - error-correcting algorithm based on Galois Algebra. Reed-Solomon code allowed to increase reliability of RAID storage. This algorithm is used in RAID level 6.



RAID array types (levels)

Levels of RAID storages differ in data organization techniques implemented in it. Below you will find detailed description of most widely used RAID types with information as to advantages and disadvantages of each level.


RAID, level 0 (RAID0, data striping)

RAID level 0 is the best example of data striping as it is. The term RAID – Redundant Array of Independent Disks – doesn't actually explain the functionality of this RAID level because it doesn't employ redundancy at all. This type of storage may consist of two and more units. Stripes are defined as data fragments where each next data stripe is located on subsequent storage unit.


RAID0 stripes

Figure 1. Stripes organization on RAID 0 (2 units)

Figure 1 shows data striping employed in RAID 0. Such data organization scheme allows to speed-up I/O operations up to U times (where U is the number of units in RAID0). This is achieved by sending concurrent or consequent I/O requests to different units (usually different hard disks). For example, to read stripes 0..3 (data segment with size of 4 stripes) the controller sends 2 concurrent read requests: to read two first stripes from Unit 1 and two first stripes from Unit 2. Units do physical reading simultaneously and the controller gets the result two times faster.

This method of data organization allows to use almost the whole storage space for data leaving no redundancy on data area. However, the capacity of RAID 0 storage is sometimes less than the sum of sizes of individual units because the controller can reserve some storage space for 'own technical needs' or due to different size of storage units that makes the controller use as much space of each unit as the smallest unit has.

Advantages of RAID, level 0:

  • Extremely high performance in both read and write;

  • Simple implementation (even most on-board SATA controllers support RAID 0);

  • Up to 100% disk space is used for data;

  • The most cost-efficient RAID solution.


Disadvantages

  • Absence of fault-tolerance: Failure of a single unit causes data loss.

Recovery perspectives

  • Controller failure/disassembled array: With information as to stripe size and units order you can easily recover lost data.

  • Damaged unit: As soon as any of the units becomes unreadable, data recovery for subsequent data segments laying beyond the StripeSize*(UnitsCount-1) is impossible.


RAID, level 1 (RAID1, data mirroring)

RAID level 1 implements the technology of data mirroring. Mirroring creates an exact copy of the data and stores it on a separate disk dedicated for this. The capacity of RAID1 equals to the size of the smallest storage unit minus the space that can be reserved by the controller. When the controller reads data from RAID 1 it can send requests to any of the disks to speed-up I/O operation. Write operation works either in parallel mode (to both disks simultaneously – faster) or consequently (onto one disk after another – fault-tolerant). RAID 1 doesn't employ data segmentation.

Advantages of RAID, level 1:

  • Fast read operations;

  • Increased fault-tolerance;

  • Continuing operation even at least one mirror disk remains (in 'degraded mode');

  • One of the most available solutions supported by most on-board SATA controllers.

Disadvantages

  • The most inefficient use of disk space;

  • Slow write operation.

Recovery perspectives

  • Controller failure/disassembled array: easy to recover all data from any unit;

  • Damaged unit: data can be recovered from any readable unit.


RAID, level 4 (RAID4, stripe set with dedicated parity)

RAID 4 is the first, and successful enough, attempt to compromise between fault-tolerance, speed and cost. The technique implemented in RAID 4 bases on usual Stripe Set (like in RAID 0) extended with one more dedicated unit to store parity information for error control. This array may consist of 3 or more disks. Actually, this scheme of data storing is also implemented in RAID level 3 with the difference in striping method that is byte-level for RAID3 and block (sector) level for RAID 4.



RAID4 stripes

Figure 4. Stripe Set with dedicated parity (RAID 4)

Figure 4 displays the method how fault-tolerance works. Stripe set stores actual RAID data. Each 'column' of stripes is summed with XOR to achieve parity.

RAID 4 has such features common with RAID 0 as fast read operations and large storage capacity, at the same time this RAID level incorporated its own feature of extended internal error correction. If some stripe becomes unreadable, the controller is capable to reconstruct it basing on information of other stripes and parity. The disk dedicated for parity is not used for data storage rather as a backup unit.

Advantages of RAID, level 4:

  • Extra-fast read operations;

  • High fault-tolerance;

  • RAID may operate in 'degraded mode' if one of the disks fails, basing on parity;

  • Efficient solution in respect of cost vs. fault tolerance.


Disadvantages

  • Remarkably slow write operations: any write/update operations require updates of parity information on one dedicated disk;

  • Slow read operations in degraded mode due to high load on the parity unit.

Recovery perspectives

  • Controller failure/disassembled array: easy to recover all data. N-1 disks required, data disks are preferred (to build virtual RAID 0); information about disk order and stripe size is required;

  • Damaged unit: recovery chances are near 100% if no more than 1 disk fails. If 2 or more disks fail there occurs the same problem as with RAID 0.


RAID, level 5 (RAID5, stripe set with distributed parity)

Presently, RAID5 is the best compromise between fault-tolerance, speed and cost. The technique deployed in RAID5 is based on usual Stripe Set (like in RAID 0) that in this level mixes data and parity information. Like RAID 4 it requires at least 3 disks but has no dedicated disk to store parity information that doesn't create such 'queue' for parity updates during write operations.

Depending on the purpose, implementation, vendor and other factors RAID level 5 may differ in the methods of parity distribution across the stripe set. Among the most common are: Left-symmetric (backward dynamic parity distribution), Right-symmetric (forward dynamic parity distribution), Left-asymmetric (backward parity distribution) and Right-asymmetric (forward parity distribution).



RAID5 left symmetric

Figure 5. Left Symmetric parity distribution (RAID 5)

RAID5 left asymmetric

Figure 6. Left Asymmetric parity distribution (RAID 5)

RAID5 right symmetric

Figure 7. Right Symmetric parity distribution (RAID 5)

RAID5 right asymmetric

Figure 8. Right Asymmetric parity distribution (RAID 5)

Fault-tolerance is achieved by the same means as in RAID 4: the stripe set stores actual data and parity information; each column of stripes is summed into a parity stripe of the column.

RAID5 combines features of RAID 0 (fast read operations and large capacity) and RAID 4 (extended internal errors correction). If a stripe becomes unreadable the controller is capable to reconstruct it basing on other stripes and parity information. Actual capacity of RAID5 storage is (U-1) * (min(unit size) – Reserved).

Advantages of RAID, level 5:

  • Extra-fast read operations;

  • Fast write, but depends on data and parity distribution method;

  • Fault-tolerance;

  • RAID may operate in 'degraded mode' if one disk fails;

  • Efficient solution in respect of cost vs. fault tolerance.

Disadvantages

  • Slower write operations than in RAID 0;

  • Speed of write operations depends on the content and parity distribution method.

Recovery perspectives

  • Controller fault/disassembled array: easy to recover all data. All undamaged disks preferred, but N-1 required; information about disk order, stripe size and parity distribution method is required;

  • Damaged unit: recovery chances are near 100% if no more than 1 disk fails. If 2 or more disks fail there occurs the same problem as with RAID 0.


RAID, level 6 (RAID6, stripe set with double distributed parity)

Reliable and at the same time cost-efficient data storage solution. RAID6 was created with the aim to extend RAID5 with one more stripe for data redundancy. For this purpose they used Reed-Solomon Code algorithm based on Galois field algebra. This technique allowed to add one more unit for data redundancy and to efficiently correct disk errors.
Data organization on RAID 6 is similar to RAID5: data and parity (P-stripe) are distributed across storage units. The difference lays in additional stripe (Q-stripe) located along with P-stripe and containing GF sum of data.
For more information about RAID6 and Q-stripe algorithms, please, refer to http://www.cs.utk.edu/~plank/plank/papers/CS-96-332.html

Advantages of RAID, level 6:

  • Extra-fast read operations;

  • Fast write operations, but depends on data and parity distribution method;

  • High fault-tolerance;

  • RAID may operate in 'degraded mode' if one disk or even 2 disks fail;

  • Efficient solution in respect of cost vs. fault tolerance.


Disadvantages

  • Slower write operations than in RAID 0;

  • Speed of write operations depends on the content and parity distribution method.

Recovery perspectives

  • Controller fault/disassembled array: easy to recover all data. All undamaged disks preferred, but N-1 or N-2 required; information about disk order, stripe size and parity distribution method is required;

  • Damaged unit: recovery chances are near 100% if no more than two disks fail. If more than 2 disks fail there occurs the same problem as with RAID 0.


Nested RAID: level 0+1, level 10, level 50, level 51 etc.

Nested RAID implementations based on RAID 0, level 5 and level 1 appeared to enhance performance capabilities of RAID systems. RAID level 0+1 uses a mirror of stripe sets to increase fault-tolerance without affecting storage performance. RAID level 10 employs an extension of stripes to mirror the data what improved performance capabilities and increased use of storage capacity. RAID level 0+1 and level 10 require at least 4 disks. RAID 50 is a stripe set of RAID5 storage created for performance reasons and RAID51 is a mirror of RAID5 created for fault-tolerance (these ones require at least 6 disks to be built). Below you will find examples for RAID 0+1 and RAID 10.



RAID01 stripes

Figure 2. Data organization on mirror of stripes (RAID 0+1; 6 units)

RAID10 stripes

Figure 3. Data organization on stripe of mirrors (RAID 10; 6 units, 2x3 mirrors)

Advantages of nested RAIDs:

  • Increased speed or fault-tolerance;

  • RAID may operate in degraded mode;

  • RAID 10 and RAID 0+1 are the most available solutions (some on-board controllers support these RAID types).


Disadvantages

  • Expensive solution as much disk space is used for mirrors;

  • Hard to manage/maintain.

Recovery perspectives

  • Controller failure/disassembled array: easy to recover all data;

  • Damaged unit: recovery chances are near 100% if it's possible to virtually assemble at least one stripe set (RAID10, RAID50) or at least one mirror instance (RAID 0+1, RAID 51).



Data Recovery

Taking into account data recovery chances described above and using efficient software specialized on recovery and reconstruction of RAID systems you can easily recover the data from your RAID storage by yourself. You will need the following information to start RAID scan:

  • RAID level;

  • Scheme of RAID layout across the units;

  • RAID parameters – units order, stripe size, parity distribution (if applicable).


After recovery operation is completed you may save image file of your RAID storage to a safe location and load it into data recovery software for further analysis.
We recommend UFS Explorer RAID Recovery as an efficient software specialized on RAID systems. This application supports virtual reconstruction and data recovery from:

  • RAID arrays levels 0, 1, 0+1, 10, 4, 5, 6, 50, 51, RAID 7 (hardware variation of RAID 4);

  • Degraded RAID arrays level 1, 0+1, 10, 5 and 6;

  • File systems used for NAS storages and servers with RAID arrays.




Last update: 17.02.2012