RAID-5 Volumes

A RAID-5 volume dedicates the equivalent of the space of one disk in the RAID-5 volume for storing the parity stripes, but distributes the parity stripes across all the disks in the group. The data and parity information are arranged on the volume so that they are always on different disks.

Table 11.4 shows the order in which data is written to a RAID-5 volume that consists of five stripes on five disks.

Table   11.4 Structure of a RAID-5 Volume

Stripe Number

Disk 1

Disk 2

Disk 3

Disk 4

Disk 5

Stripe 1

parity 1

1

2

3

4

Stripe 2

5

parity 2

6

7

8

Stripe 3

9

10

parity 3

11

12

Stripe 4

13

14

15

parity 4

16

Stripe 5

17

18

19

20

parity 5

The parity stripe is the exclusive OR (XOR) of all the data values for the data stripes in the stripe. If no disks in the RAID-5 volume have failed, the new parity for a write can be calculated without having to read the corresponding stripes from the other data disks. Thus, only two disks are involved in a write operation: the target data disk and the disk that contains the parity stripe. Figure 11.3 shows the steps that are involved in writing data to a RAID-5 volume.

Figure 11.3 Writing Data to a RAID-5 Volume

Implementing a RAID-5 volume requires a minimum of three and a maximum of 32 disks in the set. The physical disks do not need to be identical. However, there must be equal size blocks of unused space available on each physical disk in the set. The disks can be on the same or different controllers. As with striped volumes, you cannot add disks to a RAID-5 volume if you need to increase the size of the volume later.

If one of the disks in a RAID-5 volume fails, none of the data is lost. When a read operation requires data from the failed disk, the system reads all of the remaining good data stripes in the stripe and the parity stripe. Each data stripe is subtracted (with XOR) from the parity stripe; the order is not important. The result is the missing data stripe.

When the system needs to write a data stripe to a disk that has failed, it reads the other data stripes and the parity stripe and backs them out of the parity stripe, leaving the missing data stripe. The modifications needed to the parity stripe can now be calculated and made. Because the data stripe is unavailable, it is not written; only the parity stripe is written.

There is no effect on a read operation when the disk that failed contains a parity stripe. (The parity stripe isn't needed for a read, unless there is a failure in a data stripe.) When the failed disk contains a parity stripe, the system does not compute or write the parity stripe when there is a change in a data stripe.

RAID-5 volumes are well suited for large sequential reads. Typically, RAID-5 is used in database mining. A RAID-5 volume also works well in the following situations:

• In large databases where reads occur much more often than writes. Performance degrades as the percentage of write operations increases. Database applications that read randomly work well with the built-in load balancing of a RAID-5 volume.

• Where a high degree of fault tolerance is required without the expense (incurred by the additional disk space required) of a mirrored volume. A RAID-5 volume is significantly more efficient than a mirrored volume when larger numbers of disks are used. The space required for storing the parity information is equivalent to 1/Number of disks, so a 10 disk array uses 1/10 of its capacity for parity information.

The utilization increases as the number of disks in the array increases.

In general, RAID-5 volumes are not well suited for any write intensive workload, since a single write is likely to generate a disk read of the parity and two writes (to update data and to parity).

A RAID-5 volume is not well suited for the following situations:

• Where applications that require high-speed data collection from a process are used. This type of application requires continuous high-speed disk writes, which do not work well with the asymmetrical I/O balance inherent in RAID-5 volumes and the extra I/Os required to write the parity stripe.

• In transaction processing database applications in which records are continually updated, such as in financial applications where balances are frequently updated.

• Where applications that require large sequential data transfers are used. These types of data transfer can prevent effective I/O load balancing.

Neither the system volume nor boot volume can be on a RAID-5 volume. If a disk that is part of a RAID-5 volume fails, read operations for data stripes on that disk are substantially slower than for a single disk. The software has to read all of the other disks in the set to calculate the data.

A RAID-5 volume requires more system memory than a mirrored volume.

Note

On a computer running Windows 2000 Professional, 32 MB is the minimum amount of RAM; 64 MB is the minimum amount of RAM for a computer that is running Windows 2000 Server. You might want to add memory or use additional services when you configure disks as RAID-5 volumes.