RAID 5 recovery with Delayed Parity

Some controllers, like HP SmartArray, use non-standard scheme of striping called delayed parity (DP).

Effectively, two different block sizes are used, one for parity and the other for data. A parity block size is an integral multiple of data block size. Thus, two additional parameters appear in the RAID configuration - delay and firs tdelay. Delay parameter indicates multiplicity, namely how many data blocks fit into one parity block; firs tdelay shows how many data blocks are contained in the first parity block. The possible delay values are 1, 2, 4, 8, 16, 32, and first delay can be from 1 to delay value.

RAID 5 with delayed parity

How to recover data from RAID5 with delayed parity

ReclaiMe Free RAID Recovery automatically detects and recovers arrays utilizing delayed parity. It will produce correct output if you write array either to an image file or directly to the disk. Also, it will transfer the parameters to our ReclaiMe data recovery software.

  1. Disconnect the RAID disks from the RAID controller and connect them to a PC running Windows.
  2. Download, install, and launch ReclaiMe Free RAID Recovery software.
  3. Select RAID disks and click Other RAIDs -> Start RAID5 with delayed parity.
  4. RAID 5 with delayed parity
  5. Wait until the software completes detecting the parameters. It can take from a couple of minutes to several hours (learn why). The process completes when either Scan progress or Confidence is completely filled. Note that Scan progress always grows while Confidence may decrease.
  6. Then you can select:
  • Run ReclaiMe to recover data. If ReclaiMe File Recovery software has been already installed on the computer, then it is launched in RAID recovery mode and displays the partitions on the array. If you do not have ReclaiMe, you will be offered to download ReclaiMe File Recovery software.
  • Save layout to the XML file.
  • Use with other data recovery software.

More details on delayed parity

Recovery of a RAID with delayed parity is a bit more complex than the above simple model. The complete model includes start offset, which is less than one data block. Therefore, along with the disk order, there are seven more array parameters:

  1. Start offset.
  2. Data block size (corresponding to the typical block size in RAID without delay).
  3. Delay (the number of data blocks in one delayed parity block).
  4. Firstdelay (the number of data blocks in the first delayed parity block).
  5. Position of parity in the first block.
  6. Rotation, which determines the change in the position of parity block through the array.
  7. Type of data placement (synchronous or asynchronous).
RAID 5 with delayed parity

Note that offset and the disk where parity block starts have changed. The offset has changed from 2 to 5 and the disk with first parity block has become Disk 1 rather than Disk 2.

If it is impossible to specify the disk with first parity, offset increases so that to cut off the first full revolution of parity. In this example, the offset that should be used is 13.

Theoretically, such a conversion can lead to the fact that some user data, which was in the first rows, cannot be read by the tool (due to negative addresses). In this example, data blocks marked in gray, from 0 to 5, are lost. If it were impossible to set the disk where parity starts, we would have to use offset of 13. In this case, blocks from 1 to 21 inclusive would be lost.

In practice, controller metadata rather than user data is often placed in these blocks, so that all the user data remains accessible.

Still have questions?