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
-
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.