A Queuing Analysis for Disk Array Systems-Stanford University(磁盘阵列的排队分析)

来源:互联网 发布:淘宝客服旺旺名字大全 编辑:程序博客网 时间:2024/05/16 03:04
摘要:针对磁盘阵列使用排队模型,作者研究了磁盘阵列子系统的性能和各个子系统之间的权衡,也研究了在各种不同CPU环境下设计这些子系统的一些准则。最后,作者将他们的模型与前人的一些仿真结果进行了比较。
1.简介
1.1 提高磁盘IO性能的途径
a.增加位密度
b.增加数据传送数率
c.增加磁头的寻道速度
d.减少路径争用
e.使用多磁臂的磁盘系统
f.使用带缓存的磁盘系统
g.最优化文件配置
h.增进磁盘的调度策略
i.使用基于半导体材料的存储系统
j使用磁盘阵列系统
在提高磁盘性能方面,上述途径中,有一些被认为是很有效的。而有些方案存在各种各样的限制,如:对通用市场来说,成本太高。因为作者当前的兴趣在磁盘阵列系统,所以在这篇论文中,作者仅仅只就磁盘阵列做了些许研究。
why RAID?
1.存储容量需求不断增加
2.存储数据可靠性要求越来越高
3.存取速度要求越来越快
另外RAID还具有:
性价比高
灵活性好
易于集成到现有系统。

1.2 相关研究工作
Kim提出了一种字节交叉存储的磁盘阵列系统,也使用了排队模型,她经过分析该系统的优缺点,得出一个结论:磁盘阵列系统仅仅对轻量级负载提供很好的性能。
参见论文
"Synchronized Disk Interleaving," IEEE Transactions on Computers, vol. C-35,no. 11, pp. 978-988, Nov. 1986

Livny也提出了一个所谓的分块技术,即配置若干个磁盘设备。
参见论文
"Multi-Disk Management Algorithms" Proc.of the 1987 ACM SIGMETRICS Conference on Measurement and Modeling of Computer System,pp. 69-77, 1987

Patterson等人提出了5种磁盘阵列的配置方法,也就是RAID1到RAID5。(当然这篇论文比较早,RAID6、7还没出世)
参见论文
"Disk System Architecture for High Performance Computing" Proc.of the IEEE, vol. 77, no.12, pp.1842-1858, Dec.1989
"A Case for Redundant Arrays of Inexpensive Disks (RAID)," UCB EECS,no.CSD 87/391,pp.1-18,Dec.1987

Reddy通过仿真的方法对磁盘阵列系统的性能权衡进行了研究。他也提出了一种集同步化和条块化于一身的一种混合磁盘系统
参见论文
"An Evaluation of Multiple-Disk I/O Systems," IEEE Transactions on Computers,vol.38,no.12,pp.1680-
1690,Dec.1989

Chen等人对交叉存储粒度对RAID配置的影响进行了研究。但他们仅仅只是针对条块化程度很高的配置方案进行了研究。
参见论文
"Maximize Performance in a Stripped Disk Array," Proc.Computer Architecture,pp.322-331,Jun.1990

2.建模
2.1 磁盘设备
盘片
盘面
磁道
扇区
柱面
寻道时间
旋转延迟时间
数据传送时间
总的磁盘访问时间

2.2 磁盘阵列配置
在这篇论文中,作者处理了几种阵列的配置方案。针对多磁盘系统的连接有两种基本的方法:
a.同步化
     一个组中的所有磁盘设备有相同步调的寻道和旋转延迟。数据以字节为单位交叉存储在所有的磁盘设备上。数据可以在数据缓冲区和磁盘以及磁盘之间并行地传送。每一个同步磁盘组可以被看作为一个单独的大的磁盘,这样就会有更快的数据传送速率。
