Storage disk iops and capacity design


Most of  the storage engineers experienced with performance and latency issues, This starts from the infrastructure design and deployment phase which was not planned in-order to satisfy the future load.

Here I have described the disk's types and it iops capacity which may help in better understanding for the future new deployments.

Commonly used disk types in storage's:

DiskType
Expansion
SATA 
Serial Advanced Technology Attachment, often abbreviated SATA or S-ATA
FC 
Fiber Channel disks
SAS
Serial Attached SCSI
SSD 
Solid-state disks


IOPS:

Input output per seconds, IOPS are used to define the performance of a given disk or disk array.
RPM
Max Iop’s
5.4K RPM 
50-80 
7.2K RPM 
75-100
10K RPM
125-150
15K RPM 
175-210 

Two  features which involves in iops calculation

  • Average latency
  • Average seek time

Two types of IOPS operations

  • Read operations
  • Write operations

Equation: Disk IOPS calculation

Let’s take Cheetah ST3300655SS 15K SAS hard disk which can be rated as follows:
  • Average latency (avgLatency): 2.0 ms or .002 seconds
  • Average seek time (avgSeek): 3.5 ms or .0035 seconds
To calculate this disk's IOPS, use the following equation:

diskMaxIops = 1/(avgLatency + avgSeek)
diskMaxIops = 1/(.002 + .0035)
diskMaxIops = 181

Total maximum IOPS for 15k disk is 181. ((avgLatency) and (avgLatency) will be provided by disk vendor)
http://www.seagate.com/staticfiles/support/disc/manuals/enterprise/cheetah/15K.5/SAS/100384784c.pdf


Maximum Read IOPS

Calculating maximum read IOPS (maxReadIops) for a RAID array is simple: multiply the number of disks (numDisks) in the array by the maximum IOPS per disk (diskMaxIops):
maxReadIops = numDisks * diskMaxIops

For an array of 5 15K RPM disks, the maximum read IOPS (maxReadIops) would be calculated as follows:
maxReadIops = 10 * 181
maxReadIops = 1810  (which is also mean to be RawIops)
Total maximum read IOPS for the above array is 1810.


Maximum Write IOPS

Calculating maximum write IOPS (maxWriteIops) is a slightly different matter, with respect to RAID arrays. RAID arrays suffer a write penalty or overhead; the type of RAID array determines the severity of the write penalty. This penalty is a result of the redundancy that RAID provides. The array necessarily has to write the data to multiple disks/locations to ensure data integrity.


RAID Write Penalty

Each RAID type suffers a different write penalty. The most common RAID types and their write penalties are defined in the following table:
RAID Type
Write Penalty
RAID 1
2
RAID 5
4
RAID 10
2

Herecome the equation to calculate the maximum write IOPS where the disks array with RAID-5.

maxWriteIops = maxReadIops / raidWritePenalty
maxWriteIops = 1810 / 4
maxWriteIops = 452
Total maximum write IOPS  is 452.


Functional IOPS

Apart from Read and Write calculation we do have to calcluate functional IOPS which combines both read and write operation in a second during the production.

Example, lets take an example of 10 15k RPM disk which has 181-iops with RAID-5

FuncIops = (RawIops*maxRead%)/Raid penalty + (RawIops*maxWrite%)

Where workload is about 80% Write and 20% Read

FuncIops = (1810*0.8)/4 + (1810*0.2)
FuncIops 724 - the storage can handle per second

Designing for Performance

Calculating the maximum read and write IOPS for an existing or future RAID array is not only the key. To ensure consistent and sustained performance the systems architect needs to profile the performance requirements for a system to determine the best disk solution. The minimum required IOPS by application must be determined so that the proper number, and speed, of disks can be purchased accordingly.
To start with proper deployment, one must have known performance requirements (i.e. read and write IOPS) for a given system or application. This information can be obtained from vendor.
Calculating the Minimum Required IOPS
Let's assume we have an application that requires the following:
  • 400 Read IOPS
  • 200 Write IOPS
The disk array will be created using RAID 5.
To calculate the minimum number of IOPS (minReqdIops), add the number of required read IOPS (reqdReadIops) to the product of the number of required write IOPS (reqdWriteIops) and the RAID type's write penalty (raidWritePenalty):

minReqdIops = reqdReadIops + (reqdWriteIops * raidWritePenalty)

minReqdIops = 400 + (200 * 4)
minReqdIops = 1200

The minimum number of IOPS required to provide the level of performance for our example application is 1200. This means the disk array should NOT build with less than the required capacity.

Calculate the Minimum Number of Disks

Once the minimum number of required IOPS is determined, it's very easy to determine the minimum number and speed of disks required to create a RAID array to meet performance requirements.
Minimum Number of Disks by Disk Speed
The minimum number of disks needed to meet our performance requirement (minNumDiskMinPerf) is calculated as follows:

minNumDisksMinPerf = minReqdIops / maxIopsByDiskSpeed

Using the information from calculating the minimum required IOPS above, and assuming we want to create an array of 10K RPM disks (130 IOPS per disk), the calculation for the minimum number of disks that will meet our minimum performance requirement (minNumDisksMinPerf) of 1200 IOPS (minReqdIops) is as follows:
minNumDisksMinPerf = 1200 / 130
minNumDisksMinPerf = 10

The minimum number of 10K RPM disks required is 10.

Optionally, if we want to create an array of 15K RPM disks (181 IOPS per disk), the minimum number of disks needed to meet our performance requirement would be calculated as follows:

minNumDisksMinPerf = 1200 / 181

minNumDisksMinPerf = 7

The minimum number of 15K RPM disks needed to be configured on storage to handle the performance requirement is minimum 7 disks.


Minimum Number of Disks by RAID Type

The RAID type determines the minimum number of disks to satisfy the RAID type's requirements. For example, RAID 5 always requires at least 3 disks, at a minimum; RAID 10 always requires at least 4 disks, at a minimum.

After calculating the number of disks required by disk speed, determine the minimum number of disks required by RAID type.
In the example where 15K RPM disks were selected to build an array, the calculation shows at least 7 drives are required. If the RAID type will be 5, 10 disks will suffice. So if RAID-5 it requires an additional disk for raid (i.e: 7+1=8 disks + spare disks).

Comments

Popular posts from this blog