有没有想过,厂商自己提供的存储产品性能指标数据没有任何意义?用户要准确地评估不同厂商的存储产品,还需仔细阅读文中提到的SPC-1基准测试报告……
前言
近年来,随着存储系统由服务器的附属变成IT系统中独立的子系统、由“外设”变成信息系统基础架构的中心,用户如何规划、设计和挑选符合自己需求的存储系统已变得越来越重要。
每个购买存储系统的用户都希望买到性能高、价格低、质量好(故障率低、可靠性高)、容量大(扩充能力强)、易于管理、售后服务好的存储产品,其中大多数用户最关心的还是存储产品的前三项指标,即性能、价格和可靠性。具体如下:
·体现存储系统性能的最主要指标是IOPS(I/Os per second),即每秒输入输出次数;
·存储产品的价格需从二个方面进行评估,如果用户对存储的主要需求是存储容量,则可由每GB存储容量的价格比较各存储厂商的产品;如果用户对存储的主要需求是存储性能,则可由每IOPS的价格比较各存储厂商的产品;
·对于基于硬盘的存储系统,其可靠性MTTF(平均故障出现时间)可表示为:
MTTFarray=MTTFdisk/存储系统中的磁盘总数
其中:MTTFdisk 代表每块磁盘的平均故障出现时间,目前磁盘的MTTFdisk最高可达1,400,000小时。
在存储系统的性能方面,很多存储厂商都为其产品公布了漂亮的IOPS指标数据:IOPS达十几万甚至几十万;但这些厂商大都不公布测出该IOPS指标的存储系统具体配置,因此用户也就无法对该存储产品的性价比和可靠性进行评估。很多用户在实际使用这些存储产品时却发现这些有着漂亮IOPS数值的存储产品性能很差,这是怎么回事?本文将为用户破解这个谜团!
一、此IOPS非彼IOPS,要真正了解存储系统的性能还需看其SPC-1 IOPS™
1、 苹果和桔子怎么比较?没有统一的测试标准、环境和参数,IOPS就没有可比性
这是因为IOPS测试结果与很多测试参数有关,如果各个存储厂商都按自己的标准对存储系统进行测试,那么测试出的IOPS等指标就没有任何意义,原因如下:
1)随机(Random)读写的IOPS与顺序(Sequential)读写的IOPS大不一样:对于基于磁盘的存储系统,顺序读写的IOPS要远远大于随机读写的IOPS,其中100%顺序读的IOPS又大于100%顺序写的IOPS、100%随机读的IOPS又大于100%随机写的IOPS。下面的图表是某品牌磁盘阵列(配置12块Maxtor 250GB, 7,200RPM的磁盘,512MB Cache)的不同IOPS,就清楚地说明了这种情况:
2)从上面的图表可以看出:无论是顺序还是随机读写IOPS测试,传输数据块尺寸越小,IOPS值越大。
3)对于基于磁盘的存储系统,在其它测试条件一样的情况下,磁盘数量越多,IOPS值越大(几乎呈线性增长)。具体见下表:
4)在其它测试参数和条件一样的情况下,RAID-10配置的IOPS要大于RAID-5配置的IOPS。具体见下表与上表的比较:
5)在其它测试参数和条件一样的情况下,在同样的RAID级别配置下,IOPS值随磁盘中数据量的增加而下降。具体见下图:
综上所述,在同等情况下,100%顺序读、100%顺序写、100%随机读、100%随机写这四种IOPS中,100%顺序读的IOPS最高。因此很多厂商公布的那些非常高的IOPS数据实际上是将被测存储系统配置了尽量多的小容量、高转速磁盘且每个磁盘装载数据量不多、设置为RAID-10时测出的100%顺序读(Sequential Read)IOPS的最大值。而且很多厂商在公布上述100%顺序读(Sequential Read)IOPS时还隐去了“100%顺序读”字样,笼统地称为IOPS,还不透露被测存储系统的具体配置。
但多数用户实际使用的环境既有顺序读写、也有随机读写操作;传输数据块尺寸大小都有;为了有效利用存储系统的存储容量,很多用户都采用RAID-5,而且尽量使用大容量磁盘来减少磁盘数量,以少占存储系统的宝贵槽位空间。因此,上述测试环境得到的100%顺序读(Sequential Read)IOPS指标完全不能代表该存储产品在用户实际应用环境下的性能。这就是厂商公布的IOPS很高,而产品在用户实际使用环境中性能却很差的原因。
那么是否有权威的存储性能基准测试呢?
2、 关于SPC和SPC-1 IOPS™
SPC的全称是Storage Performance Council(即:存储性能理事会),它的成员由几乎全部的国外存储厂商和部分大学、研究机构组成,SPC是一个非赢利的组织,其使命是定义、标准化存储系统的基准测试,并提升存储系统基准测试的知名度、扩展其影响,使之成为计算机行业最具权威性的存储性能测试结果,使计算机用户可以不受现存混乱的各种存储性能测试结果的影响(如:很多厂商使用IOMeter或IOGEN等测试工具,按自己的标准,如“Read Cache Hits IOPs”、“Large Block Sequential Bandwidth”等测试IOPS,也不公布被测存储系统的配置细节,使IOPS没有可比性,用户根据其IOPS对存储产品进行评估非常困难)。
目前,SPC的SPC-1基准测试主要是针对随机I/O应用环境的,SPC-2基准测试主要是针对顺序I/O应用环境的。其中SPC-1基准测试按下表的读写比例,以不同的数据块尺寸产生I/O数据流对存储系统进行测试,使SPC-1基准测试很好地模拟了OLTP、数据库和e-mail等真实应用环境,使SPC-1基准测试结果具有很高权威性和可比性。
Read | Write | All | |
Random(随机) | 29 | 32 | 61 |
Sequential(顺序) | 11 | 28 | 39 |
All | 40 | 60 | 100 |
SPC公布的SPC-1基准测试报告详细地描述了被测存储产品的配置、价格清单及测试的系统结构图和被测存储产品的以下各项指标在SPC-1基准测试中的测试结果:
· SPC-1 IOPS™ (Maximum Throughput:每秒输入输出次数的最大值)
· SPC-1 LRT™(Average Response Time at the low level of demand:平均响应时间)
· SPC-1 Price-Performance($/ SPC-1 IOPS™:每SPC-1 IOPS™的价格)
· Storage Total Price(被测存储系统的总价)
· Storage Total Capacity
· Data Protection Level:RAID1 or RAID5
通过SPC-1基准测试报告,用户可以非常清楚地了解被测存储产品的各方面细节,使用户可较容易地评估和比较各个厂商存储产品的性能、价格、性价比及容量、可靠性等。
专家提示:要评估和比较不同厂商的存储产品,就要看这些存储产品的SPC-1基准测试报告。
查询各存储厂商的SPC-1基准测试报告,可访问http://www.storageperformance.org/results
二、苹果是天然红还是上了色素:SPC-1 IOPS™仍可被“加工”出高数值,用户需小心、仔细研读SPC-1基准测试报告
SPC-1基准测试虽然规定了严格的顺序和随机读写比例和数据块尺寸以及在何种磁盘负载情况下取值,但没有规定被测存储产品使用多少个磁盘,也没有规定被测存储产品设置何种RAID级别。好在存储性能理事会(SPC)要求测试报告必须详细地列出被测存储系统的配置和价格,这使用户得以了解其中的奥妙,可以作出正确的评估和判断。
从前面我们已经了解到RAID-1的IOPS要比RAID-5的IOPS高;而且IOPS值随存储系统中磁盘数量的增加而线性增长。因此,虽然现实环境中大多数用户都采用RAID-5,但各存储厂商在进行SPC-1基准测试时都选择了RAID-1设置;为了得到高数值的SPC-1 IOPS™,各厂商还尽量增加被测存储系统的磁盘数量,因为增加磁盘数量就等于增加IOPS;同时为防止因增加磁盘数量而过大幅度地增加被测存储系统的总价格,以至于过多拉高每SPC-1 IOPS™的价格,故各厂商都尽量使用小容量、高转速的磁盘:如36.4GB甚至18.2GB的磁盘。
目前,SPC-1 IOPS™超过10万的共有4种存储产品,下表是所谓存储性能理事会“100K SPC-1 IOPS™ 俱乐部”的4钟存储产品的SPC-1基准测试报告要点对比,我们来看看其中的奥妙:
测试指标
|
测试结果
| |||
3PAR InServ™ S800 X-Series
(8-Node)
|
Fujitsu Storage Systems ETERNUS6000 Model 1100
|
IBM TotalStorage® SAN Volume Controller 1.2.1
|
Solid State Disk
(固态存储):
RamSan-320
(8 port)
| |
SPC-1 IOPS™
|
100,045.74
|
100,242.23
|
100,128.61
|
112,491.34
|
SPC-1 Price-Performance
|
US$14.81/SPC-1 IOPS™
|
US$13.39/SPC-1 IOPS™
|
US$12.50/SPC-1 IOPS™
|
US$1.50/SPC-1 IOPS™
|
Total ASU Capacity
(执行
SPC-1
测试的存储容量)
|
16
,468.672 GB
|
11
,377.366 GB
|
7
,200.000 GB
|
68.719 GB
|
被测系统物理存储容量
|
35,415.571 GB
(
960
个
36.4GB 10krpm
磁盘,
64GB
Cache
)
|
23,771.201 GB
(
656
个
36.4GB 15krpm
磁盘,
96GB
Cache
)
|
32,886.725 GB
(
448
个
73GB 15krpm
磁盘,
64GB
Cache
)
|
77.309 GB
|
Data Protection Level
|
RAID-1
|
RAID-1
|
RAID-1
|
Other Protection Level
|
SPC-1 LRT™
|
2.96毫秒
|
1.90毫秒
|
2.85毫秒
|
0.20
毫秒
|
被测存储系统总价
|
US$1,482,977
|
US$1,342,738
|
US$1,251,984.75
|
US$168,776
|
被测存储系统可靠性估算:平均出故障时间
MTTF
array
=MTTF
disk
/
存储系统中的磁盘总数
|
1458
小时
|
2134
小时
|
3125
小时
|
大于
100
万小时
|
从上表可以看到,前三种SPC-1 IOPS™达100K的存储产品进行SPC-1基准测试时,全部采用RAID-1设置;并使用400个以上的小容量、高转速的磁盘来实现高SPC-1 IOPS™,但它却导致该存储系统的可靠性大幅度地降低;而且对于用户来讲,如果真需要32TB的存储容量,用户会使用220块146GB的磁盘或110块293GB的磁盘来实现,而不会去用448块73GB的磁盘或960块36GB的磁盘去实现。这样一来,用户如果购买标着SPC-1 IOPS™达100K的32TB存储系统,实际SPC-1 IOPS™却只有100K的1/2到1/10;如果用户再为了提高存储容量的利用率而采用RAID-5设置,那么所购存储系统的SPC-1 IOPS™则会更低了!
第四种SPC-1 IOPS™达100K的存储产品是个例外,因为它是采用SDRAM作为存储介质的固态存储产品(Solid State Disk),其高性能、高IOPS™是与身俱来的,其SPC-1 LRT™(平均响应时间)也是SPC网站公布的所有存储产品中最低的。但令人惊奇的是固态存储产品(Solid State Disk)的SPC-1 Price-Performance(每SPC-1 IOPS™的价格)居然是SPC网站公布的所有存储产品中最低的,达US$1.50/SPC-1 IOPS™。
三、如何快速利用SPC-1基准测试报告评估自己的存储系统
既然某存储产品测试的SPC-1 IOPS™值与用户实际购买的该产品SPC-1 IOPS™值有差别,那么用户如何估算自己所购买的存储产品的实际SPC-1 IOPS™值呢?
SPC网站(http://www.storageperformance.org/results)上公布了大多数存储厂商的存储产品的SPC-1基准测试报告,通过查询这些报告中的SPC-1 IOPS™值和测试报告中所描述的被测存储产品的磁盘总数,用户就可以根据下列公式快速估算你所采购配置的某一存储产品实际性能和可靠性:
·实际性能(实际SPC-1 IOPS™)= [实际采购存储系统的磁盘数 / 测试报告中被测系统的磁盘数] X 测试报告的SPC-1 IOPS™
·可靠性:MTTFarray=MTTFdisk / 实际采购存储系统的磁盘数
四、来自SPC-1基准测试报告的意外结论
固态存储产品(Solid State Disk)在人们的心目中一直是极其昂贵的。虽然专家研究和媒体分析都说存储的未来是固态盘代替硬盘,但由于在目前每GB固态存储产品(Solid State Disk)的价格是基于磁盘的存储系统每GB价格的几十倍至上百倍,因此固态存储产品(Solid State Disk)一直用于金融、电信等领域的在线关键业务应用环境,用较少容量的固态存储产品(大约10-20GB)存储在线关键业务应用中经常被访问的数据,如:数据库日志等,以提升这些应用的性能。
但查询SPC网站(http://www.storageperformance.org/results)上公布的所有存储产品的SPC-1基准测试报告后,你却发现如果用户需要SPC-1 IOPS™值达到40,000的存储产品,对存储容量的要求又在150GB(含)以下,那么符合要求的最便宜的存储产品居然是固态存储产品(Solid State Disk):只需US$337,552,因为能达到SPC-1 IOPS™=40,000的磁盘阵列最便宜的也要US$418,251,原因是基于磁盘的存储系统要达到40,000的SPC-1 IOPS™,要靠配备150块以上的磁盘来实现,这样就增加了用户不必要的开支。下表列出了最便宜的二种达到40,000 SPC-1 IOPS™的磁盘阵列与固态存储产品(Solid State Disk)的比较。
存储产品的指标
|
根据
SPC-1
基准测试报告推算的结果
| ||
Sun StorEdge™ 6920 (16 tray)
|
IBM TotalStorage® FAStT900
(non-mirrored write cache)
|
Solid State Disk
(固态存储):
2 X
RamSan-320
(8 port)
| |
SPC-1 IOPS™
|
38,992*
|
40,391.53
|
112,491.34
|
SPC-1 Price-Performance
|
US$10.73/SPC-1 IOPS™
|
US$10.60/SPC-1 IOPS™
|
US$1.50/SPC-1 IOPS™
|
Total ASU Capacity
|
2
,444.000 GB
|
1
,971.337 GB
|
137.438 GB
|
存储系统物理总容量
|
8,221.682 GB
(
224
个
36.4GB 15krpm
磁盘)
|
6,482.76 GB
(
178
个
36.4GB 15krpm
磁盘)
|
154.618 GB
|
Data Protection Level
|
RAID-1
|
RAID-1
|
Other Protection Level
|
存储系统总价
|
US$418,251
|
US$428,319
|
US$337,552
|
* SPC-1 IOPS™推算根据:
· A00034号SPC-1基准测试报告:Sun StorEdge™ 6920 (8 tray:112个36.4GB 15krpm磁盘) SPC-1 IOPS™=19,496;
· A00033号SPC-1基准测试报告:Sun StorEdge™ 6920 (20 tray:280个36.4GB 15krpm磁盘) SPC-1 IOPS™=48,646.62;
通过上表的比较,可以看出过去我们认为固态存储产品(Solid State Disk)极其昂贵、只能少量使用的传统观念是不正确的,事实证明固态存储产品(Solid State Disk)在要求高IOPS的场合是最便宜的存储产品。
什么情况下需要40,000 SPC-1 IOPS™的存储产品呢?
当服务器通过SPECsfs97基准测试达到每秒执行10,000次操作时,就等同于对服务器后端的存储系统执行每秒4,000次的磁盘操作。这就是说SPECsfs97达100,000的服务器,需要匹配40,000 SPC-1 IOPS™的存储产品,才不会使服务器的处理能力浪费。下面是一些SPECsfs97达100,000的服务器:
· IBM eServer pSeries 690 Turbo(16 X 1.3GHz POWER4,128GB内存),SPECsfs97=111,687 Ops/Sec;
· IBM eServer pSeries 690(16 X 1.7GHz POWER4+,128GB内存),SPECsfs97=167,007 Ops/Sec;
· HP AlphaServer GS1280 Model 8(8 X 1.15 GHz EV7,64GB内存),SPECsfs97=107,149 Ops/Sec;
· HP AlphaServer GS1280 Model 8(16 X 1.15 GHz EV7,96GB内存),SPECsfs97=154,654 Ops/Sec
这说明主流服务器厂商的高端UNIX服务器需要匹配SPC-1 IOPS™达40,000 以上的存储产品,如果该用户的在线业务数据量又小于200GB,那么满足要求的最便宜、可靠性最高的存储产品是固态存储产品(Solid State Disk)!