Date: April 12, 2002
Updated April 2006 to reflect current disk capabilities
A Storage Area Network, or SAN, is a group of disk drives thatcan be shared by multiple servers. SAN's are often sold as a "black box" that you simply plug your servers into for storage. However, my experience is that this can lead to I/O bottlenecks. Under the covers, a SAN is still a disk drive, and you have to provide sufficient number of physical disks to handle the I/O load.
Here's a simple methodology (taught by Dan Braden, IBM Advanced Technical Support) to estimate the minimum number of disk drives to support a given I/O load. The methodology is based on current disk technology which supports the following I/O loads. Note these capabilities are common to all disk drives, regardless of disk capacity.
IOPS (I/O's per Second,
|Data Transfer Rate
Minimum Number of Disk Drives to Support Workload
|Random I/O (10k RPM)||125||0.5||n = (%R + f (%W))(tps)/125|
|Random I/O (15k RPM)||150||0.5+||n = (%R + f (%W))(tps)/150|
|Sequential I/O||2000||50||n = (MB/sec)/50|
%R = the percentage of disk I/O's that are reads.
%W= the percentage of disk I/O's that are writes.
f = 1 for ordinary disks, 2 for mirrored disks, 4 for Raid 5 disks.
Assumes data is distributed evenly across all disk drives.
Using the above formula, here's the minimum number of disks required to support a random I/O workload, at 1000 IOPS, 80% read, 20% write on 10K RPM disk drives.
Ordinary disks: (0.8 + 1*0.2)(1000 IOPS)/(125 IOPS/disk) = 8
Mirrored disks: (0.8 + 2*0.2)(1000 IOPS)/(125 IOPS/disk) = 10
Raid 5 disks: (0.8 + 4*0.2)(1000 IOPS)/(125 IOPS/disk) = 13
Note that Raid 5 requires more disks than mirroring to achieve the same I/O
rate in this example!
Next week's tip will show how to estimate IOPS and the read/write percentages using the "iostat" command.