下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于linux的通用软磁盘阵列平台
随着双重错误问题的深入研究,一些科学家提出了各种新的数据组织和布局形式。这些容双故障的编码大体分为两类,一类是使用编码函数,如果同时有两个磁盘发生故障,则使用函数计算的方法将发生故障的磁盘数据计算出来,从而保证数据的安全性。像使用reed-solemon编码的raid6就属于着一类。另外一类是二进制线性码。它们使用简单的异或操作,通过将数据分成条纹单元,对条纹单元在磁盘上的不同的分布来达到数据的安全性,典型的有DH1、DH2等。两类方法各有优缺点,第一类方法磁盘利用率较高,但是计算复杂,一般只能使用专用的硬件来进行计算,以期达到较好的使用效果。第二类方法计算简单,使用软件就可以进行计算,但是磁盘的冗余度高。目前工程化应用的容双故障的磁盘阵列使用的多为raid6,使用专用的硬件做计算,价格昂贵。而使用简单的异或操作的数据布局还没有系统实现,也没有相应的仿真软件和测试软件。本文提出并设计实现了适用于这种方法的通用平台。1该项目的目的和基本理念1.1系统存储、存储资源可靠性低,价格低廉。存储Deraid的设计目标有两个,一个是为各种服务系统提供大容量、高可靠性、价格低廉、性能适中的存储服务,可以同时容许两个磁盘出现故障而保证数据不丢失。第二个目标是为各种不同的数据布局提供试验平台。1.2明确盘数的编码单元使用二进制线性码来实现容双故障的磁盘阵列,其关键在于将磁盘数据分割成为条纹单元,通过将这些条纹单元在磁盘上的巧妙安排,从而达到当出现故障的时候,可使用没有损坏的单元将损坏的单元计算出来。其结构和术语见图1。如图1所示,二进制线性码将磁盘分为固定大小的数据块,称之为条纹单元,这些条纹单元分为数据单元和校验单元。阵列中同一列条纹单元组成一个条纹,而若干个条纹则组成一个布局周期。所有的磁盘存储空间就是由这些布局周期组成的。二进制线性码就是通过在一个布局周期内通过合理安排数据单元和校验单元的分布来达到目的。表1给出了一个最为简单的二进制线性码的编码方案。其中磁盘个数为4,布局周期深度为二个条纹。表中PN表示校验单元,DXY表示数据单元,其中X和Y分别代表这个数据单元所参加的校验单元的标号,例如,D23参加了P2和P3两个校验单元的校验,P1则是由D12和D01计算出来的。当任意两个磁盘出现故障,假定为磁盘2和磁盘4,则D01可以由D30和P0计算出来,由D01和D12可以计算出P1,由D12和P2可以计算出D23,最后,P3可以由D23和D30计算出来。当其他的磁盘组合损坏的时候,可以用类似的方法进行恢复。这些条纹单元的布置需要满足一些必要的条件才能成为容双故障的磁盘数据布局,相关内容见参考文献。Deraid的设计也遵循这样的思想,其核心思想就是将各种不同的数据布局通过一定的编码方式输入到系统中去,系统通过分析这些编码自动解析出一个布局周期内条纹单元的分布,然后按照给定的分布对磁盘的数据进行组织。当上层的读写请求来到时,就按照这个分布进行校验计算等工作。2具体设计和实现2.1deid布局设计Deraid的实现是基于Linux操作系统的,其主要原因是Linux本身是一个开放源码的操作系统,可以在内核一级进行开发。使之成为操作系统的一个部分。整个系统处于Linux的系统内核态,它在文件系统和下层块设备驱动程序之间增加了一个薄层块设备驱动程序。其在系统中所处的位置如图2所示。当上层的文件系统的读写请求到达Deraid驱动程序层的时候,驱动程序通过对请求的分析,经过一些必要的计算,将数据发送到真正的块设备驱动程序上进行具体的操作。通过这样的设计,整个系统的模块化程度很好,下层的块设备不必局限于磁盘设备,其他诸如usb设备等都可以作为Deraid系统的底层设备加以支持。数据在磁盘上的布局以及内存中的表示如图3所示。Deraid的磁盘布局分为两个部分:超级块和数据区。超级块用来存放整个Deraid阵列的全局信息,例如启动信息、磁盘数量、阵列的容量、条纹单元的大小、时间信息、阵列各磁盘的状态等。阵列中的每一块磁盘都有超级块,这些超级块的内容相同,且都位于磁盘的最低端,占用4kB的磁盘空间。系统启动的时候将第一个磁盘的超级块读入内存,同时进行系统设置,如果第一个超级块损坏的话,就寻找第二个超级块,以此类推。如果在系统运行过程中超级块中的内容发生变化,则同时将所有盘上的超级块同步更新。这样的设计可以大大提高超级块等全局性的数据的安全性,从而提高整个系统的可靠性。磁盘剩余的空间都属于数据区,数据区按照布局周期进行组织,其结构见图1。默认系统的条纹单元大小为32kB。布局周期是按照用户所指定的方式进行排列,从而给用户以较大的灵活性,易于实现多种数据布局。当上层的读写请求到达Deraid层时,Deraid首先计算出读写的数据块所在的磁盘位置以及它所在布局周期中的偏移量,进而在内存中申请一块布局周期缓冲,布局周期缓冲的结构和一个磁盘布局周期相似,它负责管理一个磁盘布局周期在内存中的映射。当系统得到这个布局周期缓冲以后,就可以对相应的数据块进行读写,同时更新布局周期中的校验条纹单元。读写完毕以后,系统就可以收回这个布局周期缓冲以供其它请求使用。2.2具体应用和关键技术2.2.1deid设计原理由于Deraid系统需要运行于Linux系统的内核态,使用基于Linux的模块机制来实现系统。Deraid提供两种连接模式,既可以将它当作内核的一部分编译到Linux系统中去,也可以将它单独编译成模块,待使用的时候再插入到系统中去,不使用的时候亦可以从系统中卸载。Deraid系统的设计关键在于将用户不同的布局周期应用到系统中去,这就要求系统具有很高的灵活性,以适应不同的数据布局。Deraid使用用户态的配置文件来与用户进行交互,用户只需要将自己的数据布局通过配置文件所规定的格式写到配置文件中,系统就可以自动将数据布局读入到内核中进行处理。软件的总体结构如图4所示。系统从用户态的配置文件得到数据布局的信息之后,经过系统的计算会生成一系列的数据结构,其中最关键的就是一个布局周期编码表,它将用户的布局周期信息翻译成若干个数据表,以便于系统进行操作。所有的读写操作都是从这些编码表中得到信息进行处理的。2.2.2理据进线缓冲板使用目的在于存布局周期缓冲在做系统的核心是一个缓存管理系统,结构如图4所示。Deraid维护着一个布局周期缓冲池,其大小是可以进行调配的,系统默认是256个缓冲。每一个缓冲可以对应一个磁盘上的布局周期。这些缓冲块在系统启动的时候都连接到一个空闲链表中,当上层的文件系统需要进行读写操作的时候,必须先从空闲链表中申请到一个空闲的布局周期缓冲,对这个缓冲进行初始化,然后按照读写请求所要求的磁盘偏移量等信息,结合布局周期编码表,从磁盘上读取出相应的数据进行缓冲区的预处理。然后按照编码表计算校验信息,标志脏数据块等操作,经过处理的缓冲区就可以加入到一个哈希表中等待下层的设备驱动程序进行真正的读写操作,同时也可供新的对同一缓冲操作的读写请求使用。当空闲链表中的布局周期缓冲数量下降到一定程度,有新的请求到来的时候,如在哈希表中没有找到相应的布局缓冲,同时空闲链表中也没有足够可使用的空闲缓冲,这个时候读写进程就必须等待在一个信号量上。Deraid需要从哈希表中选取一定量没有被用户使用的缓冲,将它们从哈希表中脱离出来,并将缓冲中需要进行磁盘I/O操作的脏页面刷新到磁盘上去,将它们连接到空闲链表中,最后唤醒那些等待的进程。这些工作都由一个内核守护进程负责协调与实施。3条纹单元大小对性能的比较本文对Deraid的读写性能以及崩溃重启时间进行了测试,测试主机为毒龙600MHz,内存64MB,操作系统为Redhat7.3。用7个磁盘分区模拟的raid磁盘构造磁盘阵列,每个分区大小300MB。条纹单元大小4kB,使用如表2所示的数据布局方式。表中Pn代表校验单元。Dxy表示数据单元,例如D310就参加了P3和P10的校验。同时也使用同样的配置,在同样的磁盘数量,同样条纹单元大小,同样磁盘容量的条件下建立了raid5系统。在两个系统上分别建立了ext2文件系统,均使用bonnie以及我们自己开发的raidtest作为测试软件,同时进行了测试,以进行比较,其测试结果如图5所示。从图中可以看出,RAID5小数据读写性能要优
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农产品种植购销合同范本2篇
- 教育合作协议范本
- 二零二四年度广告发布合同注意事项3篇
- 现代技术服务费合同1
- 大班过新年课件
- 水电施工承包合同样式
- 2024年度高速公路工程建设技术支持与服务合同3篇
- 展会期间2024年度汽车展台设计与搭建合同
- 洛阳知识产权许可合同2024
- 《短管内衬施工汇报》课件
- 2024AI Agent行业研究报告
- 2024水文情报预报规范
- 肺部感染护理业务学习课件 2
- 2023年法律职业资格《客观题卷二》真题及答案
- 专升本计算机教学课件-第一章-计算机基础知识(2023新版大纲)
- 2024年高考作文10大押题20大热点素材与话题
- 4.1 10的再认识-一年级上册数学课件
- 10J301 地下建筑防水构造
- DL∕T 5537-2017 火力发电厂供热首站设计规范
- 2024版月子中心合同范本
- 中国移动投资生态白皮书(2024年版)
评论
0/150
提交评论