天天看点

【虚拟化实战】存储设计之五IOPS

作者:范军 (Frank Fan) 新浪微博:@frankfan7   微信:frankfan7

在存储设计中最常用的一个性能衡量参数就是IOPS,但是不是仅IOPS就足以帮助我们作出设计决定呢?这方面有很多认识上的误区。绝大多数情况下仅仅单独考虑IOPS是没有意义的。本文以一个案例来带你了解全面考虑影响存储性能的方方面面。

因为影响存储性能的因素太多了,而且不同存储产品的特性和处理方式也不同,为了简化的目的,本文暂不讨论Write/Read ratio,Sequential/random,  RAID Penalty,Cache,Dedupe,auto-Tiering,Partition Alignment等因素。

衡量指标:

Throughput

单位时间内传输的数据量。往往以KBPS或MBPS来衡量。

Latency (响应时间)

指完成一个IO请求所需要的时间。往往以milliseconds来衡量。

IOPS

Input-Output Per Second。衡量在一秒内能完成多少读操作和写操作。

Latency和IOPS的关系

IOPS = 1000/(Seek Latency+ Rotational Latency)

以上公式仅仅是在单个Disk的情况下的计算。这当然不能反映真实环境。但帮助我们大概了解二者的关系。下图的数据很老,仅仅说明不同类型Disk支持的IOPS是不同的。

RPM

SSD

6000

15K

175

10K

125

7200

75

5400

50

那么在使用商用存储阵列情况下,我们可不可以说IOPS越高,Latency就越低呢?不可以简单下这个结论。

IOPS和Latency不是简单的线性关系,在IOPS小于一个数值(比如3000之内),IOPS越高可能Latency就越低。一旦超过该临界点,比如IOPS在4000的时候,Latency可能是IOPS在3000时的3倍!这个临界点取决于使用的阵列。

在你看到某阵列支持Million  IOPS的数据时,别高兴的太早。也许该阵列处理那么多IOPS时Latency会高达30 ms!如果你的应用对Latency要求很高,比如信用卡系统的实时Transaction,大于4ms的Latency足以让该Transaction失败.

虚拟化架构师常考虑的一个问题是,前端接口卡(HBA,iSCSINIC)的带宽需要多大?后台存储能否有能力处理预计的IOPS?

假设有一个桶,桶的容积是一定的。可以容下很多小球,可是只能容下几个大球。

这里球的容积指的是一个操作的BlockSize。

<a target="_blank" href="http://blog.51cto.com/attachment/201306/204058525.png"></a>

BLOCK SIZE:

Block size是由具体应用程序来决定的,同一个应用在不同情况下Block Size也是不同的。比如Oracle在处理Online Transaction时Block Size 是2KB或者4KB ,而在decision support system中的BlockSize是8KB,16KB   甚至16KB。EXCHANG2007使用8KB,SQL最小使用8KB,而SAP使用64KB

下面的公式是描述Block Size,Throughput和IOPS的关系

Throughput(MB perSecond)* 1024( Convert KB to MB)/Block Size (KB/IO) = IOPS

情景一

以某种备份应用程序为例,连续地写操作,Block Size是64KB,如果采用16Gb FC HBA, 那么Throughput是1700 MBps ,套用该公式得出:

1700MBps * 1024 /64KB = 27,2000  IOPS

相对于8Gb FC而言, 16Gb FC的Throughput值更大,也就意味着能传输更高的IOPS。千万注意这只是考虑了前端的情况。后台的存储能否处理这么多的IOPS呢?那就要咨询你的存储提供商了,在保证支持该IOPS的同时,Latency也要满足你应用的要求。

情景二

刚才我们是在预先假定Throughput一定的情况下来推算从前端传输到后台存储的IOPS,我们也可以反过来应用那个公式。

假设一个采用iSCSI共享存储的虚拟桌面环境,每台win7虚拟机20IOPS,一共有200台,那么对存储的要求是能处理20*200=4000 IOPS。通常window的I/O size是4KB,那么iSCSI NIC的速度需要多快呢?

X * 1024 / 4 KB = 4000

X=15.625 MBps  or 0.12 Gbps.

这意味着1Gbps的iSCSI完全能满足上述要求。

通过我们上面的两个情景,一正一反两种方式应用了那个公式。

参考:

<a href="http://vmtoday.com/2013/01/storage-basics-part-ix-alternate-iops-formula/">StorageBasics – Part IX: Alternate IOPS Formula</a>

<a href="http://www.brianmadden.com/blogs/rubenspruijt/archive/2010/11/27/vdi-and-storage-deep-impact.aspx">Understanding how storage design has a big impact onyour VDI (updated September 2011)</a>

<a href="http://www.yellow-bricks.com/2009/12/23/iops/">http://www.yellow-bricks.com/2009/12/23/iops/</a>

<a href="http://www.thesanman.org/2012/03/understanding-iops.html">UnderstandingIOPS</a>

<a href="http://www.networkcomputing.com/servers-storage/more-on-performance-metrics-the-relation/240005213">Moreon Performance Metrics: The Relationship Between IOPS and Latency</a>

本文转自frankfan751CTO博客,原文链接:http://blog.51cto.com/frankfan/1214831 ,如需转载请自行联系原作者