LoveUnix » 存储设备 » [zt牛文,令人开眼]闲聊存储产品各种性能差异区别
让LU留住您的每

一天 让LU博客留住您的每一天
2005-11-8 11:24 eigrpeigrp
[zt牛文,令人开眼]闲聊存储产品各种性能差异区别

闲聊存储产品各种性能差异区别

  DoSTOR特约作者/董唯元 ◎ 2005-09-06 14:55 存储在线
    说起存储产品的评价,性能永远是第一重要的问题。吹嘘性能的各种说辞在供应商口中不断花样翻新:带宽(Bandwidth)、IOPS、顺序(Sequential)读写、随机(Random)读写、持续吞吐(Sustained Throughput)、突发处理能力(Burst I/O)等等看似甚为专业的名词充斥着解决方案和技术分析报告。存储产品的性能似乎被量化得格外清晰,作为用户,只需要简单的比较两个数字,就可以清楚的得出孰优孰劣的结论。然而,事实果真如此吗?
  
    让我们先来看几个有趣的实例。
  
    在Engenio公司的网站上,很容易就可以分辩出4884控制器比2882控制器定位要高些,扩展能力也好些。但是,[url]http://www.engenio.com/default.aspx?pageId=68[/url]这个网页上列出4884控制器持续吞吐能力是390MB/s,而[url]http://www.engenio.com/default.aspx?pageId=69[/url]这个网页上显示2882控制器的同一个性能指数为400MB/s。难到是网页搞错了?再到存储系统的说明网页上确认一下([url]http://www.engenio.com/default.aspx?pageId=62[/url])数据的确没有错。
  
    另一个例子是来自Infortrend公司的两款产品:A16F-G2221(FC-SATA RAID)和A16U-G2421(SCSI-SATA RAID)。无论是扩展能力还是价格方面,前者似乎都比后者略为高端一些,但是性能指数似乎并不支持这一结论,甚至令人莫衷一是。从两者的详细指标列表中可以清楚的看到,前者的顺序读写带宽分别为386MB/s和310MB/s,而后者是450MB/s和302MB/s。就是说,前者的写入带宽更高些,而后者的读取带宽更好些。到底哪个产品的处理能力更强些呢?
  
    如果把这个两个例子中的产品再横行比较一下,问题就更明显了。作为典型中端存储设备,Engenio 4884的最大带宽(390MB/s)还不如Infortrend的SCSI-SATA盘阵(450MB/s)!而且,Infortrend的速度指数还明确标明是RAID5之后的测试结果,而Engenio则仅以“持续介质吞吐”(Sustained Throughput to Media)指代,并没有说明有无冗余校验。也就是说,Engenio 4884在RAID5的情况下很有可能带宽还不足390MB/s!要知道,Engenio 4884就是IBM公司的FAStT 700,价格可是A16U-G2421的数倍呢。难到花钱买FAStT700的用户都冤枉了?
  
    类似的例子还有很多很多……
  
    不仅产品间的对比这种情况,在纯粹技术层面也存在有类似的例子。令人印象最为深刻的当属 1999年光纤通道技术刚刚产品化的时候,一个来自最终用户的最为普遍的问题:“光纤技术比SCSI先进吗?为什么光纤通道的最大带宽是100MB/s,而SCSI的最大带宽是160MB/s呢?”几年之后,这个疑问依然广泛存在,只是两种技术的带宽都分别翻了一倍,变成了200MB/s之比于320MB/s。还是SCSI的速度快!
  
    当年存储工程师中间流传着一个火车和马车的比喻,来说明光纤技术比SCSI技术领先。大概意思是说,光纤技术就好似火车,而SCSI技术是马车。虽然世界上第一辆火车没有马车跑得快,但后来的发展证明,火车这一技术是绝对领先于马车的。
  
    这个说法在今天基本已经得到证实,光纤技术已经发展到400MB/s的带宽,并正在规划着下一代800MB/s或1GB/s的标准,而传统并行SCSI似乎不可能再超越320MB/s的极限了,替代传统并行SCSI的SAS(串行SCSI)技术也只有300MB/s,其后的第二代SAS虽然预计可以达到600MB/s之多,但那时的光纤通道技术应该也已经是800MB/s或1GB/s了。火车终于超过马车了!
  
    但是,现实的问题是:作为用户,真的需要那些还不如马车跑得快的第一代火车吗?难到不应该等到火车进步到比马车跑得快了之后,再购买火车吗?
    我的答案是:不尽然,要看具体的需求。如果你对速度的要求两者都可以满足,而又希望安全准时的长途运送货物,那么既便马车跑得更快些,也不是好的选择。毕竟打劫马车比打劫火车要容易得多嘛!
  
    也许打劫的例子实在离题太远,我们还是回到存储产品的讨论上,走进那些五花八门的指数背后,去看看性能的真实面目。
  
    带宽与I/O
  
    这是两个衡量存储设备性能最基本的概念,明确的区分两者也是对存储产品性能了解的第一步。如果我们把存储设备比做一间会议室,被存取的数据就是前来参加会议或从会议中离开的人,那么带宽性能就是指这间会议室大门的宽度,大门越宽,可以同时进出的人也就越多,而I/O性能是指房门开合的频繁程度,迎来一批前来参加会议的人,就需要打开一次大门,送走一批人也是一样,哪怕这“一批人”其实只是一个人。由此可见,当我们考察会议室的门设计得是否合理时,必须结合会议本身的性质。
  
    对纪律严明的会议来说,与会者轻易不会凌乱的进出会场,人们在会议开始时统一进入,结束时再统一离开。对这种情况,门的宽度就十分重要,而是否易于开合则显得不那么关键,反正这扇门在整个会议中只需要开合两次而已。相反的,对于联欢性质的聚会而言,门设计得太宽除了显得气派之外,并没有什么实际的意义,但是门开合的频率却很重要,因为会有客人频繁的进进出出。
  
    对应到存储设备上,道理也是一样。大文件持续传输型的应用需要的是充分的带宽性能,而小文件随即读写的应用则要求足够的I/O能力。那么多大的文件算“大文件”呢?一般而言,超过1MB大小的文件就可以算做“大文件”了。如果您的应用系统处理的资料中,最小的文件也有4~5MB甚至几十MB,就需要重点考察存储系统的带宽性能了。如果您的应用是数据库形式,或是电子邮件系统,系统中有大量KB级大小的文件,那么就可以忽略掉产品介绍中xxx MB/s的字样,重点关心xxx IOPS就可以了。
  
    影响性能的因素
  
    当然,仅看产品彩页中的简单数字还是远远不够的。存储设备的标称指数只是其最最理想情况下的表现,而实际应用中,存储设备表现出的处理能力往往与其标称指数相去甚远。为了反映更多的细节,会议室的比喻不足以说明问题。所以我们前面的例子再改进一下,把存储设备看作一栋有很多房间的大厦。人们从门口进入大厦,先来到大堂,经过走廊,最后到达房间。人们进大厦的方式也分为两种:一种是所有人按房间号码顺序排好队,一起进入大厦,我们称之为“顺序进入”;另一种是他们无规律的自由进入,我们称为“随即进入”。
  
    显而易见,“顺序进入”的效率要大大高于“随即进入”。这就说明,一般情况下,顺序读写的性能要远高于随即读写的性能。还有一个结论也不难得出,一个宽敞的大堂更有利于偶然性较大的“随机进入”,而对“顺序进入”的人群而言,经过大堂基本属于浪费时间。存储设备中的“大堂”就是高速缓存。也就是说,大容量高速缓存可以提高随机读写性能,而对顺序读写的性能改进则不明显。
  
    还记得前面讨论的带宽和I/O的差别吗?带宽考察的是单位时间进入大厦的人数,而I/O关心的是单位时间进出大厦的批次。从次可见,如果走廊没有任何变化,那么大堂只要不是太小,就不会影响带宽性能。相对的,对I/O性能而言,大堂显然是越大越好。总之,影响带宽的因素主要是前端控制器(大门)和后端磁盘通道(走廊)的带宽;而影响I/O的因素主要是控制器(大门)处理能力和高速缓存(大堂)容量。
  
    当然,前面的讨论都基于一个假设前提:磁盘(房间)足够多。如若只配置寥寥几个磁盘,它们就会成为整个系统的性能瓶颈。任凭其他配置如何奢华,也于事无补。那么,“足够多”又是多少呢?对光纤通道存储设备来说,每个光纤通道上的磁盘数量达到50~60个的时候性能达到最佳。所以一般中高端存储设备都把每通道50~60个磁盘设计为扩展极限,而不是光纤通道技术规定的126个。
   
