首页> 中国专利> 一种面向连续数据存储的动态局部并行数据布局

一种面向连续数据存储的动态局部并行数据布局

摘要

一种动态局部并行数据布局,适用于连续数据存储,属于独立硬盘冗余阵列技术领域。本发明针对连续数据存储的特点,提出一种面向连续数据存储的动态局部并行数据布局(Dynamic Partial‑Parallel Data Layout,DPPDL),主要包括条带划分、存储空间动态映射、访问竞争避让、性能需求感知4方面内容。DPPDL采用动态局部并行策略,根据不同负载的性能需求,动态分配具有合适并行度的存储空间,既可保证多数硬盘长时间待机节能,又能动态提供合适的局部并行度,具有更高的可用性,以及更高的节能效率。

著录项

  • 公开/公告号CN106293511A

    专利类型发明专利

  • 公开/公告日2017-01-04

    原文格式PDF

  • 申请/专利权人 北京理工大学;

    申请/专利号CN201610594843.8

  • 申请日2016-07-26

  • 分类号G06F3/06(20060101);

  • 代理机构

  • 代理人

  • 地址 100081 北京市海淀区中关村南大街5号

  • 入库时间 2023-06-19 01:14:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-04

    授权

    授权

  • 2017-02-01

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20160726

    实质审查的生效

  • 2017-01-04

    公开

    公开

说明书

技术领域

本发明涉及一种动态局部并行数据布局,适用于连续数据存储,尤其涉及一种面向连续数据存储的动态局部并行数据布局,属于独立硬盘冗余阵列技术领域。

背景技术

近年来,视频监控、备份、归档等相关技术应用十分广泛,以视频监控为例,由于视频监控在取证与识别方面具有不可替代的作用,已成为现代社会无处不在的安防设施。该类应用需要海量存储空间,主要执行写操作,以顺序访问为主,对随机性能要求不高,称该类存储系统为连续数据存储系统。

在海量数据存储中,为了满足存储系统性能、容量和可靠性需求,人们提出了各种类型的独立硬盘冗余阵列(Redundant Arrays of Independent Disks,RAID)。RAID把多个物理存储设备,如磁盘、固态盘(Solid State Disk,SSD)等联合起来,形成统一的逻辑存储设备,可提供更大的容量、更高的性能、更可靠的数据安全性。

RAID中常用的技术术语如下:

条带化:把一段连续数据分割成相同大小的数据块,把每块数据分别写入RAID中不同盘上的方法。

容错:利用某种运算,如异或运算,生成冗余的校验数据并保存。当硬盘出现故障丢失数据时,可利用校验数据进行数据恢复。异或运算通常用表示。

分布校验:校验数据按一定规律分布在构成RAID的各个盘上。

局部并行:阵列中仅部分硬盘并行,而不是全部硬盘并行,能够提供合适的性能,并且便于调度其余硬盘待机节能。

常用的RAID有RAID0、RAID5等。RAID0只进行条带化,不具有冗余校验能力。RAID5以条带的方式向阵列中的硬盘写数据,校验数据分布存储在阵列中的各个盘上,通过全局并行提高访问速度,具有单盘容错能力。

连续数据存储系统以顺序访问为主,对随机性能要求不高,一般不需要全局并行提供的高性能。为此,发明专利ZL201010256899.5、ZL201010256665.0、ZL201010256711.7、ZL201010256908.0、ZL201010256679.2、ZL201010256699.X、ZL201010575578.1、ZL201010575625.2、ZL201010575611.0等提出多种局部并行数据布局,把采用该类局部并行数据布局的节能RAID统称为S-RAID。

S-RAID基本思想是:①把阵列中的存储区分成若干组,组内并行提供合适的性能,分组便于调度部分硬盘运行而其余硬盘待机节能;②采用贪婪编址法,在顺序访问模式下,保证读写操作在较长时间内分布在部分确定的硬盘上,其它硬盘可以长时间待机节能。

S-RAID的数据布局采用存储空间静态映射机制,即:在创建时,根据磁盘块数、S-RAID类型、Strip大小等参数,建立逻辑块地址(Logical Block Address,LBA)与硬盘物理块地址(Physical Block Address,PBA)的映射关系;此映射关系在S-RAID整个生命周期内保持不变。

然而,S-RAID的静态数据布局适合比较平稳的工作负载,不能根据波动负载、突发负载的性能需求动态调整局部并行度;对于波动负载、突发负载,S-RAID需要根据峰值负载的性能需求确定局部并行度,但该并行度对于谷值负载显然是过剩的。这种性能过剩会导致额外能耗,并且随着波动负载、突发负载强度的增大而显著增加。

在连续数据存储中,较强的波动负载、突发负载普遍存在。例如在视频监控中,视频内容的动态特性会产生严重的波动负载。视频数据一般要压缩后进行传输和存储,现有视频压缩标准,如H.264/MPEG-4等,都是基于视频内容的时间、空间冗余性进行视频压缩的,视频压缩比会在很大范围内变化。白天运动物体较多,视频压缩比较小,产生的视频数据量大;夜间运动物体较少,视频压缩比较高,产生的视频数据量小。此外,视频监控中各摄像机的工作时间、分辨率不同时,也会产生较高强度的波动负载。

