CN106293511A - 一种面向连续数据存储的动态局部并行数据布局 - Google Patents
一种面向连续数据存储的动态局部并行数据布局 Download PDFInfo
- Publication number
- CN106293511A CN106293511A CN201610594843.8A CN201610594843A CN106293511A CN 106293511 A CN106293511 A CN 106293511A CN 201610594843 A CN201610594843 A CN 201610594843A CN 106293511 A CN106293511 A CN 106293511A
- Authority
- CN
- China
- Prior art keywords
- data
- band
- strip
- hard disk
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 33
- 238000013507 mapping Methods 0.000 claims abstract description 54
- 230000008447 perception Effects 0.000 claims abstract description 15
- 238000009826 distribution Methods 0.000 claims abstract description 7
- 238000012795 verification Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000007726 management method Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims description 2
- 239000008187 granular material Substances 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 claims description 2
- 230000008825 perceptual sensitivity Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
一种动态局部并行数据布局,适用于连续数据存储,属于独立硬盘冗余阵列技术领域。本发明针对连续数据存储的特点,提出一种面向连续数据存储的动态局部并行数据布局(Dynamic Partial‑Parallel Data Layout,DPPDL),主要包括条带划分、存储空间动态映射、访问竞争避让、性能需求感知4方面内容。DPPDL采用动态局部并行策略,根据不同负载的性能需求,动态分配具有合适并行度的存储空间,既可保证多数硬盘长时间待机节能,又能动态提供合适的局部并行度,具有更高的可用性,以及更高的节能效率。
Description
技术领域
本发明涉及一种动态局部并行数据布局,适用于连续数据存储,尤其涉及一种面向连续数据存储的动态局部并行数据布局,属于独立硬盘冗余阵列技术领域。
背景技术
近年来,视频监控、备份、归档等相关技术应用十分广泛,以视频监控为例,由于视频监控在取证与识别方面具有不可替代的作用,已成为现代社会无处不在的安防设施。该类应用需要海量存储空间,主要执行写操作,以顺序访问为主,对随机性能要求不高,称该类存储系统为连续数据存储系统。
在海量数据存储中,为了满足存储系统性能、容量和可靠性需求,人们提出了各种类型的独立硬盘冗余阵列(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的校验子块PStripm由其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请求,如写校验数据的硬盘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秒。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,或者对其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。
Claims (7)
1.一种面向连续数据存储的动态局部并行数据布局,其特征在于:
一种面向连续数据存储的动态局部并行数据布局,即:Dynamic Partial-ParallelData Layout,简称DPPDL,具体通过下述技术方案实现:
一种面向连续数据存储的动态局部并行数据布局,主要包括条带划分、存储空间动态映射、访问竞争避让以及性能需求感知;
其中,存储空间动态映射是核心,性能需求感知是存储空间动态映射的依据,条带划分是存储空间动态映射的前提,而访问竞争避让是存储空间动态映射的优化与完备。
2.如权利要求1所述的一种面向连续数据存储的动态局部并行数据布局,其特征还在于:
所述的条带划分,具体步骤为:
步骤1.1将N块硬盘中的每块硬盘平均分成l×N个存储块;
步骤1.2划分步骤1.1中的每个数据块和校验块为M个大小相等的子块,每个子块包含若干个地址连续的存储区(如磁盘扇区),分别称为数据子块(记作Strip)和校验子块(记作PStrip);
步骤1.3步骤1.1中每个条带中的盘内起始地址相同的子块组成一个子条带(记作Stripe),再将该子条带内的Strip进行异或运算,生成该子条带内的PStrip。
3.如权利要求2所述的一种面向连续数据存储的动态局部并行数据布局,其特征还在于:
步骤1.1中,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。
4.如权利要求2所述的一种面向连续数据存储的动态局部并行数据布局,其特征还在于:
步骤1.3中,每个条带中包含M个大小相同的子条带;子条带Stripe m的校验子块PStrip m由其N-1个数据子块Strip m异或生成,见式(1),0≤m<M;
5.如权利要求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在断电恢复时装入最大编号的版本。
6.如权利要求1所述的一种面向连续数据存储的动态局部并行数据布局,其特征还在于:
访问竞争避让的前提条件为:
当从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)。
7.如权利要求1所述的一种面向连续数据存储的动态局部并行数据布局,其特征还在于:
性能需求感知,具体为:
连续数据存储应用,如视频监控、备份、归档等,对响应时间不十分敏感,却需要稳定的数据传输率,因此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。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610594843.8A CN106293511B (zh) | 2016-07-26 | 2016-07-26 | 一种面向连续数据存储的动态局部并行数据布局方法 |
PCT/CN2017/092403 WO2018019119A1 (zh) | 2016-07-26 | 2017-07-10 | 一种面向连续数据存储的动态局部并行数据布局方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610594843.8A CN106293511B (zh) | 2016-07-26 | 2016-07-26 | 一种面向连续数据存储的动态局部并行数据布局方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106293511A true CN106293511A (zh) | 2017-01-04 |
CN106293511B CN106293511B (zh) | 2018-12-04 |
Family
ID=57652864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610594843.8A Expired - Fee Related CN106293511B (zh) | 2016-07-26 | 2016-07-26 | 一种面向连续数据存储的动态局部并行数据布局方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106293511B (zh) |
WO (1) | WO2018019119A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073363A (zh) * | 2017-12-28 | 2018-05-25 | 深圳市得微电子有限责任公司 | 数据存储方法、存储设备及计算机可读存储介质 |
CN108519926A (zh) * | 2018-03-31 | 2018-09-11 | 北京联想核芯科技有限公司 | 一种自适应的raid分组计算方法和装置 |
CN109725826A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机可读介质 |
CN109933570A (zh) * | 2019-03-15 | 2019-06-25 | 中山大学 | 一种元数据管理方法、系统及介质 |
CN110308875A (zh) * | 2019-06-27 | 2019-10-08 | 深信服科技股份有限公司 | 数据读写方法、装置、设备及计算机可读存储介质 |
CN110858122A (zh) * | 2018-08-23 | 2020-03-03 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
CN112424742A (zh) * | 2018-07-13 | 2021-02-26 | 华为技术有限公司 | 一种ssd数据读取方法和装置 |
CN117075821A (zh) * | 2023-10-13 | 2023-11-17 | 杭州优云科技有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124296B (zh) * | 2019-12-12 | 2023-03-14 | 北京浪潮数据技术有限公司 | 一种向固态硬盘写数据的方法、装置、设备及存储介质 |
CN111338782A (zh) * | 2020-03-06 | 2020-06-26 | 中国科学技术大学 | 面向共享式突发数据缓存的基于竞争感知的节点分配方法 |
CN115599315B (zh) * | 2022-12-14 | 2023-04-07 | 阿里巴巴(中国)有限公司 | 数据处理方法、装置、系统、设备及介质 |
CN116027990B (zh) * | 2023-03-29 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种raid卡及其数据访问方法、系统及存储介质 |
CN116301662B (zh) * | 2023-05-12 | 2023-08-01 | 合肥联宝信息技术有限公司 | 一种固态硬盘功耗管理方法及固态硬盘 |
CN117499442B (zh) * | 2023-12-27 | 2024-05-10 | 天津数智物联科技有限公司 | 一种用于物联网能源监测装置的数据高效处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276057A1 (en) * | 2007-05-01 | 2008-11-06 | International Business Machines Corporation | Data storage array scaling method and system with minimal data movement |
CN101976174A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直排布分布校验的节能型磁盘阵列的构建方法 |
CN105204785A (zh) * | 2015-10-15 | 2015-12-30 | 中国科学技术大学 | 一种基于磁盘i/o队列的磁盘阵列写方式选择方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461914A (zh) * | 2014-11-10 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种自动精简配置的自适应优化方法 |
CN105426427A (zh) * | 2015-11-04 | 2016-03-23 | 国家计算机网络与信息安全管理中心 | 基于raid 0 存储的mpp 数据库集群副本实现方法 |
-
2016
- 2016-07-26 CN CN201610594843.8A patent/CN106293511B/zh not_active Expired - Fee Related
-
2017
- 2017-07-10 WO PCT/CN2017/092403 patent/WO2018019119A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276057A1 (en) * | 2007-05-01 | 2008-11-06 | International Business Machines Corporation | Data storage array scaling method and system with minimal data movement |
CN101976174A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直排布分布校验的节能型磁盘阵列的构建方法 |
CN105204785A (zh) * | 2015-10-15 | 2015-12-30 | 中国科学技术大学 | 一种基于磁盘i/o队列的磁盘阵列写方式选择方法 |
Non-Patent Citations (1)
Title |
---|
孙志卓等: "Ripple-RAID:一种面向连续数据存储的高效能盘阵", 《软件学报》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725826A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机可读介质 |
CN109725826B (zh) * | 2017-10-27 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机可读介质 |
CN108073363A (zh) * | 2017-12-28 | 2018-05-25 | 深圳市得微电子有限责任公司 | 数据存储方法、存储设备及计算机可读存储介质 |
CN108519926A (zh) * | 2018-03-31 | 2018-09-11 | 北京联想核芯科技有限公司 | 一种自适应的raid分组计算方法和装置 |
CN108519926B (zh) * | 2018-03-31 | 2020-12-29 | 深圳忆联信息系统有限公司 | 一种自适应的raid分组计算方法和装置 |
CN112424742A (zh) * | 2018-07-13 | 2021-02-26 | 华为技术有限公司 | 一种ssd数据读取方法和装置 |
CN110858122A (zh) * | 2018-08-23 | 2020-03-03 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
CN110858122B (zh) * | 2018-08-23 | 2023-10-20 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
CN109933570B (zh) * | 2019-03-15 | 2020-02-07 | 中山大学 | 一种元数据管理方法、系统及介质 |
CN109933570A (zh) * | 2019-03-15 | 2019-06-25 | 中山大学 | 一种元数据管理方法、系统及介质 |
CN110308875A (zh) * | 2019-06-27 | 2019-10-08 | 深信服科技股份有限公司 | 数据读写方法、装置、设备及计算机可读存储介质 |
CN117075821A (zh) * | 2023-10-13 | 2023-11-17 | 杭州优云科技有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
CN117075821B (zh) * | 2023-10-13 | 2024-01-16 | 杭州优云科技有限公司 | 一种分布式存储方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018019119A1 (zh) | 2018-02-01 |
CN106293511B (zh) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106293511A (zh) | 一种面向连续数据存储的动态局部并行数据布局 | |
CN104794070B (zh) | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 | |
US5537588A (en) | Partitioned log-structured file system and methods for operating the same | |
CN101135994B (zh) | 一种划分缓存空间的方法和装置以及缓存控制器 | |
CN104025059B (zh) | 用于数据存储存储器的空间收回的方法和系统 | |
CN106293990B (zh) | 一种基于批量写校验的独立磁盘冗余阵列读写方法 | |
US20150032942A1 (en) | System for increasing utilization of storage media | |
CN103631536B (zh) | 一种利用ssd的无效数据优化raid5/6写性能的方法 | |
CN101510145B (zh) | 一种存储系统管理方法和装置 | |
CN111400083B (zh) | 数据存储方法及系统、存储介质 | |
CN105573681A (zh) | 一种ssd盘片内部raid组建方法及系统 | |
CN104991738B (zh) | 一种固态盘及其读写操作方法 | |
US9158695B2 (en) | System for dynamically adaptive caching | |
CN104182176B (zh) | 一种独立磁盘冗余阵列raid5的快速扩容方法 | |
US20210096983A1 (en) | System controller and system garbage collection method | |
CN105005510B (zh) | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 | |
CN105630413B (zh) | 一种磁盘数据的同步回写方法 | |
TWI584120B (zh) | 用於動態調適快取的方法及系統 | |
CN110795363A (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN109388341A (zh) | 一种基于Device Mapper的系统存储优化方法 | |
JPH11288387A (ja) | ディスクキャッシュ装置 | |
CN102883143B (zh) | 一种调整raid阵列缓存的方法 | |
CN110309081A (zh) | 基于压缩存储和地址映射表项的ftl读写数据页的方法 | |
CN109783000B (zh) | 一种数据处理方法及设备 | |
CN114265791A (zh) | 一种数据调度方法、芯片以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181204 |
|
CF01 | Termination of patent right due to non-payment of annual fee |