基于多模块的RAID的设计与实现_第1页
基于多模块的RAID的设计与实现_第2页
基于多模块的RAID的设计与实现_第3页
基于多模块的RAID的设计与实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于多模块的RAID的设计与实现【摘要】本文在多模块结构性能评估模型的根底上,设计了一个RAID的I/O请求处理性能的模拟测试软件,随机产生一组I/O请求,通过计算各级RAID的数据传输率,测试出其性能的上下。论文关键词:RAID,多模块结构,模拟,数据传输率磁盘阵列将多个磁盘进行组合,通过I/O并行性和数据冗余机制,提供高性能、高可靠度的数据存取效劳,已成为构建大规模存储系统的根本组成局部。对阵列性能的评估,假设是直接通过对硬盘性能的测试来评估的话,所消耗的时间和工作量是很大的。如果采用一个通用、可配置的评估测试模型,可以评价所有的磁盘阵列,那么就有利于设计和配置更适合给定存储应用类型的磁盘

2、阵列。本文给出一个基于多模块结构模型的磁盘阵列的设计与实现,支持RAID0、RAID1、RAID3、RAID5和RAID10等主流RAID技术【1】。首先,给出RAID多模块结构模型的模块划分、功能分配;然后,将各级RAID所涉及的内容进行具体分析;最后,采用MFC编程实现,并将各级RAID的I/O性能测试结果比照分析。1磁盘阵列级别和多模块结构RAID是有美国加州大学伯克利分校的D.A. Patterson教授1988年提出的,通过多个磁盘,多个独立的I/O请求可以并行地进行处理,只要他们所需的数据驻留在不同的磁盘中,这样可以提高系统的性能,通过增加冗余度来提高信息可靠性【2】。本文所涉及的

3、RAID如下:1 RAID 0 :RAID 0是由一块以上的硬盘组成,每块硬盘被等分成容量相同的条带集,数据也被分割成条带,在同一时间内向多块磁盘写入。2 RAID 1 :RAID 1又被称为磁盘镜像,由两个以上偶数个硬盘组成,每一个磁盘都具有一个对应的镜像盘,对写入任何一个磁盘的数据都会被复制镜像盘中,同时系统可以从这一组镜像盘中的任何一个磁盘读取数据。3 RAID 3 :RAID3至少由三块以上硬盘组成,以其中一块特定的硬盘来存放数据的奇偶校验位由真实数据通过一定的算法得出,真实数据那么分段存储于其余硬盘中。4 RAID 5 :RAID5是在RAID 3的根底上进行了一些改良,同样也是由三

4、块以上的硬盘组成,也是以数据的校验位来保证数据的平安,但它不是以特定硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。5 RAID 10 :RAID10也被称为镜象阵列条带由至少四块硬盘组成,像RAID0一样,数据被分割成条带,在同一时间内向多块磁盘写入;像RAID1一样,每个磁盘都有一个镜象磁盘。其目的是在保证数据平安的情况下,提高数据的读写性能。同时,经过许多存储技术的分析,我们可以给出一个通用的、可配置、多模块结构模型。从存储结构的角度我们引出以下几个根本模块:主机模块H、阵列控制器模块C、带宽模块B、控制模块C、磁盘模块D、转换模块T、无关模块X【3】。/:用来表示模块

5、的合并作用。例如,H/C表示网络磁盘阵列中的客户主机兼有阵列控制器的局部功能。2设计分析该设计模拟实现了磁盘阵列的I/O请求性能测试。支持RAID0、RAID1、RAID3、RAID5、RAID10,涉及的模块有主机模块H、磁盘模块D以及控制模块C。主机模块H的主要功能是I/O请求生成;控制模块C的主要功能是集中了阵列技术的控制功能,涉及数据布局的冗余信息处理操作、逻辑磁盘请求的分解与合并;磁盘模块D的主要功能是磁盘调度和处理时间计算。而对于带宽模块B、控制模块C、转换模块T、无关模块X的影响,这里未考虑。首先,会根据用户输入的请求个数和请求类型,随机生成一组请求,这组请求的逻辑地址和请求大小