对于较强的波动、突发负载,采用缓存措施是不可行的。例如在视频监控中,负载不仅波动幅度大,而且波动周期足够长,需要大容量缓存设备。磁盘缓存不仅增加硬件成本,还会引入额外功耗;SSD缓存虽然功耗低,但大量使用会显著增加成本。深度缓存还会极大增加数据丢失的概率,缓存设备通常没有容错机制,而为缓存设备增加容错机制,又将进一步增加硬件成本和功耗。

为此,提出一种面向连续数据存储的动态局部并行数据布局(Dynamic Partial-Parallel Data Layout,DPPDL),DPPDL采用动态局部并行策略,根据不同负载的性能需求,动态分配具有合适并行度的存储空间。DPPDL既可保证多数硬盘长时间待机节能,又能动态提供合适的局部并行度,具有更高的可用性,以及更高的节能效率。

发明内容

本发明的目的是针对已有静态局部并行数据布局不能更好适应波动负载、突发负载的不足,为了提高存储系统的节能效率,提出一种面向连续数据存储的动态局部并行数据布局。

一种面向连续数据存储的动态局部并行数据布局,即:Dynamic Partial-Parallel Data Layout,简称DPPDL,具体通过下述技术方案实现:

一种面向连续数据存储的动态局部并行数据布局,主要包括条带划分、存储空间动态映射、访问竞争避让以及性能需求感知;

其中,存储空间动态映射是核心,性能需求感知是存储空间动态映射的依据,条带划分是存储空间动态映射的前提,而访问竞争避让是存储空间动态映射的优化与完备;

所述的条带划分,具体步骤为:

步骤1.1将N块硬盘中的每块硬盘平均分成l×N个存储块;

其中,l的取值范围为大于等于1,N的取值范围为大于等于3;

步骤1.1中每块硬盘内的起始地址相同的N个存储块组成一个条带,共组成l×N个条带;每个条带包含1个校验存储块,N-1个数据存储块,校验存储块简称校验块,数据存储块简称数据块;

其中,条带i中的校验块位于硬盘N-1-j中;若j+v<N-1,则第v个数据块位于硬盘v,否则位于硬盘v+1,其中,0≤i<(l×N),j=i MOD N(MOD为模运算),0≤v<N-1;

步骤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;

PStrip>m=v=0N-2Strip>m,(0m<M)---(1)

所述的存储空间动态映射,操作思路为:

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请求,如写校验数据的硬盘I/O请求、小写中读旧数据、旧校验数据的硬盘I/O请求;

DPPDL感知到负载需求的数据传输率之后,再根据实际应用场景中不同硬盘并行度能够提供的数据传输率,确定需要并发写数据的硬盘数量k;

至此,完成了一种面向连续数据存储的动态局部并行数据布局。

有益效果

本发明提出的一种面向连续数据存储的动态局部并行数据布局,与已有技术比较,具有以下优点:

1.可提供大弹性并行度,具有更高的节能效率,具体为:

DPPDL采用动态局部并行策略,根据不同负载的性能需求,动态分配具有合适并行度的存储空间。DPPDL既可保证多数磁盘长时间待机节能,又能动态提供合适的局部并行度,具有更高的可用性,以及更高的节能效率;

2.解决了动态局部并行与顺序删除特性之间的矛盾,具体为:

对于连续数据存储系统,当存储空间写满后,一般按时间删除最早的存储数据、然后写入新数据,称为顺序删除特性。动态局部并行与顺序删除特性之间存在矛盾,例如当存储空间写满后,如果当前负载需要5块磁盘并行,但最早数据都存储在2块局部并行的磁盘上,此时无法在顺序删除数据的条件下,再增加3块磁盘并行;

DPPDL在宏观上按条带依次进行存储空间的分配与回收,当条带数较大时(对于大容量磁盘是可行的),可保证基本按时间顺序删除数据。微观上以Strip为映射单元,根据性能需求在Stripe上选择数量合适的Strip并行,动态提供合适的并行度,因此解决了动态局部并行与顺序删除特性之间的矛盾。

附图说明

图1为本发明一种面向连续数据存储的动态局部并行数据布局的总体实现流程图;

图2为本发明一种面向连续数据存储的动态局部并行数据布局实施例中的条带划分总体示意图;

图3为本发明一种面向连续数据存储的动态局部并行数据布局实施例中的条带划分的细分示意图;

图4为本发明一种面向连续数据存储的动态局部并行数据布局实施例中的存储空间动态映射示意图;

图5为本发明一种面向连续数据存储的动态局部并行数据布局实施例中的访问竞争产生示意图;

图6为本发明一种面向连续数据存储的动态局部并行数据布局实施例中的访问竞争避让示意图;

图7为本发明一种面向连续数据存储的动态局部并行数据布局实施例中的访问竞争避让后的存储空间动态映射示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

