# Calculating IOPs and Useable Storage to Size Storage Area Networks (SANs)

Posted by Lou Person on May 01, 2011 in Cloud Journey

In order to properly size a SAN for a customer, there are a few variables to consider. IOPS (Input Output Per Second), Raw Storage, Usable Storage and RAID configuration impact 90% of the decision regarding performance.

We also needed to understand the I/O requirements that each SAN would need to accommodate.  This is often referred to as IOPS (or Input/Output per Second).  In general, disks provide the following I/O (http://en.wikipedia.org/wiki/IOPS):
RPM      Drive Type IOPs
7,200    SATA          ~90
10,000  SATA         ~130
10,000  SAS           ~140
15,000  SAS           ~180

RAID configuration will also impact the amount of IOPs available in a SAN.  When used in a RAID configuration there is an IOPS penalty applied to the calculation as follows:
RAID 0 – x1.0 penalty
RAID10  – x0.8 penalty
RAID5 – x0.57 penalty

So, if we had 16 10K RPM SAS drives, we would have 2,240 IOPs available.  If we configured these drives in a RAID5 set, then we would have 1,276 IOPs available.  If we used a RAID10 set, then we would have 1,792 available.  Storage Assessments should be run to calculate the required IOPs in an environment.  brightstack can perform this assessment as part of our assessment progam.  Once the current IOPs are known, forecast for future growth should be anticipated, and required IOPs should be determined.  Then, the SAN should be sized appropriately for IOPs.

The amount of usable storage is less than the amount of raw storage once RAID is applied. Assuming we had 10 300GB drives, typical useable storage could be calculated as follows:
RAD1  (Only for 2 drives, best for Operating System partition.  Both drives written to at same time) – 2x300GB/2=300GB
RAID5 (Total number of drives less 1 for hotspare less 1 for stripping) – 8x300GB=2.4 TB
RAID 10 (Total drives divided by 2)-10x300GB/2=1.5TB
In addition, snapshots add overhead to the storage pool. Twenty to twenty-five percent of the usable, plus associated snapshots, should be accounted for.

RaidCalc defines RAID as follows:
In summary, RAID 10 provides better performance than RAID 5 (less IOPs penalty) but provides less usable storage.

RAID Level 5- Data Striping with Distributed Parity: Data is striped across a group of disk drives with distributed parity.  Parity information is written to a different disk in the array for each stripe.

Redundancy : Parity is distributed across the disks in the array.  Data is regenerated in the event of a drive failure.

Performance: High performance in small record, multiprocessing environments because there is no contention for the parity disk and read and write operations can be overlapped.  No write bottlenecks as with RAID 4.

Drawbacks : Distributed parity causes overhead on write operations. There is also overhead created when data is changed, because parity information must be located and then recalculated.
RAID Level 0+1 (RAID 10)-Data Striping with Mirroring: RAID10 stripes data across pairs of mirrored disk drives.

Redundancy: A striped array of mirrored drive pairs is created.  You can sustain more than one drive failure as long as they are not in the same mirrored set.

Performance: High performance because data is striped and there is no parity overhead.

Drawbacks: High cost per megabyte because double the amount of drives is required to achieve desired capacity.