RAID Recovery

Data Recovery Software
RAID

RAID stands for Redundant Array of Inexpensive Disks. RAID is the organization of multiple disks into a large, high performance logical disk. Disk arrays stripe data across multiple disks and access them in parallel to achieve higher data transfer rates on large data accesses and higher I/O rates on small data accesses. Data striping also results in uniform load balancing across all of the disks, eliminating hot spots that otherwise saturate a small number of disks, while the majority of disks sit idle.

But large disk arrays are highly vulnerable to disk failures. A disk array with a hundred disks is a hundred times more likely to fail than a single disk. An MTTF (mean-time-to-failure) 500,000 hours for a single disk implies an MTTF of 500,000/100 i.e. 5000 hours for a disk array with a hundred disks.

The solution to the problem of lower reliability in disk arrays is to improve the availability of the system. This can be achieved by employing redundancy in the form of error-correcting codes to tolerate disk failures. A redundant disk array can now retain data for much longer time than an unprotected single disk.

Redundancy improves the availability of a system, but cannot improve the reliability. Reliability can only be increased by improving manufacturing technologies or using lesser individual components in a system.

There are many types of RAID and some of the important ones are listed below:

Non-Redundant (RAID Level 0)

A non-redundant disk array, or RAID level 0, has the lowest cost of any RAID organization because it does not employ redundancy at all. This scheme offers the best performance since it never needs to update redundant information. Surprisingly, it does not have the best performance. Redundancy schemes that duplicate data, such as mirroring, can perform better on reads by selectively scheduling requests on the disk with the shortest expected seek and rotational delays. Without, redundancy, any single disk failure will result in data-loss. Non-redundant disk arrays are widely used in super-computing environments where performance and capacity, rather than reliability, are the primary concerns. Sequential blocks of data are written across multiple disks in stripes, as follows:

Disk 0 Disk 1 Disk 2 Disk 3 Disk 4
Block 1 Block 2 Block 3 Block 4 Block 5
Block 6 Block 7 Block 8 Block 9 Block 10
Block 11 Block 12 Block 13 Block 14 Block 15
Block 16 Block 17 Block 18 Block 19 Block 20
Block 21 Block 22 Block 23 Block 24 Block 25

The size of a data block, which is known as the “stripe width”, varies with the implementation, but is always at least as large as a disk’s sector size. When it comes time to read back this sequential data, all disks can be read in parallel. In a multi-tasking operating system, there is a high probability that even non-sequential disk accesses will keep all of the disks working in parallel.

Mirrored (RAID Level 1)

The traditional solution, called mirroring or shadowing, uses twice as many disks as a non-redundant disk array. Whenever data is written to a disk the same data is also written to a redundant disk, so that there are always two copies of the information. When data is read, it can be retrieved from the disk with the shorter queuing, seek and rotational delays. If a disk fails, the other copy is used to service requests. Mirroring is frequently used in database applications where availability and transaction time are more important than storage efficiency.

Disk 0 Disk 1
Block 1 Block 1
Block 2 Block 2
Block 3 Block 3
Block 4 Block 4
Block 5 Block 5

There are other various types of RAID, but we’ll suffice with this brief description featuring the major principles of organizing a RAID system. What you must keep in mind, is the fact that RAID systems need backups.

Even when you use a redundancy scheme like mirroring, you must make regular backups of your system. There are several reasons for insisting on this, among them:

  • RAID does not protect you from multiple disk failures. While one disk is off line for any reason, your disk array is not fully redundant.

Regular backups allow you to recover from data loss that is not related to a disk failure. This includes human errors, hardware errors, and software errors.