IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    u010170023发表于 2013-06-02 20:50:01
    love 0

    作者:范军 (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

    IOPS

    SSD

    6000

    15K

    175

    10K

    125

    7200

    75

    5400

    50


    以上是最简化的情况,没有考虑Write/Read ratio,RAID 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。

    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




沪ICP备19023445号-2号
友情链接