b.条块化
     在条块化的磁盘配置中,磁盘之间并没有相同步调的寻道和旋转延迟。数据交叉存储的单位是一个或多个扇区。在一个组中,数据读出和写进磁盘是并行的。这个组对于小文件可以大致的看成是一个单独的传统磁盘设备,对于大文件就可以看成是一个拥有快速数据传送速率的大的磁盘设备,这点与同步化系统类似。
使用(q,r)对来表示多磁盘之间的连接
一个逻辑设备包含q组分块的设备
一组设备包含r个同步化的物理设备

2.3 子系统建模
作者提出了针对若干磁盘阵列配置的性能评价的一个队列模型

定义了如下一些变量:


逻辑设备的规模:
The size of a logical device is de ned as the average number of physical devices that are simultaneously engaged in a le access。

l代表文件的大小,d代表深度(后面会有介绍)
逻辑设备的规模=simul*r

逻辑设备的数目:
      物理设备的总数(本论文中定为16)/逻辑设备的规模
举两个例子如下:



平均寻道距离的概率:


证明过程如下:




平均寻道时间:

a和b的值由应用在磁盘中的机械电机的特性所决定。
另外对于文件大小超过一个柱面容量的,还会有额外的寻道时间


Txfer:在缓冲区与CPU之间的数据传送时间

Tbuf:在缓冲区与磁盘之间的数据传送时间与Txfer相同
S:设备的服务时间

W:设备的等待时间

c表示服务时间S的变化率
根据排队论有:


磁盘利用率等于磁盘IO请求的到达率除以磁盘完成IO请求的服务率

2.4 系统建模
为了计算系统的性能,使用了一个中央服务器模型

又定义了如下一些变量:

吞吐量:

Little定律:系统中的平均任务数=到达率×平均响应时间
平均响应时间有以下4个部分组成:






由p<1得:


K值的估计
K被定义为逻辑进程数,这些逻辑进程是被一组不能并行执行IO请求的处理器所执行。
可以从处理器的数量和系统环境中任务数来估计K值。



对于计算密集型系统,K趋近于处理器的数量N;
对于IO密集型系统,K趋近于系统中最大任务数m。

2.5 其它术语
并行度:(q,r)对配置中q*r
条块化配置:(q,r)对中q不等于1,r等于1
同步化配置:(q,r)对中r不等于1,q等于1
混合配置:(q,r)对中q、r都不等于1
块:CPU、缓存、磁盘之间传送数据的最小单元,块大小必须为扇区大小的整数倍
深度:在条块化配置和混合配置中,交叉存储的粒度。
对深度的理解举例如下:


3. 系统的基本行为
3.1 子系统的行为
 逻辑设备数NLD
a.对于两种配置方案:如果有相同的q,那么更大的r就会有更少的逻辑设备数。

b. 如果有相同的r,那么更大的q会导致更少或相等的逻辑设备数。

这是因为用q分块的物理设备对于很小的文件来说扮演的是q个逻辑设备的角色,而对于大文件来说,扮演的就是小于q个逻辑设备的角色
c. 对于并发度相同的两种配置方案:同步设备数越大,逻辑设备数就越小。

d. 对于4KB的小文件来说,并行度仅仅只是部分决定逻辑设备数NLD。

e. 而对于大文件来说,并行度就可以完全决定逻辑设备数NLD。

对于服务时间S的分析与逻辑设备数NLD基本相同。
逻辑设备的利用率
对于n个物理设备,磁盘同步化和条块化技术会将数据的传送率提高n倍,同时逻辑磁盘的数量也会降低n倍。然而,响应时间并不仅仅由数据传送时间决定,还要考虑总的设备占用时间。响应时间包括数据传送时间和一些偏压时间,比如寻道时间和旋转延迟时间。
因此,对于性能来说,磁盘同步化和条块化使逻辑设备数降低n倍,然而服务时间却不止缩短了n倍。这就是磁盘阵列系统最重要的特性。如果那些技术对逻辑设备数和服务时间的影响相同的话,那么对于所有的配置,逻辑设备的利用率都可以同样定义为ɻ*S/n,这也会使磁盘阵列系统的性能权衡更容易。
响应时间
对于比较低的访问率,更小服务时间的配置有更高的性能
对于比较高的访问率,更大逻辑设备数的配置有更高的性能
对于小文件,S和NLD只是部分由并行度决定
对于大文件,S和NLD就主要由并行度决定了
对于小文件来说,逻辑设备数NLD是主要的性能影响因素;
对于大文件来说,服务时间S是影响性能的主要的因素。