图1. 磁盘数量影响光纤环路性能
    这样设计存储产品,可以让系统的性能随着容量的增加而增长。但是同时,用户必须明白,在容量没有配置到最大值的时候,性能就无法达到厂商所宣称的指标。一些厂商还声明其产品的性能可以随着容量的增长而线性增长,按这样讲,当你的存储设备只配置了最大容量的一半时,你得到的性能也只有系统最佳性能的一半。
  
    性能曲线
  
    这里所说的“最佳性能”就是厂商所宣称的指数吗?很遗憾,答案是不一定,一般都不是,而且可能会相差很远!我已经听到有人在叫“天啊!那厂商公布的数字到底有什么意义啊。”别急,看到下面两个图示就清楚了。
  
图2. IOPS性能曲线示例
  
图3. 带宽性能示例
    这两个图示是典型的存储设备性能实测曲线,所有曲线来自同一个存储设备的同一个配置。不同产品在纵向指标上表现各异,但曲线的形状都大体相同。从图上可以看出,用户环境中存储设备的性能表现严重依赖数据块的大小。以顺序读取操作为例,如果应用产生的数据块大小在8KB左右,那么带宽性能和I/O性能最多也只能达到峰值性能的一半左右。如果希望得到更好的I/O性能,就需要尽量将数据块调整得更小。但不幸的是,如果希望带宽性能更好,就需要想办法把数据块设置得更大。看来,带宽与I/O性能是鱼与熊掌,难以兼得啦。
    不过没关系,如我们前面提到的,幸好大多数用户其实只需要其中一种性能。要么是大文件类型的应用,需要带宽性能;抑或是小文件类型应用,需要I/O能力。需要带宽的用户相对容易得到满足。从图3可以看出,只要数据块大于128KB,顺序读的性能就基本可以达到系统饱和值。对顺序写,饱和数据块略大一些,但256KB也不算难以达到的尺寸。
    得到最佳的I/O性能似乎就没那么容易了。从图2的曲线来看,I/O性能并没有一个饱和状态,这就要求数据块无穷尽的尽量小。然而所有应用都不可能支持无穷小的数据块。实际上,大多数的数据库应用产生的数据块都在2KB或4KB左右。在这个尺度上,应用得到的性能距离最高性能还有至少20~30%的空间呢。
  
    持续和突发
  
    回到我们那个关于大厦的例子。如果大厦临时发生紧急情况,比如火灾,人们争先恐后的蜂拥在门口,景象一定是一片混乱。在实际应用中,存储系统也可能遭遇类似的情况,一时间大量数据同时被访问,造成系统严重堵塞。这就像存储系统内的交通高峰,往往需要类似交通管制的手段才能提高系统效率。一些厂商会宣称他们的产品在这种情况下的“交通管制”能力有多强,以致可以从容应付大规模的突发访问。诸如“全交换结构”、“直接矩阵结构”等技术均属此类。究其本质,这些“交通管制”都是在大堂(高速缓存)的设计上做文章,将原本一个公共大堂的结构变成若干独立大堂的结构。以此来避免火灾发生时,所有人都拥挤到一个大堂里。
  
    这样设计的确可在访问突然爆发时缓解系统压力,但是需要注意,这样设计的大厦内部一定布满了各种指示牌和路标,对任何一个进入大厦的人而言,进入房间的过程都将变得更复杂。其结果就是,非突发状态下,系统的持续读写能力往往还不如同等计算能力的简单结构存储。
  
    其他影响
  
    除了前面所谈到诸多方面外,还有很多因素都会影响到存储设备在实际运行中的性能。例如RAID级别的设置、磁盘类型甚至型号批次的匹配、缓存的镜像、SCSI指令队列深度的设置,这些方面都与性能结果直接相关。而且,为了能够得到最好的性能指数,几乎所有的厂商在测试自己产品性能的时候都会采用无冗余的RAID0、选用15k rpm的高速磁盘、将写缓存镜像保护关闭或者干脆关闭写缓存、将指令队列深度设置为最大。如此配置方式相信不是每个用户都可以接受的。
  
    另外,所有存储设备在运行快照或远程镜像等附加功能之后,性能都会明显下降,有些情况甚至会下降60%之多。如果用户的应用恰巧需要这些附加功能,就需要在选用存储设备之前认真的实地测量一下真实性能。免得满怀希望的买回家,使用起来却失望至极。
  
    这样的例子其实并不少见,记得我国某大型铁路局的某重要系统就曾经有过这样的失望经历。那时某国外知名厂商的一款中端存储设备刚刚下线,号称是全球第一款可以支持远程容灾的中端存储产品。正值铁路系统整体调整,该单位认为这款产品即可以实现远程容灾的功能,又只有中端产品的价格,是个性能价格比很高的产品。但是采购之后才发现,这款产品作为普通存储设备时,性能还可以应付系统压力,但是启动远程数据镜像之后,性能下降到原来的三分之一,完全无法满足系统需求。几经努力都失败之后,用户只好放弃了这个鸡肋,而为此付出的软硬件投资也付之东流。
  
    结论和建议
  
    想要知道梨子的滋味,最好的办法就是亲自尝一尝。对存储设备,这个道理尤其重要。只有在用户需要的配置方式下,在实际的应用系统中,实实在在的运行之后,用户才能真正清楚的感知存储设备的真实性能表现。纸上谈兵只怕会使用户在各种数据中迷失方向,难以做出正确结论。

