Page 183 - DCAP403_Operating System
P. 183
Operating System
Notes Spindle-sync will improve the performance of writes. but have virtually no effect on reads. The
read performance for RAID-1 will be no worse than the read performance for a single drive. If the
RAID controller is intelligent enough to send read requests to alternate disk drives, RAID-1 can
significantly improve read performance.
RAID-2: RAID Level 2 is an intellectual curiosity, and has never been widely used. It is more
space efficient then RAID-1, but less space efficient then other RAID levels.
Instead of using a simple parity to validate the data (as in RAID-3, RAID-4 and RAID-5), it uses
a much more complex algorithm, called a Hamming Code. A Hamming code is larger than a
parity, so it takes up more disk space, but, with proper code design, is capable of recovering
from multiple drives being lost. RAID-2 is the only simple RAID level that can retain data when
multiple drives fail.
The primary problem with this RAID level is that the amount of CPU power required to generate
the Hamming Code is much higher then is required to generate parity.
A RAID-2 array has all the penalties of a RAID-4 array, with an even larger write performance
penalty. The reason for the larger write performance penalty is that it is not usually possible to
update the Hamming Code. In general, all data blocks in the stripe modified by the write, must
be read in, and used to generate new Hamming Code data.
Also, on large writes, the CPU time to generate the Hamming Code is much higher that to
generate Parity, thus possibly slowing down even large writes.
The individual segments in a 4+2 RAID-2 array are organized as follows:
Table 9.2: RAID-2 Segments
Drive 0 Drive 1 Drive 2 Drive 3 Drive 4 Drive 5
0 1 2 3 Code Code
4 5 6 7 Code Code
8 9 10 11 Code Code
12 13 14 15 Code Code
16 17 18 19 Code Code
20 21 22 23 Code Code
RAID-3: RAID Level 3 is defined as bytewise (or bitwise) striping with parity. Every I/O to the
array will access all drives in the array, regardless of the type of access (read/write) or the size
of the I/O request.
During a write, RAID-3 stores a portion of each block on each data disk. It also computes the
parity for the data, and writes it to the parity drive.
In some implementations, when the data is read back in, the parity is also read, and compared to
a newly computed parity, to ensure that there were no errors.
RAID-3 provides a similar level of reliability to RAID-4 and RAID-5, but offers much greater
I/O bandwidth on small requests. In addition, there is no performance impact when writing.
Unfortunately, it is not possible to have multiple operations being performed on the array at the
same time, due to the fact that all drives are involved in every operation.
As all drives are involved in every operation, the use of spindle-sync will signifi cantly improve
the performance of the array.
Because a logical block is broken up into several physical blocks, the block size on the disk drive
would have to be smaller than the block size of the array. Usually, this causes the disk drive
to need to be formatted with a block size smaller than 512 bytes, which decreases the storage
capacity of the disk drive slightly, due to the larger number of block headers on the drive.
176 LOVELY PROFESSIONAL UNIVERSITY