We will study three basic types of configurations corresponding to I/Os going to either a single disk, to a RAID-5 array, or a RAID-10 array. In the first case, we issue direct (raw) I/O to one of the five disk devices (for example, /dev/sdb). In the latter two cases, we issue direct I/O to the virtual RAID disk device (for example, /dev/md0) created by using the Software RAID feature in Linux.
Software RAID in Linux implements the functionality of a RAID controller within the host to which the disks are attached. As we do not modify or depend on the particular implementation of the RAID controller, a hardware RAID controller or an external RAID array would work equally well for our experiments. We created a RAID-5 array using 5 SCSI disks in 4 data disk + 1 parity disk configurations. We chose the strip size (chunk size) for each disk to be 64KB. Resulting stripe group size was 256KB. Similarly, we created a RAID-10 array using 4 SCSI disks in 2 + 2 configuration. Once again, we chose the strip size for each disk to be 64KB.