1.3 评价指标和功能需求
1.3.1 评价指标
显然存储系统和部件的基本评价指标就是容量,而评价容量的指标就是字节数。当前单条随机存储器的容量大约为GB级,而单个磁盘驱动器的容量为TB级,单张DVD光盘容量为5GB左右,而蓝光光盘容量为20GB,磁盘阵列的容量依赖于其中磁盘驱动器的数量和组织模式,而大规模存储系统的容量从几十个TB到几十个PB不等。存储容量是存储设备的系统静态指标,特别是对于存储设备而言,容量在设备生存期基本是不会改变的;而许多存储系统往往通过系统扩展技术实现实际存储容量的增加。
相对于存储容量,在存储设备和系统中与时间相关的两个基本性能评价指标为系统吞吐率(Throughput)和请求响应时间(Response time)。虽然这两个指标也一直是计算机系统和网络的重要评价标准,但在存储系统中它们往往具有特殊的含义。在网络系统中往往使用每秒比特(Kbit/s,Mbit/s和Gbit/s)来表示网络连接速度,而在存储系统中缓冲区(buffer)和I/O接口的传输速度往往使用每秒字节(KByte/s,MByte/s和GByte/s)表示。而请求响应时间根据存储部件和任务的不同可以从几个ns到几个小时不等。
对于存储系统和部件的设计者而言,吞吐率定义为单位时间内系统能够完成的任务数,它是一个重要指标,反应了系统处理任务的能力。但在实际应用中,吞吐率大小往往依赖于任务的特征,例如磁盘阵列评价指标每秒I/O数量(I/Ops,I/O per Second)就是指每秒的I/O处理个数,显然当每个I/O请求为1MB和8KB时,就会得到不同的吞吐率;并且吞吐率和请求大小一般情况下不具有线性比例关系,上例中通常后者吞吐率也不会是前者的128倍。这种现象来源于多种原因,其中一个原因是每个请求无论大小都需要相对固定用于对请求包进行分析和处理的时间。显然很难仅仅用吞吐率去衡量存储系统的性能。
对于应用程序和用户而言,请求响应时间是他们更加关注的。实际请求的响应时间受到多个方面的影响,首先存储系统结构会影响请求响应时间,例如一个具有本地8MB缓冲区的磁盘驱动器通常就比具有更小缓冲区的磁盘驱动器具有更好的响应时间;其次请求自身的特性也会影响实际的响应时间,例如8MB的请求比4MB的请求有更长的响应时间;再次请求数据的物理存放位置也会对响应时间产生巨大影响,例如本地磁盘中的数据比远程磁盘中的数据具有更小的访问延迟;还有请求响应时间还依赖于当前存储系统的繁忙程度,请求在负载重时比负载轻时有更长的响应时间。实际上还有其他因素也会影响请求的响应时间,例如前后请求是否连续对于磁盘响应时间就是极其重要的。这些都使得在存储系统中对于请求响应时间的计算和分析非常困难。
从上面的分析可以看出,无论吞吐率还是请求响应时间,都涉及到请求或者说负载的特征,不同的负载在相同存储系统上可能具有截然不同的表现,例如一个面向共享应用的分布式存储系统可能对于大量并发读写的负载(科学计算)有很好的性能,但对于具有大量频繁更新操作的联机事务处理(OLTP,On-Line Transaction Process)就有很差的性能。因此在对于存储系统进行评价的时候,确定运行在该系统之上的典型应用负载是非常重要的问题。
正是因为存储系统中影响吞吐率和响应时间的因素太多,所以在当前的研究中很难使用模型的方法精确计算出存储系统的性能,那么更多的采用构建仿真或者搭建原型系统,通过运行典型负载,然后通过实际测量来获取系统的性能。