xiRAID RAIDs explained

RAID (Redundant Array of Independent Disks) is a way of combining storage devices to ensure data integrity and high performance. There are several methods of combining hard drives called RAID levels. Each level has its pros and cons and offers a different balance of performance, data protection, and storage efficiency.

In this chapter, you will learn about the components, levels and operation details of the xiRAID Classic RAIDs.

RAID components

RAID is a combination of multiple disks, with striping, mirroring, and parity forming the three basics of RAID levels:
  • Mirroring - replication of data across disks (RAID 1).
  • Striping - the process of dividing data into blocks and distributing these blocks across multiple storage devices in a RAID (RAID 0, 5, 6, 7, N+M).
  • RAID parity is the additional data calculated based on the user data stored on the drives in RAID 5, 6, 7, or within one RAID group in a nested RAID configuration. This parity data allows for the restoration of user data from one or more failed drives in a RAID array in the event of a failure.

RAID strip size. In RAID striping, data is divided into strips. When data is written to a RAID level with striping, it is broken down into pieces (strips), and each piece is written to a single disk in the array (the set of strips spanning across all the drives in that RAID set is called a stripe). The size of the strip determines the size of the data piece. In xiRAID, the strip size can be selected from 16, 32, 64, 128, and 256 Kbytes, with 16 being the default size.

RAID block size - the size of the stripes written to each disk in a RAID array. The RAID block size can be either 512 or 4096 bytes, with the default being 4096.

Nested RAID – RAIDs 10, 50, 60 and 70 (RAID 0 combination of several RAIDs 1, 5, 6 or 7).

RAID group size – the number of disks in one RAID group. A RAID group is the segment of the RAID 0 striping.

The picture illustrates a nested RAID 50 configuration where data is striped across 6 drives organized into 2 groups of 3. Slots A1, A2, Ap, etc. represent strips, and data is written to and read from the RAID in stripes (blocks) [A1, A2, Ap, A3, A4, Ap]. Strips Ap, Bp, etc. represent parity.

RAID levels

In xiRAID, you can create RAIDs of levels 0, 1, 5, 6, 7.3, 10, 50, 60, 70 and N+M.

Table 1.
RAID level Description Features Redundancy Requirements
0 Disk striping without mirroring or parity. The data blocks are distributed across several drives. Data is in parallel access mode that provides high performance. Due to the lack of redundancy, RAID 0 doesn’t provide data reliability – the failure of one drive in RAID leads to the whole RAID degradation. RAID 0 requires at least 1 drives.
1 Mirroring without parity or striping. The data is mirrored on all drives of the RAID.

Random read performance can match the combined speed of individual drives, but write performance is limited by the slowest drive.

This level offers the highest redundancy by creating a 1-for-1 copy of all data.

RAID 1 requires at least 2 drives.
5 Disk striping with distributed parity. Sustains the complete failure of one drive. RAID 5 requires at least 4 drives.
6 Disk striping with double parity distribution. Two checksums are calculated, the capacity of two drives is allocated for checksums.

Sustains the complete failure of two drives.

RAID 6 requires at least 4 drives.
7.3 Disk striping with triple parity distribution. Three checksums are calculated using different algorithms, the capacity of three drives is allocated for checksums. Sustains the complete failure of three drives. RAID 7 requires at least 4 drives.
10 RAID 0, which components are RAIDs 1 instead of separate drives.

Data integrity is preserved when one drive fails, but if both drives in a mirrored pair fail, irreversible RAID destruction can happen.

RAID 10 requires at least 2 drives (the number of drives must be even).
50 RAID 0 striping combination across multiple RAIDs level 5. Recoverable from 1 drive failure in each group. At least 8 drives, the drive number must be a multiple of the the group size (at least 2 groups are required). The group size is at least 4 drives.
60 RAID 0 striping combination across multiple RAIDs level 6.

RAID 60 is the equivalent of RAID 50 with a higher level of fault tolerance.

Recoverable from 2 failures in each group. At least 8 drives, the drive number must be a multiple of the the group size (at least 2 groups are required). The group size is at least 4 drives.
70 RAID 0 striping combination across multiple RAIDs level 7.3.

RAID 70 is the equivalent of RAID 60 with a higher level of fault tolerance.

Recoverable from 3 failures in each group. At least 12 drives, the drive number must be a multiple of the the group size (at least 2 groups are required). The group size is at least 6 drives.
N+M The level of interleaving blocks with N drives and M checksums.

RAID N+M allows users to select the number of drives allocated for checksums.

The number of checksums can range from 4 to 32.

Recoverable from up to 32 disk failures in each group. At least 8 drives. At least 4 drives must be allocated for checksums.

Additional conditions: N+M <= 64 and M <= N.

RAID lifecycle

After creating the RAID, it starts initializing - setting up the drives, calculating parity, and writing metadata to the drives. Once this process concludes, the RAID transitions to a fully operational 'initialized' state. However, RAID 0 doesn't require initialization. After creation, it's immediately ready for work, transitioning to the 'online' state.

If one or more drives fail, the RAID automatically switches to a "degraded" state. To restore the RAID, the failed drive needs to be replaced.

After replacing the drive, the RAID system starts the process of reconstructing data on the new drive, and the RAID goes into a “reconstructing” state. During this process, performance and redundancy remain degraded until it is completed.

A RAID can be destroyed without deleting metadata and configuration files. If this happens, it displays a 'None' state and can be restored.