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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

技术小甜 2017-11-16 18:40:00 浏览625
展开阅读全文

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


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

因为影响存储性能的因素太多了,而且不同存储产品的特性和处理方式也不同,为了简化的目的,本文暂不讨论Write/Read ratioSequential/random,  RAID PenaltyCacheDedupeauto-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

IOPS

SSD

6000

15K

175

10K

125

7200

75

5400

50


以上是最简化的情况,没有考虑Write/Read ratioRAID Penalty,Cache等因素。

那么在使用商用存储阵列情况下,我们可不可以说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失败.


Block Size,Throughput和IOPS的关系

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

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

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

204058525.png

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完全能满足上述要求。


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


参考:

StorageBasics – Part IX: Alternate IOPS Formula

Understanding how storage design has a big impact onyour VDI (updated September 2011)

http://www.yellow-bricks.com/2009/12/23/iops/

UnderstandingIOPS

Moreon Performance Metrics: The Relationship Between IOPS and Latency

How many IOPS can a HDD, HHDD or SSD do with VMware?












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

网友评论

登录后评论
0/500
评论
技术小甜
+ 关注