实施例

本实施例叙述了在5块磁盘上构建动态局部并行数据布局DPPDL的基本过程,包括条带划分、存储空间动态映射、访问竞争避让、性能需求感知4方面内容;磁盘容量为4TB;

1条带划分

图2为本实施例中的条带划分总体示意图。从图2可以看出每块磁盘平均分成5个存储块(这里取l=1),由于每个磁盘容量为4TB,所以每个存储块大小为4TB/5=800GB;每个磁盘中盘内起始地址相同的5个存储块组成一个条带,共组成5个条带;从图2还可以看出,每个条带包含1个校验块和4个数据块,条带0的校验块位于磁盘4、条带1的校验块位于磁盘3、……、条带4的校验块位于磁盘0(备注:1TB=103GB=106MB=109KB,1KB=1024B)。

进一步地,对上述条带划分进行细分,如图3所示。从图3中可以看出,把每个数据块、校验块划分为若干个大小相等的子块;本实施例中取子块大小为100KB(即:包含200个地址连续的扇区,扇区大小为512字节),则每个数据块、校验块分成M=800,0000个相等的子块,分别称为数据子块、校验子块。子条带的校验子块由该子条带的4个数据子块异或运算生成;如条带0内子条带1的校验子块,由该子条带的4个数据子块异或运算生成。

2存储空间动态映射

条带划分后,DPPDL采用动态映射机制对存储空间进行分配管理。图4给出了5种写负载(A~E)在存储空间内的地址映射过程,选取其中的条带0和条带1进行说明,假设每个条带包含6个子条带(此处仅为阐述方便,本实施例中实际子条带数为M=800,0000),映射粒度为子块大小。

假设负载A~E分别需要2、4、3、1、2块磁盘并行,其后数字为该负载持续的时间段编号(1~16),如图4中的A2表示负载A在时段2内运行;负载持续的时间可各不相同。

负载A需要2块磁盘(不包括其校验数据所在的磁盘,以后相同)并行,即并发向磁盘0、磁盘1写数据,持续了3个时间段,即时间段1、时间段2、时间段3;

负载B需要4块磁盘并行,即并发向磁盘0、磁盘1、磁盘2、磁盘3写数据,持续了3个时间段,即时间段4、时间段5、时间段6;

负载C需要3块磁盘并行,即并发向磁盘2、磁盘3、磁盘0写数据,持续了3个时间段,即时间段7、时间段8、时间段9;

负载D需要1块磁盘并行,持续了5个时间段。在时间10、时间段11、时间段12内,向磁盘0写数据;在时间段13、时间段14内向磁盘1写数据。

负载E需要2块磁盘并行,即并发向磁盘1、磁盘2写数据,持续了2个时间段,即时间段15、时间段16。

数据优先写入当前工作磁盘,当前工作磁盘能够满足性能需求时,不需访问待机磁盘,既具有良好的局部并行性,又可动态分配具有合适并行度的存储空间。写负载最小时(如负载D),仅向1个磁盘写数据;写负载最大时(如负载B),向4块磁盘并发写数据。DPPDL可提供大弹性并行度,满足不同负载的性能需求,同时具有很高的节能效率。

3访问竞争避让

DPPDL采用上述动态映射机制对存储空间进行分配管理时,存在访问竞争问题。当并发访问来自2个条带的数据子块时,可能需要并发访问某一块磁盘,从而引发访问竞争,产生性能瓶颈。

图5为本实施例中的访问竞争产生示意图。

从图5可以看出,负载C在时间段8内运行时(C8),并发访问来自条带0、条带1内的数据子块。由于需要生产校验数据,在条带0中需要并发访问磁盘2、磁盘3、磁盘4;在条带1中需要并发访问磁盘0、磁盘3。此时,磁盘3需要被并发访问,其负载大约是磁盘2、磁盘4、磁盘0的2倍,因此成为性能瓶颈。C7、C9也存在访问竞争问题。

进一步的,为了消除访问竞争需采用访问竞争避让策略。如图6所示,负载C7需要并发访问跨越2个条带的3个数据子块,①先选择4个数据子块(图6中虚线方框处);②进行访问竞争检查,发现磁盘3上的数据子块(图6中带×的虚线方框处)、条带1的校验子块都位于磁盘3,会引起磁盘3的访问竞争,因此删除该数据子块;③把负载C并行写入剩余的3个数据子块(图6中标有C7的虚线方框处)。最后获得不会引发访问竞争且可并发访问的3个数据子块。

C8、C9采用相同的方法进行访问竞争避让。最后,消除访问竞争的存储空间映射情况,如图7所示。从图7中可以看出,在任何一块磁盘上,都没有2个子块(包括数据子块和校验子块)被并发访问;

4性能需求感知

DPPDL需要感知负载的性能需求,然后动态调整并行的磁盘数,以提供合适的性能,获得更高的节能效率。本实例采用公式(2)来感知负载需求的数据传输率,其中β取值为1.2,窗口时间T取值为5秒。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,或者对其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号