6、都是随机产生。然后,根据用户输入的磁盘个数、阵列级别以及条状块大小,进行冗余信息处理并把请求分配到磁盘上,即地址映射。接下来,就是请求在磁盘上的调度,在此次设计中选择的是扫描算法SCAN。最后,就是根据用户选择的磁盘转速,由时间计算函数计算出磁盘阵列处理这组请求分别所用的总时间和该组请求的总数据大小,从而得出传输效率,到达模拟仿真的目标。该设计的核心局部就是控制模块C,集中了阵列技术的控制功能,数据布局的冗余信息处理操作、逻辑磁盘请求的分解与合并。图1 RAID物理数据布局由图1可知各级RAID技术的物理数据布局,下面,将对各级RAID进行分析;RAID0:不同磁盘的相同偏移处的块组合成str

7、ipe,以stripe为单位,数据分成多块同时写入多个磁盘。优点是,并发写,并发读,威力巨大;缺点是,一损俱损,无备份。处理时间最长的那个磁盘所对应的时间为请求的处理时间。编程实现时,只需将逻辑请求分解或合并,只计算起始盘的时间,其它盘不考虑【4】。RAID1:一个工作盘,其余的作为备份盘,仅增加读并发性。总体性能取决于所有盘中性能最差的。编程实现时,写请求处理时间取第一个磁盘的处理时间;读请求处理时间,每个盘的请求数取该组读请求的1/ndisk个,再计算第一个盘的处理时间。RAID3:数据盘的每个对应位之间做异或运算,将结果写入校验盘的对应位置。连续读写时,为单盘的ndisk-1倍;随机读写

8、时,无性能提升。不能并发。编程实现时,异或运算时间忽略不计,只计算起始盘的计算时间。RAID5:将校验盘分为ndisk份,均分于各个磁盘中,实现了并发I/O。但写性能极差,写惩罚,新数据的校验数据=老数据EOR新数据EOR老校验数据。编程实现时,当为读请求时,只计算起始盘的时间;当为写请求时,要将读老数据时间计算在内【5】。RAID 10 :在保证数据平安的情况下,提高数据的读写性能。将请求分为ndisk/2份,计算起始盘的处理时间。3测试分析按照上述设计思路,在VC+的环境下实现性能测试的模拟,运用MFC对建立好的模拟模块具体实现。测试了各级RAID的I/O请求的性能,为了使测试结果的可信性

9、强,不但在对磁盘配置相应的性能参数要符合实际,磁盘调度算法也都选择了扫描算法SCAN。这样测试结果才有可比性,才能对磁盘阵列性能近一步的分析和了解。一个盘面的磁道数设定为1964个,一个扇区的大小为512B,一个磁道的扇区数为72个。需要用户输入的参数:磁盘转速设为5400rpm、磁盘个数设为4个、阵列级别、条状大小、请求类型以及请求个数。这里,主要测试在指定相同参数的情况下,各级RAID的读写性能。图2 各级RAID的读写性能测试由图2可知,当条状块大小在比拟小的范围内时,RAID 0的读写性能相对较高;但条状块过大,反而使RAID 0的性能降低。RAID3、RAID5和RAID10的读写性

10、能相当,同时,因为RAID5的写惩罚,RAID5的读性能比其写性能好。RAID1的写性能最差,相当于单磁盘的性能;RAID1的读性能很好,是所有RAID级别中最好的。4结论这个设计只是关于I/O请求处理性能的测试,对冗余性、磁盘利用率、带宽和价格等因素并未考虑。磁盘阵列是按照不同的需求和设计要求分为不同的级别,各个级别的差异是根据用户对于其需求的不同而设定的,有非常多种类的RAID模式,从最简单的、最廉价的到极端复杂、及其昂贵的都有。RAID对于希望得到更快的传输性能、良好的数据冗余性、海量的存储能力的公司和企业用户是相当适宜的解决方案。【参考文献】【1】 C. Tau and T.-I. Wang. Intuitional Decoding Algorithm in RAID Architecture Based on Dual Parity Placement Scheme. In Proceedings of IEEE International Symposium on Information Theory. 2003. 473 473【2】Young Jin Nam, Dae-Woong Kim, Tae-Young Choe, at al. Enhancing Write I/O Perfo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论