Monday, 1 October 2012

Getting Disk IOPS right

One of the commonly discussed subject in storage space. Although Certain guidelines and recommendations are always available from the Application vendors however its worth spending  some time to ensure you are correctly designing storage fabric & Arrays to provide agreed capacity + Performance.

From my opinion, its very important to first understand the application Nature and associated I/O pattern plus its latency thresholds. and at the same time you need to know the complete architecture of your SAN fabric and storage arrays.

Having said that , what are the most important information that i need to kickstart, Here you go!

      • Application IO Requirement :- Majority of Application Vendors (Microsoft/Oracle/SAP etc) - They provide I/O sizing tools
      • Latency threshold :- Some applications would require system to respond back in specified second.
      • I/O Pattern :- Very important point to consider , you need to know whether I/Os are Random/Very Random / Sequential. Also focus on de-duplication capabilities of storage arrays, this will effect sequential access to random.
      • % Read/Write :- Another important point to consider, you should know if there are 10 IOPS per second , then how many are for read and how many for write.
      • I/O Size :- You need to know what is the size of read/write request (512 Bytes, 4K , 8K etc). This is considered as size of one transaction.
      • Sudden Burst & Failure Penalties:-  Assume some buffer for peak hour and to provide same performance in event of few spindle failure in RAID groups.
      • Future Growth :- think of future requirements as well, although you can always add capacity or performance but give some time to understand future requirements as well.
      • Raid Penalties :- We all know all  kind of  RAID levels for performance and redundancy but do we know I/O penalties associated with each raid level ?
let me emphasize a bit on Raid Penalties because generally its not discussed. so what is it? well depending on RAID level you have to commit write request twice or thrice or may be more. take an example of RAID 10 you are writing 2 times for one write request and therefore you are eating 2 write IOPS which is not in the case of RAID 0. There are no penalties involved while reading from RAID volume. Following table shows penalties for different RAIDs.









Now lets understand Layers of Storage Fabric/Arrays which may help you to think through some other aspect which may be important.

Following diagram shows a typical layers from server to the storage system.


so lets first understand , how physical disks type can significantly change overall math. Transactions which are being generated from server is passing through several layers and finally reaching to the physical disks which are the actual labors :)

I hope you all are aware of different disks types and their performance matrix , but just for the sake of people  who are not exposed to Arrays, lets quickly look at some of the important offerings
      • SSD
      • FC
      • SCSI
      • SAS
      • NL-SAS
      • SATA
you can find more information on web, if you like to further dig down and understand how they are different or similar. but since we are talking about IOPS its worth knowing number of IOPS you can get from these disks depending on their RPM. Following table provides IOPS count.










These are some industry standard numbers and don't trust on vendor statements , they always add 10-15 % extra. to get complete performance matrix , you can visit www.spec.org and you can find published performance data from multiple vendors and then make a decision.

I hope this post was informative, some interesting posts on storage are on the way.

Cheers!!

Pankaj



4 comments:

  1. Came back at 11:30 PM from work and I could not start dinner till I finished all of the posts ( I just saw the post in the mail and realized there are already 11 posts and I have read none ).
    Worse, I dont know when my wife dozed off ( I will know for sure in the morning :) ).
    One question: We should also consider the time it takes to calculate the Parity in case of Raid 5 or 6, to get the true picture, correct?

    ReplyDelete
  2. Hi Sandeep

    Thanks for sparing time to read my posts. Parity re-calculation is factored inside sudden burst and Failure Penalties.

    ReplyDelete
  3. Thanks for taking time to write them... I see that you have posted one more. I am off to "Mobility with Control"...

    ReplyDelete