Interface and RAID Internals
This lesson briefly discusses the interface presented by RAID and its internal architecture.
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 another 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 complete 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. In this case, 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 standard 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.
- In some cases, non-volatile memory to buffer writes safely and perhaps even specialized 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 specialized computer system: it has a processor, memory, and disks. However, instead of running applications, it runs specialized software designed to operate the RAID.
Get hands-on with 1400+ tech skills courses.