A defining feature of all RAID levels is disk striping. Striping organizes the linear
address space of a volume
into pieces that are spread across a collection of disk drive partitions. For example,
a user can configure a volume across two 1-GB partitions on separate disk drives A
and B with a stripe size of 64K bytes. Stripe 0 lives on drive A, stripe 1 lives on
drive B, stripe 2 lives on drive A, and so on.
By distributing the
stripes of a volume across multiple disks it is possible to do the
following:
-
achieve parallelism at the disk
I/O level
-
use multiple kernel threads to drive a
block of
I/O
This also reduces contention and data transfer latency for a large block I/O because the physical
transfer can be split across multiple disk controllers and drives.