Hardware Reference
In-Depth Information
was immense, because in one sector time it could write 32 sectors worth of data.
Also, losing one drive did not cause problems, because loss of a drive amounted to
losing 1 bit in each 39-bit word read, something the Hamming code could handle
on the fly.
On the down side, this scheme requires all the drives to be rotationally syn-
chronized, and it makes sense only with a substantial number of drives (even with
32 data drives and 6 parity drives, the overhead is 19 percent). It also asks a lot of
the controller, since it must do a Hamming checksum every bit time.
RAID level 3 is a simplified version of RAID level 2. It is illustrated in
Fig. 2-23(d). Here a single parity bit is computed for each data word and written to
a parity drive. As in RAID level 2, the drives must be exactly synchronized, since
individual data words are spread over multiple drives.
At first thought, it might appear that a single parity bit gives only error detec-
tion, not error correction. For the case of random undetected errors, this observa-
tion is true. However, for the case of a drive crashing, it provides full 1-bit error
correction since the position of the bad bit is known. If a drive crashes, the con-
troller just pretends that all its bits are 0s. If a word has a parity error, the bit from
the dead drive must have been a 1, so it is corrected. Although both RAID levels 2
and 3 offer very high data rates, the number of separate I/O requests per second
they can handle is no better than for a single drive.
RAID levels 4 and 5 work with strips again, not individual words with parity,
and do not require synchronized drives. RAID level 4 [see Fig. 2-23(e)] is like
RAID level 0, with a strip-for-strip parity written onto an extra drive. For example,
if each strip is k bytes long, all the strips are EXCLUSIVE ORed together, re-
sulting in a parity strip k bytes long.
If a drive crashes, the lost bytes can be
recomputed from the parity drive.
This design protects against the loss of a drive but performs poorly for small
updates. If one sector is changed, all the drives must be read in order to recalculate
the parity, which then must be rewritten. Alternatively, the old user data and the
old parity data can be read and the new parity recomputed from them. Even with
this optimization, a small update requires two reads and two writes, clearly a bad
arrangement.
As a consequence of the heavy load on the parity drive, it may become a bot-
tleneck. This bottleneck is eliminated in RAID level 5 by distributing the parity
bits uniformly over all the drives, round robin fashion, as shown in Fig. 2-23(f).
However, in the event of a drive crash, reconstructing the contents of the failed
drive is a complex process.
2.3.6 Solid-State Disks
Disks made from nonvolatile flash memory, often called solid-state disks
( SSDs ), are growing in popularity as a high-speed alternative to traditional mag-
netic disk technologies. The invention of the SSD is a classic tale of ''When they
 
 
Search WWH ::




Custom Search