TOC · Work · Menu · Disk

## RAID Arrays

### Dialog box "Construct RAID"

Use Menu - Disk - Select Drive - Construct RAID

A tool to construct a virtual RAID using individual disks (or partitions and images) when it is not possible by the means of the controller (hardware RAID) or the operating system (software RAID), as well as to detect RAID layout automatically when some RAID parameters are unknown.

If it is necessary to detach disks from the RAID controller and attach to a computer as individual disks.

Incorrect selection of a RAID type, data rotation (striping), or disk order causes incorrect data recovery (despite possible correct directory structure recovery).

RAID: Auto Calculate (Scan) option allows calculating unknown parameters and / or disk order for arrays with striping. Some disks can be absent (however the initial number of disks must be specified exactly). Most probable RAID layouts are being calculated statistically. The more precise possible RAID parameters are specified for calculation, the faster and more exact results are being obtained. E.g., RAID-5 software implementation in Windows OS uses backward dynamic rotation and a stripe size of 64K, thus, Min-max stripe sizes can be specified (in bytes) as 65536, 65536 and only RAID-5 bkdyn rotation can be selected for detection.

Many software RAID implementations use containers, so there may be an offset between the start of the disk and the start of the RAID data on each of the disks. If the offset is unknown, the LBA Offset Step field can be used to test different offsets (for example, if the value 16 is specified then the sectors 0, 16, 32, etc. will be tried as the data offset. Windows OS uses 1MiB alignment so a step 2048 LBAs (=1MiB) can be used. Some older OSes may use 63 LBA alignment. For a completely unknown offset, you can specify a value of 1 LBA, which means that every sector will be tried as the possible offset, which slows down the process significantly.

If data containers are found on disks, it is preferable to specify the containers instead of using LBA offset step. After adding a disk, you can double-click it (or use the menu - Partition/Offset) to specify the exact offset or exact partition (container) on the disk. With the button Partitions, the partitions on the disk can be observed and selected. Or, the additional field LBA Offset can be used instead to specify the known data offset.

In both of the latter cases, when the exact offset of the RAID data is known, the LBA offset step can be set to 0 (zero) to disable offset detection and speed up the process.

If the order of the disk is known it can be specified as the fixed order of disks in the form 0,1,2 where the disk numbers are the numbers provided within the DMDE list of the disks added to the RAID (#0, #1, #2).

If the RAID parameters are known exactly they can be provided manually instead of using the option RAID: Auto Calculate (Scan).

### RAID types

RAID-0. Usually contains two disks on which information is written alternately by blocks (stripes). If one disk is absent only small files which fit into single block can be recovered.

RAID-1. Usually contains two disks, data is duplicated. Stripe size is not used. Supported in read-only mode. One healthy disk can be opened as a single device without loss of data.

RAID-4. Usually contains three disks. One disk is for parity. Data is alternated between the rest disks. It is possible to recover all data without any one of the disks. Use NULL device instead of the absent device.

RAID-5. Usually contains three disks (or more). Data is alternated between all disks herewith one block of parity per the rest blocks of data. There are four types of data rotation on a RAID-5. Some RAIDs (usually hardware) may have delayed parity. It is possible to recover all data without any one of the disks (which should be replace with NULL device).

RAID-6. Usually contains four disks (or more). It is similar to RAID-5 with exception that two blocks of parity (different types) are used. Only type of parity is supported so only one disk can be replaced with NULL device. Supported in read-only mode.

RAID: Custom rotation. You may define your own striping (use Menu - Striping...). Use integer numbers from 0 to specify data blocks according to their order on disks, -1 to specify XOR-parity block, and -2 to specify unused block.

E.g. for the diagram: | => | Specify striping as:
Disk#0 | Disk#1 | Disk#2 | Disk#3 |
A1 | A2 | Ap | Aq | 0 1 -1 -2
B1 | Bp | Bq | B2 | 2 -1 -2 3
Cp | Cq | C1 | C2 | -1 -2 4 5
Dq | D1 | D2 | Dp | -2 6 7 -1

JBOD/Spanned. Just a bound of disks which are used as one continuous disk. There is no data alternation, stripe size is not used. Data located on any disk will be lost if the disk is absent. JBOD is supported in read/write mode.

### RAID parameters

Stripe Size: data rotation block size (in bytes). Not used in RAID-1, JBOD
Delay: rotation delay (special RAID-5 and RAID-6 implementations)
Offset: data start offset on disk (usually used on software RAIDs)
Offset and Size: RAID logical unit offset and size on an individual disk
Double click the individual disk (or use the menu command Partition/Offset) to specify the offset and size of the selected extent in sectors
Null disk: used instead of absent or damaged disk
Striping...: manually specify striping for Custom RAID
Save/Load: save/load RAID configuration
Read ahead: improve the performance of working with the array (for cases with a small stripe size, not recommended on disks with bad sectors).