CN103699337A - 一种基于独立磁盘冗余阵列raid的写控制方法及系统 - Google Patents
一种基于独立磁盘冗余阵列raid的写控制方法及系统 Download PDFInfo
- Publication number
- CN103699337A CN103699337A CN201310648859.9A CN201310648859A CN103699337A CN 103699337 A CN103699337 A CN 103699337A CN 201310648859 A CN201310648859 A CN 201310648859A CN 103699337 A CN103699337 A CN 103699337A
- Authority
- CN
- China
- Prior art keywords
- data
- stripe
- invalid
- unit
- resource 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000011218 segmentation Effects 0.000 claims description 41
- 230000005012 migration Effects 0.000 claims description 20
- 238000013508 migration Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 8
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请提供一种基于RAID的写控制方法及系统,在写数据后,通过生成资源块并对资源块的有效性进行标记实现对存储数据的有效性的标记,并在覆盖写数据时,将存储所述数据的原数据的分条单元对应的资源块标记为无效,实现了对被覆盖的数据的有效性标记,因此,本申请提供的写控制方法,标记为有效的数据只有有效数据,当磁盘故障需要重构数据时,根据资源块的有效性标记重构有效数据所在的分条,而分条中没有有效数据的分条则不进行重构,从而减少了数据的重构量。
Description
技术领域
本发明涉及计算机存储技术领域,尤其涉及一种基于RAID(RedundantArrays of Inexpensive Disks,独立磁盘冗余阵列)的写控制方法及系统。
背景技术
RAID是一种把多块独立的磁盘(物理磁盘)按不同的方式组合起来形成一个磁盘组(逻辑磁盘),从而提供比单个磁盘更高的存储性能和提供数据冗余的技术。其中,该多块独立磁盘成为RAID的成员磁盘。数据冗余的功能是在用户数据一旦发生损坏后,利用冗余信息可以使损坏数据得以恢复,这个过程称为重构。重构的具体过程为:一旦有磁盘因故障失效,并且失效的磁盘个数不大于RAID容许失效的磁盘个数时,RAID就会启动重构,读取非失效盘的数据恢复出失效盘的数据,并把恢复的数据写到其它磁盘中,且这块磁盘会被添加到RAID组中,成为其成员盘。
目前,基于RAID的写控制方法是把RAID组提供的空间划分成很多个区域,每个区域都有一个数据有效性的标记。系统初始化时,会把该标记初始为一个初始值。当区域有数据写入时,将该区域的数据有效性标记值设置成另外一个值,表示数据有效,一旦该标记设置成数据有效时,就不再设置成其它值。重构的时候检查该标记,只重构标记为有效的数据。
然而,当RAID组中的磁盘为SSD(Solid State Device/Solid State Drive,固态硬盘)时,由于SSD系统的写都采用重定向写方式,即每次写都写一个新的已经擦除过的地址,以提高写性能,因而,当覆盖写时,原来位置的数据就成了无效数据,而现有技术用于标记数据有效性的标记只在系统初始化时初始化一次,一旦设成数据有效时,就不再设置成其它值,因此,在覆盖写后,无效数据的有效性标识仍然为有效,所以,当SSD故障需要重构数据时,无效数据会被当作有效数据进行重构,增加了重构数据量,降低了重构速度。
发明内容
本发明实施例提供了一种基于独立磁盘冗余阵列RAID的写控制方法及系统,以降低重构数据量,提高重构速度。
本发明的第一方面提供一种基于独立磁盘冗余阵列RAID的写控制方法,RAID空间按固定大小被划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元;所述方法包括:
当接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述方法还包括:将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
结合第一方面,在第二种可能的实现方式中,还包括:
当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
结合第一方面,或者第一方面的任意一种可能的实现方式,在第四种可能的实现方式中,还包括:
依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所示若干个分条中具有空闲分条单元的第二分条中;
生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
将所述第一分条中的有效数据对应的资源块标记为无效,并将生成的资源块标记为有效。
本申请的第二方面提供一种基于独立磁盘冗余阵列RAID的写控制系统,RAID空间按固定大小被划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元;所述系统包括:
写数据模块,用于在接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
第一资源块生成模块,用于生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
第一标记模块,用于将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述第一标记模块还用于将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
结合第二方面,在第二种可能的实现方式中,还包括:
第二标记模块,用于当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
第三标记模块,用于当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
结合第二方面,或者第二方面的任意一种实现方式,在第四种可能的实现方式中,还包括:
数据有效性确定模块,用于依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
数据迁移模块,用于当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所述若干个分条中的具有空闲分条单元的第二分条中;
第二资源块生成模块,用于生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
第四标记模块,用于将所述第一分条中的有效数据对应的资源块标记为无效,并将所述第二资源生成模块生成的资源块标记为有效。
本申请的第三方面提供一种基于独立磁盘冗余阵列RAID的写控制系统,RAID空间按固定大小被划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元;所述系统包括:
至少一个处理器,以及与所述至少一个处理器耦合的存储器;
所述至少一个处理器被配置为:
当接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述至少一个处理器进一步被配置为:将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。结合第三方面,在第二种可能的实现方式中,所述至少一个处理器进一步被配置为:
当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
结合第三方面的第二中可能的实现方式,在第三中可能的实现方式中,所述至少一个处理器进一步被配置为:
当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
结合第三方面,或者第三方面的任意一种可能的实现方式,在第四种可能的实现方式中,所述至少一个处理器进一步被配置为:
依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所述若干个分条中的具有空闲分条单元的第二分条中;
生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
将所述第一分条中的有效数据对应的资源块标记为无效,并将生成的资源块标记为有效。
本发明实施例提供的一种基于RAID的写控制方法及系统,在写数据后,通过生成资源块并对资源块的有效性进行标记实现对存储数据的有效性的标记,并在覆盖写数据时,将存储所述数据的原数据的分条单元对应的资源块标记为无效,实现了对被覆盖的数据的有效性标记,因此,本申请提供的写控制方法,标记为有效的数据只有有效数据,当有分条单元因故障失效需要重构数据时,可以根据资源块的有效性标记只重构有效数据所在的分条中的失效分条单元中的数据,而分条中没有有效数据的分条中的失效分条单元中的数据则不进行重构,从减少了数据的重构量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的将RAID空间按固定大小划分为若干个分条的划分示意图;
图2是本申请实施例提供的一种基于RAID的写控制方法的流程图;
图3是本申请实施例提供的数据迁移步骤的实现流程图;
图4为本申请实施例提供的数据迁移过程的示意图;
图5为本申请实施例提供的一种基于RAID的写控制系统结构示意图;
图6为本申请实施例提供的另一种基于RAID的写控制系统的结构示意图;
图7为本申请实施例提供的又一种基于RAID的写控制系统的结构示意图;
图8为本申请实施例提供的又一种基于RAID的写控制系统的结构示意图;
图9为本申请实施例提供的又一种基于RAID的写控制系统的结构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
为了使本领域技术人员能进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,附图仅提供参考与说明,并非用来限制本发明。
本申请实施例中,预先将RAID空间按固定大小划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元。具体请参看图1,图1为本申请实施例提供的将RAID空间按固定大小划分为若干个分条的划分示意图;
图1中,RAID空间共有n个成员磁盘,每个成员磁盘被平均划分为m个区域,其中,“区域ij”表示第i(i=1,2,3,……,n)个成员磁盘的第j(j=1,2,3,……,m)个区域,显然,本申请实施例中,是将不同成员磁盘的相同区域划分为一个分条。
请参看图2,图2为本申请实施例提供的一种基于RAID的写控制方法的流程图。所述写控制方法可以包括:
步骤S21:当接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
本申请实施例中,所述具有空闲分条单元的分条可以是存储了部分数据的分条,即一个分条中,只有部分分条单元存储有数据,而该分条中其它分条单元则没有存储数据;所述具有空闲分条单元的分条还可以是全部分条单元均没有存储数据的分条,即一个分条中的每一个分条单元均没有存储数据。
每次写数据时,由于写请求中所携带的数据量的大小可能不同,因此,每次写数据时所占用的分条单元的数量也可能不同。
步骤S22:生成与每一个存储数据块后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
对于写入数据后的每一个分条单元,生成与该分条单元对应的一个资源块,该资源块中记录有如下信息:
该分条单元中所写入数据的目的逻辑地址,该数据的目的逻辑地址从所述写请求中获取,即所述写请求中携带有所写数据的目的逻辑地址;
分条单元所在分条的识别码,即该分条单元属于哪个分条,所述分条的识别码可以序列号,也可以是其它的具有唯一性的标识,只要能区分不同的分条即可;
分条单元的识别码,即该分条单元在分条中的哪个位置,所述分条单元的识别码也可以是序列号,也可以其它的具有唯一性的标识,只要能区分同一分条中的不同分条单元即可;
所述数据在分条单元中的偏移,即所写数据在分条单元中的位置。例如,在一个未写过数据的分条单元中写数据,第一次写入长度为4K字节的数据A,则数据A的偏移就为0,第二次往该分条写入2K字节的数据B,则数据B的偏移就是4K字节,第三次往该分条写入8K字节的数据C,那么,数据C的偏移就为6K字节,以此类推。
资源块中还记录有分条单元中存储的数据的长度。
由于一个分条单元中写入的数据可能是多次写入的,因此,一个分条单元可能对应多个资源块。
步骤S23:将生成的资源块标记为有效;
步骤S24:若所述写数据请求为覆盖写数据请求,则所述方法还包括:将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
覆盖写数据是指在同一个逻辑地址中写数据,即写请求中携带的数据的目的逻辑地址中已经写过一次数据,那么,再次请求在该目的逻辑地址中写数据就称为覆盖写。
本申请实施例中,当所述写数据请求为覆盖写数据请求时,除了将该数据写入空闲的分条单元中,生成与所写入数据的分条单元对应的资源块,并将生成的资源块标记为有效外,还将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
本申请实施例提供的一种基于RAID的写控制方法及系统,在写数据后,通过生成资源块并对资源块的有效性进行标记实现对存储数据的有效性的标记,并在覆盖写数据时,将存储所述数据的原数据的分条单元对应的资源块标记为无效,实现了对被覆盖的数据的有效性标记,因此,本申请提供的写控制方法,标记为有效的数据只有有效数据,当有分条单元因故障失效需要重构数据时,可以根据资源块的有效性标记只重构有效数据所在的分条中的失效分条单元中的数据,而分条中没有有效数据的分条中的失效分条单元中的数据则不进行重构,从减少了数据的重构量。
为了缩短重构数据的时间,在图2所示实施例的基础上,本申请实施例提供的基于RAID的写控制方法进一步可以包括:
当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
本申请实施例中,将分条作为识别数据是否有效的粒度,那么,在进行重构时,可以直接读取分条的有效性来判断是否对分条中的数据进行重构,具体的,只对标记为有效的分条中的失效分条单元中的数据进行重构,而标记为无效的分条中的失效分条单元中的数据则不进行重构。
本申请实施例中,将分条作为识别数据是否有效的粒度,在进行重构时,就不需要逐个对分条单元的有效性进行判断,而只对分条的有效性进行判断即可,而分条的数量是小于分条单元的数量的,因此,在重构数据时,可以减少数据有效性判断所需的时间,从而缩短了重构数据的时间。
为了进一步缩短重构数据的时间,本申请实施例提供的基于RAID的写控制方法进一步可以包括:
当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
本申请实施例中,可以预先将所有分条进行分组,例如,每两个分条一组,或者,每三个分条一组等。
具体在写数据时,当属于同一分组的所有分条中的所有分条单元对应的资源块都被标记为无效时,将该分组标记为无效。那么,在进行数据重构时,可以先对分组的有效性进行判断,当一个分组被标记为无效时,说明该分组中的所有分条均为无效,因此,当以分组为粒度判断数据的有效性时,判断出一个分组无效时就相当于判断至少两个分条是无效的(具体个数为分组中分条的个数),而当判断出一个分组有效时,则再判断该分组中各个分条的有效性,从而进一步缩短了重构数据的时间。
上述实施例,优选的,还可以包括数据迁移的步骤,本申请实施例提供的数据迁移步骤的实现流程图如图3所示,可以包括:
步骤S31:依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
本申请实施例中,对于每一个分条,可以根据该分条中每一个分条单元对应的资源块中记录的信息,判断出该分条中哪些数据是有效的,哪些数据是无效的。具体的,根据资源块中的“数据在分条单元中的偏移”,以及“数据的长度”的信息可以确定分条单元中该资源块对应哪些数据,而该数据的有效性即为该资源块的有效性。
步骤S32:当所述若干的分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所述若干的分条中的具有空闲分条单元的第二分条中;
所述无效数据量可以是指无效数据的比特数,也可以是指无效数据所占空间与所述分条空间的比值,当然,所述无效数据量的含义不同,所对应的预设阈值也不同,具体阈值可以根据用户需求设定。
其中,所述具有空闲分条单元的分条可以是全部分条单元都为空闲分条单元的分条,也可以是部分分条单元为空闲分条单元的分条。
步骤S33:生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
将第一分条中的有效数据迁移至第二分条中的空闲分条单元后,生成与存储所迁移的数据的分条单元对应的资源块。该资源块中记录有:所迁移的数据的目的逻辑地址,存储所迁移的数据的分条单元所在分条的识别码,存储所迁移的数据的分条单元的识别码,所迁移数据在分条单元中的偏移,以及数据的长度;
步骤S34:将所述第一分条中的有效数据对应的资源块标记为无效,并将生成的资源块标记为有效。
下面结合附图4对本申请实施例中的数据迁移的过程进行说明,图4为本申请实施例提供的数据迁移过程的示意图;
图4中分条1和分条2中的无效数据量都高于预设阈值,那么,可以将分条1和分条2中的有效数据都迁移至空闲的分条3中,当将分条1中分条2中的有效数据都迁移到分条3中后,将分条1和分条2中的有效数据对应的资源块都标记为无效,即分条1和分条2中的数据都变为无效数据。
由图4可以看出,分条1和分条2都为有效分条,而分条3为空闲分条,如果不进行数据迁移,那么,当分条1和分条2中都有分条单元失效,且每个分条中失效的分条单元的个数都不大于RAID容许失效的磁盘个数时,需要重构分条1和分条2两个分条中的失效分条单元中的数据,而在将分条1和分条2中的数据迁移到分条3中后,当分条1和分条2中有分条单元失效时,由于分条1和分条2中的有效数据都迁移到了分条3中,分条1和分条2已经变为无效分条,那么,就不需要重构分条1和分条2中失效的分条单元中的数据了,即使分条3中有分条单元失效需要重构,也只需要重构分条3这一个分条中的失效分条单元中的即可,降低了重构的数据量。
本申请实施例提供的写控制方法,将无效数据量高于预设阈值的分条中的有效数据迁移至其它分条中,减少了重构数据量,缩短了重构时间,从而减少了重构过程中因其它分条单元失效导致RAID失效的几率,进而提高的RAID存储系统的可靠性。
与方法实施例相对应,本申请实施例还提供一种基于RAID的写控制系统,本申请实施例中,RAID空间按固定大小被划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元;本申请实施例提供的一种基于RAID的写控制系统结构示意图如图5所示,可以包括:
写数据模块51,第一资源块生成模块52和第一标记模块53;其中,
写数据模块51用于在接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
第一资源块生成模块52用于生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
第一标记模块53用于将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述第一标记模块53还用于将所述写请求中的目的逻辑地址中的原数据所占用的的分条单元对应的资源块标记为无效。
本申请实施例提供的一种基于RAID的写控制系统,在写数据后,第一资源块生成模块生成资源块,通过第一标记模块对资源块的有效性进行标记实现对存储数据的有效性的标记,并在覆盖写数据时,将存储所述数据的原数据的分条单元对应的资源块标记为无效,实现了对被覆盖的数据的有效性标记,因此,本申请提供的写控制系统,标记为有效的数据只有有效数据,当有分条单元因故障失效需要重构数据时,可以根据资源块的有效性标记只重构有效数据所在的分条中的失效分条单元中的数据,而分条中没有有效数据的分条中的失效分条单元中的数据则不进行重构,从减少了数据的重构量。
在图5所示实施例的基础上,本申请实施例提供的另一种基于RAID的写控制系统的结构示意图如图6所示,还可以包括:
第二标记模块61,用于当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
在图6所示实施例的基础上,本申请实施例提供的又一种基于RAID的写控制系统的结构示意图如图7所示,还可以包括:
第三标记模块71,用于当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
在图5-图6任意一图所示实施例的基础上,本申请实施例提供的又一种基于RAID的写控制系统的结构示意图如图8所示,还可以包括:
数据有效性确定模块81,数据迁移模块82,第二资源块生成模块83和第四标记模块84;其中,
数据有效性确定模块81用于依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
数据迁移模块82用于当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所述若干个分条中的具有空闲分条单元的第二分条中;
第二资源块生成模块83用于生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
第四标记模块84用于将所述第一分条中的有效数据对应的资源块标记为无效,并将所述第二资源生成模块生成的资源块标记为有效。
本申请实施例公开的另一中基于RAID的写控制系统的结构示意图如图9所示,所述系统可以包括:
至少一个处理器91,与所述至少一个处理器91耦合的存储器92,和通信接口93;
至少一个处理器91,存储器92和通信接口93通过总线94完成相互间的通信。本申请实施例中的基于RAID的写控制系统也是通过总线94实现对RAID磁盘组的读写。
所述至少一个处理器91被配置为:
当接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述至少一个处理器进一步被配置为:将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
所述通信接口93用于接收写请求。
上述实施例,优选的,所述至少一个处理器进一步被配置为:
当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
上述实施例,优选的,所述至少一个处理器进一步被配置为:
当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
上述实施例,优选的,所述至少一个处理器进一步被配置为:
依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所述若干个分条中的具有空闲分条单元的第二分条中;
生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
将所述第一分条中的有效数据对应的资源块标记为无效,并将生成的资源块标记为有效。
具体的,上述本发明实施例揭示的方法可以应用于处理器91中,或者说由处理器91实现。处理器91可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器91中的硬件的集成逻辑电路或者软件形式的指令完成,用于执行本发明实施例揭示的方法,上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器RAM、闪存Flash Memory、只读存储器ROM,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器92中,处理器读取存储器92中的信息,结合其硬件完成上述方法的步骤。本申请说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (12)
1.一种基于独立磁盘冗余阵列RAID的写控制方法,其特征在于,RAID空间按固定大小被划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元;所述方法包括:
当接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述方法还包括:将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
2.根据权利要求1所述的方法,其特征在于,还包括:
当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
3.根据权利要求2所述的方法,其特征在于,还包括:
当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
4.根据权利要求1-3任意一项所述的方法,其特征在于,还包括:
依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所述若干个分条中的具有空闲分条单元的第二分条中;
生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
将所述第一分条中的有效数据对应的资源块标记为无效,并将生成的资源块标记为有效。
5.一种基于独立磁盘冗余阵列RAID的写控制系统,其特征在于,RAID空间按固定大小被划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元;所述系统包括:
写数据模块,用于在接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
第一资源块生成模块,用于生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
第一标记模块,用于将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述第一标记模块还用于将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
6.根据权利要求5所述的系统,其特征在于,还包括:
第二标记模块,用于当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
7.根据权利要求6所述的系统,其特征在于,还包括:
第三标记模块,用于当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
8.根据权利要求5-7任意一项所述的系统,其特征在于,还包括:
数据有效性确定模块,用于依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
数据迁移模块,用于当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至所述若干个分条中的具有空闲分条单元的第二分条中;
第二资源块生成模块,用于生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
第四标记模块,用于将所述第一分条中的有效数据对应的资源块标记为无效,并将所述第二资源生成模块生成的资源块标记为有效。
9.一种基于独立磁盘冗余阵列RAID的写控制系统,其特征在于,RAID空间按固定大小被划分为若干个分条,其中,所述RAID空间中各成员磁盘的相同区域为一个分条的分条单元;所述系统包括:
至少一个处理器,以及与所述至少一个处理器耦合的存储器;
所述至少一个处理器被配置为:
当接收到写请求时,确定具有空闲分条单元的分条,将所述写请求中携带的数据写入所确定的分条中的空闲分条单元中;
生成与每一个存储数据后的分条单元对应的资源块,所述资源块中记录有:所述数据的目的逻辑地址,分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度;
将生成的资源块标记为有效;
若所述写请求为覆盖写请求,则所述至少一个处理进一步被配置为:将所述写请求中的目的逻辑地址中的原数据所占用的分条单元对应的资源块标记为无效。
10.根据权利要求9所述的系统,其特征在于,所述至少一个处理器进一步被配置为:
当一个分条中的所有分条单元所对应的资源块都被标记为无效时,标记该分条为无效。
11.根据权利要求10所述的系统,其特征在于,所述至少一个处理器进一步被配置为:
当属于同一个分组的分条都被标记为无效时,标记所述分组为无效。
12.根据权利要求9-11任意一项所述的系统,其特征在于,所述至少一个处理器进一步被配置为:
依据资源块的有效性标记,以及所述资源块中记录的分条单元所在分条的识别码,分条单元的识别码,所述数据在分条单元中的偏移,以及数据的长度信息,确定分条中的有效数据和无效数据;
当所述若干个分条中的第一分条中的无效数据量高于预设阈值时,将该分条中的有效数据迁移至具所述若干个分条中的有空闲分条单元的第二分条中;
生成与所述第二分条中的存储迁移数据的各个分条单元对应的资源块;
将所述第一分条中的有效数据对应的资源块标记为无效,并将生成的资源块标记为有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310648859.9A CN103699337B (zh) | 2013-12-04 | 2013-12-04 | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310648859.9A CN103699337B (zh) | 2013-12-04 | 2013-12-04 | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103699337A true CN103699337A (zh) | 2014-04-02 |
CN103699337B CN103699337B (zh) | 2017-01-18 |
Family
ID=50360878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310648859.9A Active CN103699337B (zh) | 2013-12-04 | 2013-12-04 | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103699337B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807788A (zh) * | 2016-09-09 | 2018-03-16 | 北京忆恒创源科技有限公司 | 多平面闪存的数据组织方法与装置 |
CN109814805A (zh) * | 2018-12-25 | 2019-05-28 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
CN110309012A (zh) * | 2018-03-27 | 2019-10-08 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及其装置 |
WO2020007030A1 (zh) * | 2018-07-06 | 2020-01-09 | 华为技术有限公司 | 一种系统控制器和系统垃圾回收方法 |
CN110780812A (zh) * | 2019-09-27 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种硬盘数据置无效方法与装置 |
CN110895445A (zh) * | 2018-09-12 | 2020-03-20 | 华为技术有限公司 | 数据处理方法和系统 |
CN113238991A (zh) * | 2021-07-12 | 2021-08-10 | 湖南博匠信息科技有限公司 | 一种基于fpga实现硬raid卡功能的方法 |
CN113419686A (zh) * | 2021-07-12 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 一种raid重构方法及装置 |
JP2021529406A (ja) * | 2018-07-06 | 2021-10-28 | 華為技術有限公司Huawei Technologies Co.,Ltd. | システムコントローラおよびシステムガベージコレクション方法 |
CN113741794A (zh) * | 2020-05-29 | 2021-12-03 | 浙江宇视科技有限公司 | 一种smr盘阵列重建方法、系统、设备及计算机介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632765A (zh) * | 2004-12-31 | 2005-06-29 | 大唐微电子技术有限公司 | 一种闪存文件系统管理方法 |
US7328306B1 (en) * | 2002-02-25 | 2008-02-05 | Network Appliance, Inc. | Flexible disabling of disk sets |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
CN102185910A (zh) * | 2011-04-22 | 2011-09-14 | 湖南大学 | 基于ssd和hdd混合存储的无盘网络服务器数据分布方法 |
CN102609358A (zh) * | 2012-01-12 | 2012-07-25 | 记忆科技(深圳)有限公司 | 聚集静态数据的方法及其固态硬盘 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
-
2013
- 2013-12-04 CN CN201310648859.9A patent/CN103699337B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328306B1 (en) * | 2002-02-25 | 2008-02-05 | Network Appliance, Inc. | Flexible disabling of disk sets |
CN1632765A (zh) * | 2004-12-31 | 2005-06-29 | 大唐微电子技术有限公司 | 一种闪存文件系统管理方法 |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
CN102185910A (zh) * | 2011-04-22 | 2011-09-14 | 湖南大学 | 基于ssd和hdd混合存储的无盘网络服务器数据分布方法 |
CN102609358A (zh) * | 2012-01-12 | 2012-07-25 | 记忆科技(深圳)有限公司 | 聚集静态数据的方法及其固态硬盘 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807788A (zh) * | 2016-09-09 | 2018-03-16 | 北京忆恒创源科技有限公司 | 多平面闪存的数据组织方法与装置 |
CN107807788B (zh) * | 2016-09-09 | 2021-06-15 | 北京忆恒创源科技有限公司 | 块条带构造方法、构造装置及固态存储设备 |
CN110309012B (zh) * | 2018-03-27 | 2021-01-26 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及其装置 |
US11841762B2 (en) | 2018-03-27 | 2023-12-12 | Hangzhou Hikvision Digital Technology Co., Ltd. | Data processing |
CN110309012A (zh) * | 2018-03-27 | 2019-10-08 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及其装置 |
WO2020007030A1 (zh) * | 2018-07-06 | 2020-01-09 | 华为技术有限公司 | 一种系统控制器和系统垃圾回收方法 |
JP7146054B2 (ja) | 2018-07-06 | 2022-10-03 | 華為技術有限公司 | システムコントローラおよびシステムガベージコレクション方法 |
JP2021529406A (ja) * | 2018-07-06 | 2021-10-28 | 華為技術有限公司Huawei Technologies Co.,Ltd. | システムコントローラおよびシステムガベージコレクション方法 |
US11321229B2 (en) | 2018-07-06 | 2022-05-03 | Huawei Technologies Co., Ltd. | System controller and system garbage collection method |
CN110895445A (zh) * | 2018-09-12 | 2020-03-20 | 华为技术有限公司 | 数据处理方法和系统 |
CN110895445B (zh) * | 2018-09-12 | 2021-09-14 | 华为技术有限公司 | 数据处理方法和系统 |
CN109814805A (zh) * | 2018-12-25 | 2019-05-28 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
CN110780812A (zh) * | 2019-09-27 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种硬盘数据置无效方法与装置 |
CN113741794B (zh) * | 2020-05-29 | 2024-04-05 | 浙江宇视科技有限公司 | 一种smr盘阵列重建方法、系统、设备及计算机介质 |
CN113741794A (zh) * | 2020-05-29 | 2021-12-03 | 浙江宇视科技有限公司 | 一种smr盘阵列重建方法、系统、设备及计算机介质 |
CN113238991A (zh) * | 2021-07-12 | 2021-08-10 | 湖南博匠信息科技有限公司 | 一种基于fpga实现硬raid卡功能的方法 |
CN113238991B (zh) * | 2021-07-12 | 2021-11-05 | 湖南博匠信息科技有限公司 | 一种基于fpga实现硬raid卡功能的方法 |
CN113419686A (zh) * | 2021-07-12 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 一种raid重构方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103699337B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699337B (zh) | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 | |
JP6294518B2 (ja) | 不揮発性メモリシステムにおける同期ミラーリング | |
US8347138B2 (en) | Redundant data distribution in a flash storage device | |
US11243706B2 (en) | Fragment management method and fragment management apparatus | |
US9575844B2 (en) | Mass storage device and method of operating the same to back up data stored in volatile memory | |
JP2019502987A (ja) | 不揮発性メモリ・システムにおけるマルチページ障害の回復 | |
CN112513804B (zh) | 一种数据处理方法及装置 | |
CN110089035B (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
CN110413454B (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
CN105573681A (zh) | 一种ssd盘片内部raid组建方法及系统 | |
US9063869B2 (en) | Method and system for storing and rebuilding data | |
CN101482802A (zh) | 独立磁盘冗余阵列5扩展方法及装置 | |
CN108701005A (zh) | 数据更新技术 | |
CN106033320B (zh) | 高性能廉价磁盘冗余阵列raid机制的处理方法及装置 | |
CN108255414B (zh) | 固态硬盘访问方法及装置 | |
CN107885620B (zh) | 一种提高固态盘阵列性能和可靠性的方法及系统 | |
CN109426441A (zh) | 数据储存装置以及其操作方法 | |
JP5343817B2 (ja) | 記憶装置 | |
CN107402890B (zh) | 一种基于固态盘阵列和缓存的数据处理方法及系统 | |
US11366608B2 (en) | Method, electronic device and computer readable storage medium for i/o management | |
CN115639961A (zh) | 数据写入方法、存储系统及服务器 | |
CN111124251B (zh) | 用于i/o控制的方法、装置以及计算机可读介质 | |
US9547554B2 (en) | Mass storage device and method of operating the same to store parity data | |
CN111427516A (zh) | Raid重建方法及装置 | |
CN113424262A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |