Optimizing RAID Storage Performance with the SAS-based Dell PERC 5

igurationssuch as RAID level, stripe element size, cache
policy, logical disk array size, and hard disk specifications
can affect capacity, reliability, and performance.
Understanding the PERC 5 storage system
architecture
Figure 1 illustrates a SAS-based storage system incorporating
a PERC 5. The PERC 5 is connected to the server through an x8
PCI Express slot rated at 2 GB/sec (although some systems
may utilize an x4 PCI Express slot, rated at 1 GB/sec). The PERC
5 has two SAS wide ports to connect the controller to expand-
ers. Each wide port is a combination of four SAS ports rated
at 300 MB/sec each, providing a throughput of 1,200 MB/sec
per expander, or 2,400 MB/sec total. The expander routes
the four SAS ports to each of the 15 disks it can support, or
connects to additional expanders. SAS direct links, rated at
90100 MB/sec, connect the expander to the disks.
Assuming sustained data rates of 100 MB/sec, 24 hard
disks should saturate the 2,400 MB/sec available to the two
SAS wide ports, causing the x8 PCI Express slot to become
a bottleneck. But because PCI and SAS bus efficiencies can
prevent the buses from reaching their rated speeds, the
bottleneck may appear with a greater number of disks: x8
PCI Express buses typically have an efficiency of approxi-
mately 80 percent, while SAS typically varies between 50 and
90 percent depending on the workload. The transfer size
generally dictates how much impact protocol overhead has
on the potential throughputfor example, one 16 KB transfer
typically has less overhead than eight 2 KB transfers.
The PERC 5 can support larger arrays than previous-
generation PERCs, helping increase capacity and workload
distribution, and therefore performance as well. For example,
servers using many small files, such as an e-mail server, can
distribute the workload across many hard disks to help
increase performance, measured in I/O operations per
second (IOPS) rather than bandwidth (MB/sec).
Evaluating application workloads
System configuration decisions typically require trade-offs
between capacity, reliability, and performance as well as
their related costs. To help optimize system performance,
administrators should first understand and define their work-
load, which can have as much impact on performance as
system configuration. In particular, they should determine
the following:
Related Categories:
RAID
RAID controllers
Serial Attached SCSI (SAS)
Storage
Visit
www.dell.com/powersolutions

for the complete category index.
The Serial Attached SCSI (SAS)based Dell PowerEdge
Expandable RAID Controller 5 (PERC 5) can significantly increase
performance over previous-generation SCSI-based PERCs. This
article outlines the storage system architecture of the PERC 5
and discusses how administrators can optimize RAID storage
performance for different types of workloads.
By Dustin sorenson
Leticia oLivarez
Import
corner art
here
Storage
DELL
POWER SOLUTIONS |
august 2007
1
reprinted from Dell Power Solutions, august 2007. copyright © 2007 Dell inc. all rights reserved.
Optimizing RAID
Storage Performance
with the SAS-based
Dell PERC 5
I/O type: Consecutive I/O requests that are
physically near each other are sequential;
consecutive I/O requests that are physically
far from each other are random. Typically,
sequential I/O workloads use large transfer
sizes and queue depths to help optimize
throughput, while random I/O workloads
use small transfer sizes and variable queue
depths. I/O type can affect decisions on
RAID level, stripe element size, cache policy,
logical disk array size, and hard drive
specifications.

Transfer size: Transfer size is the size of the
payload or data block that the system stores.
It can affect decisions on stripe element size
and cache policy.

Read/write balance: Understanding the bal-
ance between read and write operations can
help administrators optimize a systems
efficiency for both operations. This balance
can affect decisions on RAID level and cache
policy.

