Data Recovery From Raid 5,
RAID 5 Data Recovery
RAID 5 has at least three drives. The data is stored in blocks on each drive. One complete block set is called a stripe. In some ways it is similar in configuration to RAID 0 however The biggest difference is that RAID5 has redundancy built-in. Redundancy means that if a single drive fails, then the data can be rebuilt from the remaining drives in the array. The redundancy is in the form of a parity block, using a three drive array as an example, redundancy for the first stripe would be calculated by taking each byte from each block from the first two hard disks, when these values are XOR’d they create a third value. It is this value that is stored in the parity block for the current stripe. So, when a hard disk in the array fails, the missing value can be regenerated or rebuilt by XOR-ing the bytes from the remaining good hard disks. This does add a slight overhead to drive writes as the parity needs to be calculated.
Rebuilding a RAID 5 Array After Failure
The issue for data recovery company is calculating the original order the drives were in, block size and parity rotation methodology.
There are many permutations and these are added to by the number of drives in the array. e.g. if you have a RAID array with 5 drives there are 120 permutations of drive order alone. On top of this there is the block size to take into account. These are easier to calculate, but can be any size from 2048 bytes upwards. However, the most common sizes are 32kb 64kb, 128kb and 256kb.
Once drive order is determined we now needto calculate the parity rotation. What this means is, that for each complete stripe, the parity block moves to the next drive in the sequence. As an Example, if you take 3 drives and number them 0,1 and 2 below is a diagram showing where the data blocks are (shown as numerics) and the Parity block (P).
Drive 0: 1 3 P 7
Drive 1: 2 P 5 8
Drive 2: P 4 6 P
You can see that the first parity block is on drive 2. The next parity block is on drive 1 and last one is on drive 0. Then the sequence repeats itself until the end of the array.
Initially this looks fairly straightforward, and in fact the above is the simplest RAID 5 there is.
here is another type of parity (Backward with continuous data)
Drive 0: 1 4 P 7 10
Drive 1: 2 P 5 8 P
Drive 2: P 3 6 P 9
Did you notice the difference? Blocks 3 and 4 (and 9 and 10)are inverted. This is because once the first stripe is complete. The first data block of each stripe must go immediately after the parity block so the drive reads the data as 0,1,2,0,1,2… So in this case block 3 is placed after the parity block on the second stripe. This improves read and write speeds so that the same drive is not read twice in succession. A mistake in determining the parity.
Professional Data Recovery
When selecting a company to recover your data, make sure they have a full understanding of the functionality of your specific RAID controller. Full understanding of how data is stored on RAID arrays is essential if the data is to be recovered correctly. MjM Data Recovery Ltd have developed their own software that they use for RAID data recovery and have engineers that are able to recover from the most difficult of jobs. If another company has already announced that the data is unrecoverable, it is always worth sending it to another company for a second opinion. Most will not charge for a diagnosis or it will be a relatively small charge if the value of the data warrants the cost.