2005-11-9 10:57 wolfop
嗯,不错,说的很有意义。

2005-11-9 10:59 darkbug
多让甲方用户看看:P

2005-11-13 16:17 orian
火车还是比马车好。

1。 FC 优于 scsi不是在于带宽,虽然以后一定超越scsi
FC好处在于SAN,可以实现共享,实现存储网络,哪个scsi bus能连超过15个物理设备?320MB/640MB时的连接距离?

2. FC和scsi是堂兄弟,fc还是scsi的血脉,里面跑的不还是scsi 3么?

3. 很多fc盘里面的电接口依然是scsi, 不过出口转成了fc

4。实际上fc可以理解为:有一个交换机控制的,串行的,基于光纤介质的scsi

让火车跑山路,让马车运堂克,都很偏激。帮甲方选择最适合的,集成商的价值。


作为系统架构师,对于存储选择通常有几点要考虑:
1. 吞吐量要求,每秒钟xxxMB的读 / 写 性能 (读写要分开,很多时候差别很大)
2. iops, 每秒钟支持的io, 强烈说明:一块裸磁盘,在没有cache, raid的情况下,一秒钟只支持90-120 个io(超乎想象的低?但这是事实), 从10年前到现在,差别不大,只是由于磁盘转数提高,性能才稍有增加。15000转的磁盘大约比7200转得高20-30%
3. 读写特性,顺序还是随机?顺序读写比随机读写块很多
4. 冗余,要求可靠性
5. 维护灵活性,如可自由扩大、缩小lun等等
6. 磁盘接口,主机是否已经有固定要求,scsi, fc, sata, ip...
7. 待访问的主机有哪些,想怎么访问(并行。。。)
8. 高级功能,例如iscsi, nas gateway, snapshot, 异步/同步复制...

