[发明专利]一种面向连续数据存储的动态局部并行数据布局方法有效
申请号: | 201610594843.8 | 申请日: | 2016-07-26 |
公开(公告)号: | CN106293511B | 公开(公告)日: | 2018-12-04 |
发明(设计)人: | 谭毓安;孙志卓;李元章;于潇;薛源;张全新 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京理工正阳知识产权代理事务所(普通合伙) 11639 | 代理人: | 鲍文娟 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种面向连续数据存储的动态局部并行数据布局方法,属于独立硬盘冗余阵列技术领域。针对连续数据存储的特点,提出一种面向连续数据存储的动态局部并行数据布局DPPDL,主要包括条带划分、存储空间动态映射、访问竞争避让、性能需求感知4方面。DPPDL采用动态局部并行策略,根据不同负载的性能需求,动态分配具有合适并行度的存储空间,既可保证多数硬盘长时间待机节能,又能动态提供合适的局部并行度,具有更高的可用性,以及更高的节能效率。 | ||
搜索关键词: | 一种 面向 连续 数据 存储 动态 局部 并行 布局 | ||
【主权项】:
1.一种面向连续数据存储的动态局部并行数据布局方法,其特征在于:一种面向连续数据存储的动态局部并行数据布局DPPDL,具体通过下述技术方案实现:一种面向连续数据存储的动态局部并行数据布局,主要包括条带划分、存储空间动态映射、访问竞争避让以及性能需求感知;其中,存储空间动态映射是核心,性能需求感知是存储空间动态映射的依据,条带划分是存储空间动态映射的前提,而访问竞争避让是存储空间动态映射的优化与完备;所述的条带划分,具体步骤为:步骤1.1将N块硬盘中的每块硬盘平均分成l×N个存储块;步骤1.2划分步骤1.1中的每个数据块和校验块为M个大小相等的子块,每个子块包含若干个地址连续的存储区,分别称为数据子块Strip和校验子块PStrip;步骤1.3步骤1.1中每个条带中的盘内起始地址相同的子块组成一个子条带Stripe,再将该子条带内的Strip进行异或运算,生成该子条带内的PStrip;其中,每个条带中包含M个大小相同的子条带;子条带Stripe m的校验子块PStrip m由其N‑1个数据子块Strip m异或生成,见式(1),0≤m<M;所述的存储空间动态映射,操作思路为:DPPDL采用LBA与PBA的动态映射机制对RAID存储空间进行分配管理,RAID层收到的写数据被动态映射到不同数量的硬盘上;即:根据负载的性能需求参数k,动态分配具有k个硬盘并行度的存储空间,即k为需要并发写数据的硬盘数量,不包括所写数据的校验数据所在的硬盘;当负载最小时,仅映射到1块硬盘上,仅向该硬盘写数据;负载最大时映射到N‑1块硬盘上,向N‑1块硬盘并发写数据;存储空间动态映射,涉及的术语定义如下:条带链表:由所有条带组成的一个单向循环链表;CurBank:当前进行映射的条带,称为当前映射条带,初始值为条带0;NextBank:下一个进行映射的条带,称为相邻映射条带,与CurBank编号相邻,初始值为条带1;CurStripe:CurBank中可进行映射的Stripe;NextStripe:NextBank中可进行映射的Stripe;存储空间动态映射,具体步骤为:步骤(1)在CurBank中选择自由Strip最多的Stripe作为CurStripe;其中,所述的自由Strip为未进行映射的Strip;步骤(2)如果CurStripe中自由Strip数为0,表明CurStripe无自由Strip可映射,等价于CurBank无自由Strip可映射,转到步骤(3),否则转到步骤(5);步骤(3)判断NextBank是否有自由Strip可映射,如果没有自由Strip可映射,则删除NextBank上的存储数据,进行存储空间回收;步骤(4)将NextBank作为CurBank并重新获取CurStripe,然后将NextBank顺序后移;步骤(5)如果CurStripe中自由Strip数不小于k,则从CurStripe中顺序取出k个Strip,转到步骤(7),否则转到步骤(6);步骤(6)先从CurStripe中取出所有自由Strip,再从NextStripe取出余下所需的自由Strip,一起组成k个自由Strip;如果NextStripe没有足够的自由Strip,就删除NextBank上的存储数据,回收存储空间,并重新获取NextStripe;步骤(7)获得k个自由Strip后,进行存储空间映射,把逻辑地址空间映射到具有k个硬盘并行度的物理地址空间;映射关系记录在映射表中;需要合理选择映射粒度,映射粒度较小时调整灵活,但映射表占用存储空间较多,这里以Strip为单位进行映射;根据Strip所在的条带、子条带、以及子条带内的编号,确定该Strip所在磁盘及盘内偏移量,并将其记录到映射表中;读操作时根据映射表获得数据在磁盘上的位置;映射表作为元数据的重要组成部分,保存在每个正在工作的磁盘的尾部,内带一个版本编号,版本编号按时间先后由小到大,RAID在断电恢复时装入最大编号的版本;访问竞争避让的前提条件为:当从2个条带取出k个自由Strip进行映射时,由于校验子块PStrip的存在,会并发访问相同的磁盘,从而引发访问竞争,产生性能瓶颈;访问竞争会严重影响存储性能,需要采取有效措施予以消除;访问竞争避让,具体步骤为:步骤1)DPPDL选择跨越2个条带的Strip进行存储空间映射时,首先从CurStripe中取出所有自由Strip,再从NextStripe取出余下所需的自由Strip,一起组成k+1个自由Strip,如果NextStripe没有足够的自由Strip,就删除NextBank上的存储数据,回收存储空间,并重新获取NextStripe;步骤2)DPPDL进行访问竞争检查,若没有访问竞争或末尾Strip引起访问竞争,则删除末尾Strip;否则,删除引起访问竞争的Strip;最后获得不会引发访问竞争且可并发访问的k个Strip;其中,所述的访问竞争检查,指同一硬盘是否有2个子块被并发访问;访问竞争避让可用于替换存储空间动态映射中的步骤(6);性能需求感知,具体为:连续数据存储应用对响应时间不十分敏感,却需要稳定的数据传输率,因此DPPDL把数据传输率作为性能需求指标;为了在线感知负载的性能需求,即数据传输率需求,具体为:步骤A.DPPDL统计RAID层I/O请求队列的历史信息;步骤B.DPPDL进行分析预测;对于连续数据存储应用,负载的波动周期或突发时间较大,根据时间窗口T内的平均数据传输率来感知负载需求的数据传输率,用rn=(ta,pos,len)记录时间窗口T内的第n个I/O请求;其中,ta、pos、len分别为请求rn的到来时间、起始逻辑地址和请求长度,用rn.len表示rn的请求长度len;设时间窗口T内到来的I/O数为num,则用式(2)感知负载需求的数据传输率:其中,β为性能系数,在1.2~1.5之间取值;时间窗口T的范围是大于5秒小于15秒;T值越大,感知灵敏度会降低;表示对时间窗口T内的num个I/O请求进行长度求和;其中,公式(2)中的I/O请求rn来自RAID层的请求队列,而不是各硬盘的I/O请求,因为完成1个RAID层I/O请求,会产生一些额外的硬盘I/O请求;DPPDL感知到负载需求的数据传输率之后,再根据实际应用场景中不同硬盘并行度能够提供的数据传输率,确定需要并发写数据的硬盘数量k。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610594843.8/,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置