3.2 系统的行为
由于处理器变得更快,系统吞吐量会增加,但是之后,由于等待时间的增加导致长时间的响应时间,使吞吐量接近饱和,最后就处理速率来说,系统吞吐量达到饱和。
处理256KB文件的速率低于处理4KB文件速率的原因是:256KB的文件的数据传送时间远远大于4KB文件的数据传送时间。
更高的并行度并不会提供最佳的配置性能。

4. 系统性能的影响因素
4.1 处理速率的影响

对于小负载来说,由于CPU有一些空闲的时间,等待时间就不会影响系统的性能,因此更小的服务时间就会提供更高的性能。

对于大负载来说,总的等待时间和服务时间共同决定系统性能。所以,在这种情况下,NLD和S之间的权衡很敏感。



前面已知:改变磁盘配置(n,S)对成线性变化。令:

则:

4.2 逻辑进程数的影响
a.高并行度适用于低访问速率的系统
b.低并行度适用于有大量逻辑处理器的系统
c.并行度为4或8适用于高访问速率并且K值很大的系统
d.并行度为4或8也适用于中等访问速率的系统,但要求CPU的处理速率和IO请求的到达速率平衡。

4.3 深度的影响





所以可以得出:




此处认为响应的S求得有点问题,我的结果分别如下:
S=a+2l/qvr,d<l/q
S=a+2d/vr, l/q<=d<=l
S=a+2l/vr , d>l

考虑性能最差的情况(c=1)时,深度对性能的影响




相应有?的地方我认为与前面有同样的问题,结果读者可以自己计算一下。
使文件分布和并行度配置性能最佳的一个有效的方法是选择合适的深度。

5. 最佳配置方案
5.1 对不同负载类型的最佳并行度


5.2 对单峰文件分布的最佳配置


5.3 对双峰文件分布的最佳配置


6. 其它研究成果的比较
6.1 与Reddy的比较







6.2 与Chen的比较
我们的评价结果与Chen的仿真结果是相似的,但是Chen没有考虑如下两种情况:
     对于并行度低的配置,深度太大并不高效;
     对于大文件和多任务率低的环境,深度太大也不高效。

7. 总结
在不同的参数和环境下,使用排队论模型分析评价了一些磁盘阵列的配置方案。排队模型与早期发表的一些磁盘阵列仿真结果基本吻合。
定义磁盘阵列的并行度为:磁盘条块化程度q和磁盘同步化程度r的乘积。对于一个给定的磁盘来说,生成一个磁盘阵列或者使其具有高的并行度并非一定可以提供最佳的性能。然而对于低访问率的环境来说,提高并行度是值得的,但是对于访问率高并且多任务率大的环境提高并行度就不取了。
诚然,将磁盘分为相互独立并且并行度适当的块,对下面两种场景来说,总有一个是合适的:
     a.访问率高,但是多任务率低
     b.CPU处理和IO请求平衡的环境
对于条块化磁盘来说,文件深度是文件分布式存储的粒度。增加文件深度主要用于多任务率高文件小的情况。在条块化与同步化磁盘配置方案的对比中,同步化配置方案偏向于单峰文件分布,而条块化配置方案双峰或多峰的文件分布。

注:文中黄色高亮部分都是自认为原论文不妥的地方,望读者加以鉴别与求证。