技术是被选择的,而不应由于某种技术而选择方案

2005-11-14 15:40 darkbug
学习。。。。

2005-11-14 23:45 AND1
楼主转贴此文章写的比较平易近人,适合融化了将给甲方看
更看重orian的发言,短短一席话,体现了不少的东西。
和darkbug说得一样,学习……

2005-12-17 16:35 highpro
不错啊

2005-12-19 12:28 brucewoo
好东西

2007-6-5 10:27 hzl0903
学习了

2007-6-5 22:22 yddll
[quote]原帖由 [i]orian[/i] 于 2005-11-13 16:17 发表 [url=http://www.loveunix.net/discuz/redirect.php?goto=findpost&pid=504166&ptid=51626][img]http://www.loveunix.net/discuz/images/common/back.gif[/img][/url]
技术是被选择的,而不应由于某种技术而选择方案[/quote]
:lol :lol

2007-6-6 00:37 pyockee
好帖子应该顶出来再看看

2007-6-20 22:20 hexiong
好文!

2007-7-5 18:08 barry1
好文,关注中

2007-7-6 11:47 flysnowpp
学习一下

2007-7-6 13:35 emc2665
:victory: :victory: :victory: :victory:

2007-7-6 22:22 jacklu168
支持。。捧场。。。。

2007-7-10 11:44 甲强龙
4楼的说不错啊。

2007-7-10 12:30 larryh
肉麻吹捧贴:lol


董唯元,我们的好写手,

你在哪里呵,你在哪里?

你可知道,我们想念你,

LU的人民想念你!

我们对着高山喊: 董唯元———

山谷回音: “他刚离去,他刚离去, 外企征途千万里, 他大步前进不停息。”

我们对着大地喊: 董唯元———

大地轰鸣: “他刚离去,他刚离去, 你不见那沉甸甸的方案书上, 还闪着他辛勤的汗滴……”

我们对着森林喊: 董唯元———

松涛阵阵: “他刚离去,他刚离去, 宿营地去上篝火红呵, 旅游景点工作人员正在回忆他亲切的笑语。”

我们对着大海喊: 董唯元———

海浪声声: “他刚离去,他刚离去, 你不见海边他LP身上, 他亲手给披的大衣……”

我们找遍整个世界,

呵,董唯元,

你在存储需要的每一个地方

辽阔大地

到处是你深深的足迹。

我们回到祖国的心脏,

我们在天安门前深情地呼唤:

董——唯——元——

广场回答: “呵,轻些呵,轻些, 他正在中南海修理机器……”

董唯元,我们的董唯元!

你就在这里呵,就在这里。

———在这里,在这里, 在这里……

你永远和我们在一起

———在一起,在一起, 在一起……

你永远居住在存储崩溃的地方,

你永远居住在焦头烂额的用户心里。

LU的人民世世代代想念你!

想念你呵, 想念你.

想……念……你……

2007-7-12 13:46 klizs
楼主好厚道,文章写的通俗易懂,在下收下了

2007-7-12 16:44 maping
学习学习

2007-7-13 09:44 barry1
可以到董唯元的blog去看看。

2007-7-13 16:33 zhoujiemoon
good works

i never miss i goy it

2007-8-7 21:21 dacoit
像orian兄看齐!

2007-8-8 17:02 canghai
牛 很牛

页: [1] 2


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.