Amazingly, RAIDs provide these advantages transparently to systems that use them, i.e., a RAID just looks like a big disk to the host system. The beauty of transparency, of course, is that it enables one to simply replace a disk with a RAID and not change a single line of software; the operat- ing system and client applications continue to operate without modifica- tion. In this manner, transparency greatly improves the deployability of RAID, enabling users and administrators to put a RAID to use without worries of software compatibility. We now discuss some of the important aspects of RAIDs. We begin with the interface, fault model, and then discuss how one can evaluate a RAID design along three important axes: capacity, reliability, and perfor- mance. We then discuss a number of other issues that are important to RAID design and implementation. 38.1 Interface And RAID Internals To a file system above, a RAID looks like a big, (hopefully) fast, and (hopefully) reliable disk. Just as with a single disk, it presents itself as a linear array of blocks, each of which can be read or written by the file system (or other client). When a file system issues a logical I/O request to the RAID, the RAID internally must calculate which disk (or disks) to access in order to com- plete the request, and then issue one or more physical I/Os to do so. The exact nature of these physical I/Os depends on the RAID level, as we will discuss in detail below. However, as a simple example, consider a RAID that keeps two copies of each block (each one on a separate disk); when writing to such a mirrored RAID system, the RAID will have to perform two physical I/Os for every one logical I/O it is issued. A RAID system is often built as a separate hardware box, with a stan- dard connection (e.g., SCSI, or SATA) to a host. Internally, however, RAIDs are fairly complex, consisting of a microcontroller that runs firmware to direct the operation of the RAID, volatile memory such as DRAM to buffer data blocks as they are read and written, and in some cases, O PERATING S YSTEMS [V ERSION 0.81] WWW . OSTEP . ORG
R EDUNDANT A RRAYS OF I NEXPENSIVE D ISKS (RAID S ) 3 non-volatile memory to buffer writes safely and perhaps even special- ized logic to perform parity calculations (useful in some RAID levels, as we will also see below). At a high level, a RAID is very much a special- ized computer system: it has a processor, memory, and disks; however, instead of running applications, it runs specialized software designed to operate the RAID. 38.2 Fault Model To understand RAID and compare different approaches, we must have a fault model in mind. RAIDs are designed to detect and recover from certain kinds of disk faults; thus, knowing exactly which faults to expect is critical in arriving upon a working design.
You've reached the end of your free preview.
Want to read all 19 pages?
- Fall '14
- RAID, disk, RAID level, Disk Array