NAS System
6
User’s Manual
1.3 RAID Concepts
RAID Fundamentals
The basic idea of RAID (Redundant Array of Independent Disks) is to combine multiple
inexpensive disk drives into an array of disk drives to obtain performance, capacity and
reliability that exceeds that of a single large drive. The array of drives appears to the
host computer as a single logical drive.
Five types of array architectures, RAID 1 through RAID 5, were originally defined; each
provides disk fault-tolerance with different compromises in features and performance. In
addition to these five redundant array architectures, it has become popular to refer to a
non-redundant array of disk drives as a RAID 0 arrays.
Disk Striping
Fundamental to RAID technology is striping. This is a method of combining multiple
drives into one logical storage unit. Striping partitions the storage space of each drive
into stripes, which can be as small as one sector (512 bytes) or as large as several
megabytes. These stripes are then interleaved in a rotating sequence, so that the
combined space is composed alternately of stripes from each drive. The specific type of
operating environment determines whether large or small stripes should be used.
Most operating systems today support concurrent disk I/O operations across multiple
drives. However, in order to maximize throughput for the disk subsystem, the I/O load
must be balanced across all the drives so that each drive can be kept busy as much as
possible. In a multiple drive system without striping, the disk I/O load is never perfectly
balanced. Some drives will contain data files that are frequently accessed and some
drives will rarely be accessed.
By striping the drives in the array with stripes large enough so that each record falls
entirely within one stripe, most records can be evenly distributed across all drives. This
keeps all drives in the array busy during heavy load situations. This situation allows all
drives to work concurrently on different I/O operations, and thus maximize the number
of simultaneous I/O operations that can be performed by the array.