Queue depth: Queue depth is the number
of outstanding I/O requests issued at any
given time. It can affect decisions on stripe
element size and cache policy.
On existing systems, administrators can use
tools such as Microsoft
®
Windows
®
Performance
Monitor (perfmon) and iostat to help under-
stand the actual workload. Otherwise, they must
make assumptions regarding the workload
based on the intended application.
Configuring RAID storage systems
Once they understand their workload, adminis-
trators can use this information to make deci-
sions regarding storage capacity, reliability, and
performance, with the goal of optimizing the
configuration for their specific requirements.
Configuration options they should consider
include RAID level, stripe element size, cache
policy, logical disk array size, and hard drive
specifications.
raID level
The PERC 5 supports RAID-0, RAID-1, RAID-5,
RAID-10, and RAID-50. Different RAID levels use
different combinations of striping, mirroring,
and parityelements that can affect capacity,
reliability, and performance, as well as perfor-
mance in a degraded state and rebuild times.
Striping, mirroring, and parity. Striping,
used by RAID-0, RAID-5, RAID-10, and RAID-50,
is designed to increase performance by spread-
ing workloads across several disks rather than
a single disk, reducing the impact of seek times
for random I/O. It spreads the workloads by
subdividing each disk into stripe elements, the
amount of data each disk handles before send-
ing I/O operations to the next disk, which can
vary in size from 8 KB to 128 KB. Striping does
not increase reliability.
Mirroring, used by RAID-1 and RAID-10, cre-
ates an exact copy of one disk on another disk,
helping increase reliability by mitigating the
impact of disk failures. Mirroring can increase
the performance of read operations, and may
slightly degrade performance for write opera-
tions. However, because mirroring uses half an
arrays capacity to create the mirror, it can
increase deployment costs.
Parity, used by RAID-5 and RAID-50, utilizes
exclusive OR (XOR) operations on data and
stores the results as parity data, helping
increase reliability when used with striping.
Following a disk failure, the parity information
can be used to re-create the failed disks data,
and because parity storage only requires one
disk, it takes up less capacity than mirroring.
Parity calculations only slightly degrade the
performance of read operations, but can signifi-
cantly degrade the performance of write opera-
tions. The three types of parity calculation
read-peers, read-modify-write, and full stripe
writecarry different performance penalties.
Figure 1. SAS-based storage system incorporating a Dell PERC 5
sas direct link
expander
sas wide port
Dell Perc 5
sas direct link
sas direct link
sas direct link
sas direct link
sas direct link
sas direct link
sas direct link
expander
sas wide port
Pci express x8 slot
server
to help optimize system performance, admin-
istrators should first understand and define
their workload, which can have as much impact
on performance as system configuration. 2
www.dell.com/powersolutions
reprinted from Dell Power Solutions, august 2007. copyright © 2007 Dell inc. all rights reserved.
www.dell.com/
powersolutions Read-peers reads each disk to calculate the
parity, then performs XOR operations with the
new data to calculate the new parity. Read-
modify-write reads only the current parity from
the disk and the old data, then uses that infor-
mation and the new data to calculate the new
parity, reducing the number of read operations
to two. Full stripe write, the fastest of the three
methods, calculates parity directly from the
data being written when that data is equal to
the stripe size, eliminating the need to read any
information from the disk.
When configuring a PERC 5 to use a parity
RAID level, administrators should consider the
performance penalty based on the number of
disks and the transfer size compared with the
stripe size. Read-peers, which has the highest
penalty of the three types, occurs when the logi-
cal disk array comprises fewer than four disks
or when the array is in a degraded state. Full
stripe write, which has the lowest penalty,
occurs when the transfer size is larger than the
virtual disk stripe size. In other situations, read-
modify-write is typically used.
Capacity, reliability, and performance.
When choosing a RAID level for a particular
workload, administrators must weigh capacity
and reliability against performance, taking into
account the different ways mirroring and parity
can affect these factors (see Figure 2).
The read and write performance of a given
RAID level varies depending on workload and
other factors. Read performance, for example,
can depend significantly on the number of
available drives. Taking advantage of all disks
in an array allows RAID-10 to generally offer the
best read performance of the different RAID
levels for workloads using random I/O. The
additional parity information of RAID-5 enables
it to provide slightly faster read performance
than RAID-50.
Write performance is affected significantly
by mirroring and parity. The mirroring in RAID-10,