一种数据重建方法及装置的制造方法

文档序号:10511836阅读:204来源:国知局
一种数据重建方法及装置的制造方法
【专利摘要】本发明提供一种数据重建方法及装置,所述方法包括:当目标RAID达到记录数据变化记录表条件时,确定数据变化记录表中与所述目标RAID对应的目标基本区的大小;判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例是否大于或等于1:1;若否,则从数据变化记录表的扩展区中申请目标大小的目标区域,以使所述目标基本区与所述目标区域的bit位之和与所述目标RAID包括的条带数的比例达到1:1;根据所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述目标区域中bit位的值进行设置;当需要进行数据重建时,根据所述目标基本区与所述目标区域中各bit位的值对对应的条带进行数据重建。应用本发明实施例可以提高数据重建效率。
【专利说明】
一种数据重建方法及装置
技术领域
[0001 ]本发明涉及数据处理技术领域,尤其涉及一种数据重建方法及装置。
【背景技术】
[0002]RAID(Redundant Arrays of Independent Disks,独立冗余磁盘阵列)由多个磁盘聚合在一起,能够在提供大容量的同时,提供更高的访问速度、更好地可用性、以及数据冗余保护。其中,RAID中的磁盘可以称为该RAID的成员磁盘,每个成员磁盘中不但存储了外部写入到该磁盘中的数据,还存储了用于恢复其它成员磁盘的数据。
[0003]在对RAID进行数据读写操作的过程中,可能会由于例如某成员磁盘存在坏道、某成员磁盘被误拔出等各种原因,造成该成员磁盘离线的情况发生,此时,若RAID仍然能够正常进行数据读写操作(如RAID从正常状态转换为临界状态或降级状态),则外部仍有可能向RAID写入数据,从而使得RAID中对应的条带内的数据发生改变,因此,在离线的成员磁盘重新加入到该RAID中之后,需要针对该RAID中离线期间数据发生改变的条带在重新加入的成员磁盘中进行数据重建,即需要读取各离线期间数据发生改变的条带在其它成员磁盘中的数据,并根据读取来的数据依次得到各条带在重新加入RAID中的成员磁盘内的数据。
[0004]为了实现上述数据重建,目前常用的方案为:预先为各RAID分配固定大小的数据变化记录表,该数据变化记录表中每一 bit (比特)位对应RAID实际的一个或多个条带,当成员磁盘离线之后有条带中的数据发生了改变,则将与该条带对应的数据变化记录表中的bi t位置I;其中,数据变化记录表中各bi t位的初始值为O;当离线的成员磁盘重新加入RAID后,根据数据变化记录表,对有数据发生改变的条件进行重建。
[0005]然而实践发现,随着RAID里单磁盘容量越来越大,RAID中条带数量也越来越多,若为各RAID分配的固定大小的数据变化记录表过小,则数据变化记录表中I个bit位需要对应2个或更多的条带,根据该数据变化记录表进行数据重建时,可能会导致对不需要重建的条带进行重建的情况发生,例如,假设数据变化记录表中I个bit位对应3个条带,若该3个条带中仅有一个条带需要重建时,对应的bit位也会被置为I,后续数据重建过程中,会对该bit位对应的3个条带均进行数据重建,导致数据重建效率较低;而若需要保证数据变化记录表中的bit位与RAID中的条带数的1:1,则需要根据系统支持的最大RAID个数扩大数据变化记录表的空间预留,造成系统资源浪费。

【发明内容】

[0006]本发明提供一种数据重建方法及装置,以解决现有数据重建方案中数据重建效率较低或需要预留大空间的数据变化记录表造成系统资源浪费的问题。
[0007]根据本发明实施例的第一方面,提供一种数据重建方法,包括:
[0008]当目标独立冗余磁盘阵列RAID达到记录数据变化记录表条件时,确定数据变化记录表中与所述目标RAID对应的目标基本区的大小;
[0009]判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例是否大于或等于 1:1;
[0010]若否,则从数据变化记录表的扩展区中申请目标大小的目标区域,以使所述目标基本区与所述目标区域的bit位之和与所述目标RAID包括的条带数的比例达到1:1;
[0011 ]根据所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述目标区域中bit位的值进行设置;
[0012]当需要进行数据重建时,根据所述目标基本区与所述目标区域中各bit位的值对对应的条带进行数据重建。
[0013]根据本发明实施例的第二方面,提供一种数据重建装置,包括:
[0014]确定单元,用于当目标独立冗余磁盘阵列RAID达到记录数据变化记录表条件时,确定数据变化记录表中与所述目标RAID对应的目标基本区的大小;
[0015]判断单元,用于判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例是否大于或等于1:1;
[0016]申请单元,用于当所述判断单元判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例小于1:1时,从数据变化记录表的扩展区中申请目标大小的目标区域,以使所述目标基本区与所述目标区域的bit位之和与所述目标RAID包括的条带数的比例达到1:1;
[0017]设置单元,用于根据所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述目标区域中bit位的值进行设置;
[0018]数据重建单元,用于当需要进行数据重建时,根据所述目标基本区与所述目标区域中各bit位的值对对应的条带进行数据重建。
[0019]应用本发明实施例,当目标RAID达到记录数据变化记录表条件时,确定数据变化记录表中与目标RAID对应的目标基本区的大小,并当目标基本区中bit位与目标RAID包括的条带数的比例小于I: I时,从数据变化记录表的扩展区中申请目标大小的目标区域,以使目标基本区与目标区域的bit位之和与目标RAID包括的条带数的比例达到1:1,进而根据目标RAID包括的各条带中的数据变化情况对目标基本区与目标区域中bit位的值进行设置,当需要进行数据重建时,根据目标基本区与目标区域中各bit位的值对对应的条带进行数据重建,与现有数据重建方案中为各RAID分配固定大小的数据变化记录表的实现方式相比,在数据变化记录表的总大小相同的情况下,更好地保证了RAID对应的数据变化记录表中bit位与RAID包括的条带数的比例为1:1,减少了对不需要进行数据重建的条带进行重建的情况发生,提高了数据重建效率。
【附图说明】
[0020]图1是本发明实施例提供的一种数据重建方法的流程示意图;
[0021]图2是本发明实施例提供的另一种数据重建方法的流程示意图;
[0022]图3是本发明实施例提供的一种数据重建装置的结构示意图;
[0023]图4是本发明实施例提供的另一种数据重建装置的结构示意图。
【具体实施方式】
[0024]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0025]请参见图1,图1为本发明实施例提供的一种数据重建方法的流程示意图,如图1所示,该数据重建方法可以包括以下步骤:
[0026]需要说明的是,步骤101?步骤107的执行主体可以为支持RAID的存储设备、存储设备的处理器,如CPU(Center Process Unit,中央处理单元)或RAID控制器。为便于描述,以下以步骤101?步骤107的执行主体为存储设备为例进行说明。
[0027]步骤101、当目标RAID达到记录数据变化记录表条件时,确定数据变化记录表中与目标RAID对应的目标基本区的大小。
[0028]本发明实施例中,目标RAID并不特指某一固定RAID,而是可以指代存储设备中物理磁盘组成的任一 RAID。
[0029]本发明实施例中,目标RAID达到记录数据变化记录表条件可以包括目标RAID中发生成员磁盘离线而导致目标RAID由正常状态转换为临界状态或降级状态等。
[0030]本发明实施例中,数据变化记录表可以包括基本区和扩展区,其中,基本区中包括与系统支持的最大RAID个数(本文中记为Max)等量(即Max个)的小区域空间,各小区域空间固定用于记录对应的RAID中包括的条带中的数据变化情况(发生改变或未发生改变);扩展区为各RAID共用的区域,可以在需要的时候申请用来记录相应RAID中包括的条带中的数据变化情况。
[0031]可选地,数据变化记录表的基本区中包括的各小区域空间的大小相同。
[0032]本发明实施例中,当目标RAID达到记录数据变化记录表条件时,存储设备可以先确定数据变化记录表中与该目标RAID对应的基本区(本文中称为目标基本区)的大小。
[0033]步骤102、判断该目标基本区中bit位与目标RAID包括的条带数的比例是否大于或等于1:1。若是,转至步骤106;否则,转至步骤103。
[0034]本发明实施例中,当目标RAID达到记录数据变化记录表条件时,存储设备一方面可以确定数据变化记录表中与该目标RAID对应的目标基本区大小;另一方面可以计算该目标RAID包括的条带数,进而,存储设备可以判断目标基本区中bit位与目标RAID包括的条带数的比例是否大于或等于1:1,即确定目标基本区是否满足一个bit位对应目标RAID中的一个实际条带的要求。
[0035]步骤103、从数据变化记录表的扩展区中申请目标大小的目标区域,以使目标基本区与目标区域的bit位之和与目标RAID包括的条带数的比例达到1:1。
[0036]本发明实施例中,当目标基本区中bit位与目标RAID包括的条带数的比例小于1:1时,即目标基本区不满足一个bit位对应目标RAID中的一个实际条带的要求,存储设备可以从数据变化记录表的扩展区中申请目标大小的区域(本文中称为目标区域),以使目标基本区与目标区域的bit位之和与目标RAID包括的条带数的比例达到1:1。
[0037]其中,目标大小(bit位数)为目标基本区的大小(bit位数)与目标RAID包括的条带数的差值。
[0038]步骤104、根据目标RAID包括的各条带中的数据变化情况对目标基本区与目标区域中的bit位的值进行设置。
[0039]本发明实施例中,存储设备为目标RAID从数据变化记录表的扩展区中申请了目标大小的目标区域之后,存储设备可以根据成员磁盘离线期间各条带中的数据变化情况对目标基本区与目标区域中的bit位的值进行设置。
[0040]例如,存储设备可以将数据发生了改变的条带对应的bit位的值设置为第二预设值(如I);数据未发生改变的条带对应的bit位的值设置为第一预设值(如O);其中,数据变化记录表中各bit位的初始值为O。
[0041]步骤105、当需要进行数据重建时,根据目标基本区与目标区域中各bit位的值对应的条带进行数据重建。
[0042]本发明实施例中,当需要进行数据重建时,如离线的成员磁盘重新加入目标RAID,存储设备可以根据目标基本区与目标区域中各bit位的值确定需要进行数据重建的条带(如值为I的bit位对应的条带),并对需要进行数据重建的条带进行数据重建,即根据需要重建的条带中非离线成员磁盘中的数据得出该条带在重新加入目标RAID中的离线磁盘上的数据,并将该数据写入该重新加入目标RAID中的离线磁盘的对应位置。
[0043]优选地,在本发明实施例中,存储设备对需要进行数据重建的条带进行数据重建时,可以优先对与扩展区的bit位对应的需要进行数据重建的条件进行数据重建,并在该部分条带重建完成后,释放所申请的扩展区(即上述目标区域)。
[0044]步骤106、根据目标RAID包括的各条带中数据变化情况对目标基本区中bit位的值进行设置。
[0045]本发明实施例中,当存储设备确定目标RAID对应的目标基本区中bit位与目标RAID包括的条带数的比例大于或等于1:1时,即数据变化记录表中与目标RAID对应的基本区满足一个bit位对应目标RAID中的一个实际条带的要求,存储设备可以不需要从扩展区中为目标RAID额外申请区域,而是可以直接使用目标基本区中的bit位来记录目标RAID包括的各条带中的数据变化情况。例如,将数据发生改变的条带对应的bit位的值设置为第二预设值;将数据未发生改变的条带对应的bit位的值设置为第一预设值。
[0046]步骤107、当需要进行数据重建时,根据目标基本区中各bit位的值对对应的条带进行重建。
[0047]本发明实施例中,当需要进行数据重建时,如离线的成员磁盘重新加入目标RAID,存储设备可以根据目标基本区中各bit位的值确定需要进行数据重建的条带(如值为I的bit位对应的条带),并对需要进行数据重建的条带进行数据重建。
[0048]可见,在图1所描述的方法流程中,通过将数据变化记录表划分为基本区和扩展区,基本区中包括与系统支持的最大RAID个数等量的小区域空间,各小区域空间固定用于记录对应的RAID中包括的条带中的数据变化情况;扩展区为各RAID共用的区域,可以在需要的时候申请用来记录相应RAID中包括的条带中的数据变化情况,与现有数据重建方案中为各RAID分配固定大小的数据变化记录表的实现方式相比,在数据变化记录表的总大小相同的情况下,更好地保证了RAID对应的数据变化记录表中bit位与RAID包括的条带数的比例为1:1,减少了对不需要进行数据重建的条带进行重建的情况发生,提高了数据重建效率。
[0049]请参见图2,图2为本发明实施例提供的另一种数据重建方法的流程示意图,如图2所示,该数据重建方法可以包括以下步骤:
[0050]需要说明的是,步骤201?步骤211的执行主体可以为支持RAID的存储设备、存储设备的处理器,如CPU或RAID控制器。为便于描述,以下以步骤201?步骤211的执行主体为存储设备为例进行说明。
[0051]步骤201、当目标RAID达到记录数据变化记录表条件时,确定数据变化记录表中与目标RAID对应的目标基本区的大小。
[0052]步骤202、判断目标基本区中bit位与目标RAID包括的条带数的比例是否大于或等于1:1。若是,转至步骤203 ;否则,转至步骤205。
[0053]步骤203、根据目标RAID包括的各条带中数据变化情况对目标基本区中bit位的值进行设置。
[0054]步骤204、当需要进行数据重建时,根据目标基本区中各bit位的值对对应的条带进行重建。
[0055]本发明实施例中,步骤201?步骤204的具体实现可以参见上述步骤101?步骤102以及步骤106?步骤107中的相关描述,本发明实施例在此不再赘述。
[0056]步骤205、判断数据变化记录表的扩展区的剩余可用区域的大小是否大于或等于目标大小。若是,转至步骤206;否则,转至步骤208。
[0057]本发明实施例中,目标大小(bit位数)为目标基本区的大小(bit位数)与目标RAID包括的条带数的差值。
[0058]当存储设备确定目标RAID对应的目标基本区的大小小于目标RAID包括的条带数时,存储设备需要尝试从扩展区为目标RAID申请目标大小的区域用于数据重建,以保证目标基本区与从扩展区申请的区域的bit位之和与目标RAID包括的条带数的比例达到1:1。
[0059]相应地,存储设备可以获取数据变化记录表的剩余可用区域的大小,并判断该剩余可用区域的大小是否大于或等于目标大小;若是,则表明扩展区中有足够的剩余可用区域保证以bit位和条带数1:1的比例记录目标RAID包括的各条带中的数据变化情况;否则,表明扩展区中没有足够的剩余可用区域保证以bit位和条带数1:1的比例记录目标RAID包括的各条带中的数据变化情况,即需要降低bit位和条带数的比例,以1:N(N为大于等于2的自然数)的比例记录目标RAID包括的各条带中的数据变化情况。
[0060]步骤206、从数据变化记录表的扩展区中申请目标大小的目标区域。
[0061 ]本发明实施例中,当目标基本区中bit位与目标RAID包括的条带数的比例小于1:1,且数据变化记录表的扩展区中有足够的剩余可用区域时,存储设备可以从数据变化记录表的扩展区中申请目标大小的目标区域,以使目标基本区与目标区域的bit位之和与目标RAID包括的条带数的比例达到1:1。
[0062]应该认识到,在本发明实施例中,上述206中,若数据变化记录表的扩展区的剩余可用区域的大小大于目标大小,则存储设备从扩展区为目标RAID申请的目标区域的大小也可以大于上述目标大小。
[0063]可选地,在本发明实施例中,存储设备从数据变化记录表的扩展区中为目标RAID申请目标大小的目标区域时,可以按照“扩展区总大小/Max”大小的单位进行申请,即每次从扩展区中申请“扩展区总大小/Max”大小的区域,直至满足目标基本区与从扩展区申请的区域的bit位之和与目标RAID包括的条带数的比例达到1:1的条件。
[0064]步骤207、当需要进行数据重建时,根据目标基本区与目标区域中各bit位的值对对应的条带进行数据重建。
[0065]本发明实施例中,当需要进行数据重建时,如离线的成员磁盘重新加入目标RAID,存储设备可以根据目标基本区与目标区域中各bit位的值确定需要进行数据重建的条带(如值为I的bit位对应的条带),并对需要进行数据重建的条带进行数据重建,即根据需要重建的条带中非离线成员磁盘中的数据得出该条带在重新加入目标RAID中的离线磁盘上的数据,并将该数据写入该重新加入目标RAID中的离线磁盘的对应位置。
[0066]优选地,在本发明实施例中,存储设备对需要进行数据重建的条带进行数据重建时,可以优先对与扩展区的bit位对应的需要进行数据重建的条件进行数据重建,并在该部分条带重建完成后,释放所申请的扩展区(即上述目标区域)。
[0067]步骤208、申请数据变化记录表的扩展区的全部剩余可用区域的大小。
[0068]本发明实施例中,若存储设备确定数据变化记录表的扩展区的剩余可用区域的大小小于目标大小,则存储设备可以直接申请数据变化记录表的扩展区的全部剩余可用区域的大小用于记录目标RAID包括的各条带中的数据变化情况。
[0069]步骤209、根据目标基本区的大小和扩展区的全部剩余可用区域的大小,确定目标基本区与扩展区的全部剩余可用区域中bit位之和与目标RAID包括的条带数的目标比例1:N。
[0070]本发明实施例中,当扩展区的剩余可用区域的大小小于目标大小时,即将扩展区的全部剩余可用区域均用于记录目标RAID包括的各条带中的数据变化情况时,仍然无法达至IJbit位与目标RAID包括的条带数1:1的条件,此时,需要根据目标基本区和扩展区的全部剩余可用区域的大小,调整用于记录目标RAID包括的各条带中的数据变化情况的bit位与条带数的比例,将其调整为1:N(N为大于或等于2的自然数,本文中称为目标比例)。
[0071 ]其中,N需要满足以下条件:
[0072]N=「(目标RAID包括的条带数/目标基本区与扩展区的全部剩余可用区域的bit位之和)Π
[0073]其中,「*π 为对 “*,,向上取整,如「1.9~|=2,「2~|=2,「2.1~|=3。
[0074]可选地,在本发明实施例中,当目标RAID包括的条带数与目标基本区与扩展区的全部剩余可用区域的bit位之和的比值为非整数时,将目标比例取为1:N之后,可以将剩余的扩展区释放,使其恢复为空闲状态,以供其它RAID使用。
[0075]举例来说,假设目标RAID包括的条带数为600,目标基本区与扩展区的全部剩余可用区域的bit位之和为400(目标基本区的bit位为100,扩展区的全部剩余可用区域的bit位为300),目标RAID包括的条带数与目标基本区与扩展区的全部剩余可用区域的bit位之和的比值为1.5,此时,N为2(N= r 1.5 π =2),即目标RAID共需要300bit位进行数据变化记录,从而,存储设备可以将剩余的扩展区(10bit位)释放,使其恢复为空闲状态。
[0076]需要注意的是,在本发明实施例中,数据变化记录表的表头中可以记录目标RAID对应的bit位与条带数的比例(1:1或1:N);此外,由于数据记录表中的一个bit位可能对应目标RAID包括的两个或两个以上条带,因此可以将目标RAID中与数据记录表的同一 bit位对应的条带可以称为宽条带。
[0077]步骤210、根据目标比例,以及目标RAID包括的各条带中的数据变化情况对目标基本区与扩展区的全部剩余可用区域中相应bit位的值进行设置。
[0078]本发明实施例中,存储设备确定了数据记录表中bit位与目标RAID包括的条带数的目标比例之后,可以根据该目标比例确定数据记录表中各bit位(包括目标基本区的bit位和从扩展区中申请的区域的bit位)与目标RAID包括的条带的对应关系,进而,可以根据目标RAID包括的各条带中的数据变化情况对目标基本区与扩展区的全部剩余可用区域中相应bit位的值进行设置。
[0079I 举例来说,假设N=2,即目标RAID对应的数据记录表中的bit位与目标RAID包括的条带数的比例为1: 2,则存储设备可以先确定各bit位对应的条带,如,第一个bit位对应条带O和条带I,第二个bit位对应条带2和条带3...第K个bit位对应条带(2K-2)和条带(2K-1)...;其中,K为大于2的自然数。进而,存储设备可以监测目标RAID在成员磁盘离线期间各条带的数据变化情况,并根据该数据变化情况对对应的bit位的值进行设置,例如,若条带2或/和条带3中的发生数据改变,则将第二个bit位的值设置为I;若条带(2K-2)或/和条带(2K-1)中发生数据改变,则将第K个bit位的值设置为I;若条带(2K-2)和条带(2K-1)中均未发生数据改变,则将第K个bit位的值保持为O。
[0080]步骤211、当需要进行数据重建时,根据目标基本区与扩展区的全部剩余可用区域中相应bit位的值对对应的条带进行数据重建。
[0081]当需要进行数据重建时,如离线的成员磁盘重新加入目标RAID,存储设备可以根据目标基本区与目标区域中各bit位的值,以及目标比例确定需要进行数据重建的条带(如值为I的bit位对应的条带),并对需要进行数据重建的条带进行数据重建,即根据需要重建的条带中非离线成员磁盘中的数据得出该条带在重新加入目标RAID中的离线磁盘上的数据,并将该数据写入该重新加入目标RAID中的离线磁盘的对应位置。
[0082]例如,假设N=2,若目标RAID对应的数据变化记录表(包括目标基本区和从扩展区中申请的区域)中第一个bit位的值为I,则对目标RAID的条带O和条带I进行数据重建;若第K个bit位的值为I,则对目标RAID的条带(2K-2)和条带(2K-1)进行数据重建。
[0083]优选地,在本发明实施例中,存储设备对需要进行数据重建的条带进行数据重建时,可以优先对与扩展区的bit位对应的需要进行数据重建的条件进行数据重建,并在该部分条带重建完成后,释放所申请的扩展区。
[0084]可选地,存储设备释放所申请的扩展区时,也可以以“扩展区总大小/Max”的单位进行释放,即每完成“扩展区总大小/Max”大小的区域对应的条带的数据重建后,释放所申请的该部分扩展区。
[0085]值得说明的是,在本发明实施例中,存储设备对相应条带进行数据重建之后,需要将与该条带对应的值重置为第一预设值(如O),其具体实现在此不再赘述。
[0086]可见,在图2所描述的方法流程中,通过将数据变化记录表划分为基本区和扩展区,基本区中包括与系统支持的最大RAID个数等量的小区域空间,各小区域空间固定用于记录对应的RAID中包括的条带中的数据变化情况;扩展区为各RAID共用的区域,可以在需要的时候申请用来记录相应RAID中包括的条带中的数据变化情况,且扩展区的空间在数据重建完成后会被释放,考虑到实际情况中不会出现同时有大量RAID需要进行数据变化记录的情况发生,因此,仅需要设置一个合理大小的扩展区供各RAID分别使用,即可实现在目标RAID需要进行数据变化记录有足够的空间满足bit位与目标RAID条带数的比例1:1,减少对不需要进行数据重建的条带进行重建的情况发生,与现有技术中必须分别为各RAID均预留足够的空间进行数据变化记录的方案相比,有效地节省了空间,避免了系统资源浪费。
[0087]通过以上描述可以看出,在本发明实施例中,当目标RAID达到记录数据变化记录表条件时,确定数据变化记录表中与目标RAID对应的目标基本区的大小,并当目标基本区中bit位与目标RAID包括的条带数的比例小于1:1时,从数据变化记录表的扩展区中申请目标大小的目标区域,以使目标基本区与目标区域的bit位之和与目标RAID包括的条带数的比例达到1:1,进而根据目标RAID包括的各条带中的数据变化情况对目标基本区与目标区域中bit位的值进行设置,当需要进行数据重建时,根据目标基本区与目标区域中各bit位的值对对应的条带进行数据重建,与现有数据重建方案中为各RAID分配固定大小的数据变化记录表的实现方式相比,在数据变化记录表的总大小相同的情况下,更好地保证了RAID对应的数据变化记录表中bit位与RAID包括的条带数的比例为1:1,减少了对不需要进行数据重建的条带进行重建的情况发生,提高了数据重建效率。
[0088]请参见图3,为本发明实施例提供的一种数据重建装置的结构示意图,其中,该数据重建装置可以应用于上述方法实施例中的存储设备,如图4所示,该数据重建装置可以包括:
[0089]确定单元310,用于当目标独立冗余磁盘阵列RAID达到记录数据变化记录表条件时,确定数据变化记录表中与所述目标RAID对应的目标基本区的大小;
[0090]判断单元320,用于判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例是否大于或等于1:1;
[0091 ]申请单元330,用于当所述判断单元320判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例小于1:1时,从数据变化记录表的扩展区中申请目标大小的目标区域,以使所述目标基本区与所述目标区域的bit位之和与所述目标RAID包括的条带数的比例达到1:1;
[0092]设置单元340,用于根据所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述目标区域中bit位的值进行设置;
[0093]数据重建单元350,用于当需要进行数据重建时,根据所述目标基本区与所述目标区域中各bit位的值对对应的条带进行数据重建。
[0094]在可选实施例中,所述设置单元340,还可以用于当所述判断单元320判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例大于或等于1:1时,根据所述目标RAID包括的各条带中数据变化情况对所述目标基本区中bit位的值进行设置;
[0095]所述数据重建单元350,还可以用于当需要进行数据重建时,根据所述目标基本区中各bit位的值对对应的条带进行数据重建。
[0096]在可选实施例中,所述判断单元320,还可以用于判断所述数据变化记录表的扩展区的剩余可用区域的大小是否大于或等于所述目标大小;
[0097]所述申请单元330,可以具体用于当所述判断单元320判断所述数据变化记录表的扩展区的剩余可用区域的大小大于或等于所述目标大小时,从数据变化记录表的扩展区中申请目标大小的目标区域。
[0098]在可选实施例中,所述申请单元330,还可以用于当所述判断单元330判断所述数据变化记录表的扩展区的剩余可用区域的大小小于所述目标大小时,申请所述数据变化记录表的扩展区的全部剩余可用区域的大小;
[0099]所述确定单元310,还可以用于根据所述目标基本区的大小和所述扩展区的全部剩余可用区域的大小,确定所述目标基本区与所述扩展区的全部剩余可用区域中bit位之和与所述目标RAID包括的条带数的目标比例1:N;N为大于或等于2的自然数;
[0100]所述设置单元340,还可以用于根据所述目标比例,以及所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述扩展区的全部剩余可用区域中相应bit位的值进行设置;
[0101]所述数据重建单元350,还可以用于当需要进行数据重建时,根据所述目标基本区与所述扩展区的全部剩余可用区域中相应bit位的值对对应的条带进行数据重建。
[0102]请一并参阅图4,为本发明实施例提供的另一种数据重建装置的结构示意图,如图4所示,在图3所示实施例的基础上,图4所示的数据重建装置还可以包括:
[0103]释放单元360,用于当所述目标区域中各bit位对应的条带重建完成后,释放所申请的所述目标区域。
[0104]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0105]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[Ο?Ο?]由上述实施例可见,当目标RAID达到记录数据变化记录表条件时,确定数据变化记录表中与目标RAID对应的目标基本区的大小,并当目标基本区中bit位与目标RAID包括的条带数的比例小于I: I时,从数据变化记录表的扩展区中申请目标大小的目标区域,以使目标基本区与目标区域的bit位之和与目标RAID包括的条带数的比例达到1:1,进而根据目标RAID包括的各条带中的数据变化情况对目标基本区与目标区域中bit位的值进行设置,当需要进行数据重建时,根据目标基本区与目标区域中各bit位的值对对应的条带进行数据重建,与现有数据重建方案中为各RAID分配固定大小的数据变化记录表的实现方式相比,在数据变化记录表的总大小相同的情况下,更好地保证了RAID对应的数据变化记录表中bit位与RAID包括的条带数的比例为1:1,减少了对不需要进行数据重建的条带进行重建的情况发生,提高了数据重建效率。
[0107]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0108]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
【主权项】
1.一种数据重建方法,其特征在于,包括: 当目标独立冗余磁盘阵列RAID达到记录数据变化记录表条件时,确定数据变化记录表中与所述目标RAID对应的目标基本区的大小; 判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例是否大于或等于1:1; 若否,则从数据变化记录表的扩展区中申请目标大小的目标区域,以使所述目标基本区与所述目标区域的bit位之和与所述目标RAID包括的条带数的比例达到1:1; 根据所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述目标区域中bit位的值进行设置; 当需要进行数据重建时,根据所述目标基本区与所述目标区域中各bit位的值对对应的条带进行数据重建。2.根据权利要求1所述的方法,其特征在于,所述判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例是否大于或等于1:1之后,还包括: 若是,则根据所述目标RAID包括的各条带中数据变化情况对所述目标基本区中bit位的值进行设置; 当需要进行数据重建时,根据所述目标基本区中各bit位的值对对应的条带进行数据重建。3.根据权利要求1或2所述的方法,其特征在于,所述从数据变化记录表的扩展区中申请目标大小的目标区域之前,还包括: 判断所述数据变化记录表的扩展区的剩余可用区域的大小是否大于或等于所述目标大小; 若是,则确定执行所述从数据变化记录表的扩展区中申请目标大小的目标区域的步骤。4.根据权利要求3所述的方法,其特征在于,所述判断所述数据变化记录表的扩展区的剩余可用区域的大小是否大于或等于所述目标大小之后,还包括: 若否,则申请所述数据变化记录表的扩展区的全部剩余可用区域的大小; 根据所述目标基本区的大小和所述扩展区的全部剩余可用区域的大小,确定所述目标基本区与所述扩展区的全部剩余可用区域中bit位之和与所述目标RAID包括的条带数的目标比例1:N;N为大于或等于2的自然数; 根据所述目标比例,以及所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述扩展区的全部剩余可用区域中相应bit位的值进行设置; 当需要进行数据重建时,根据所述目标基本区与所述扩展区的全部剩余可用区域中相应b i t位的值对对应的条带进行数据重建。5.根据权利要求1或2所述的方法,其特征在于,所述根据所述目标基本区与所述目标区域中各bit位的值对对应的条带进行数据重建之后,还包括: 当所述目标区域中各bit位对应的条带重建完成后,释放所申请的所述目标区域。6.一种数据重建装置,其特征在于,包括: 确定单元,用于当目标独立冗余磁盘阵列RAID达到记录数据变化记录表条件时,确定数据变化记录表中与所述目标RAID对应的目标基本区的大小; 判断单元,用于判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例是否大于或等于1:1; 申请单元,用于当所述判断单元判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例小于1:1时,从数据变化记录表的扩展区中申请目标大小的目标区域,以使所述目标基本区与所述目标区域的bit位之和与所述目标RAID包括的条带数的比例达到1:1; 设置单元,用于根据所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述目标区域中bit位的值进行设置; 数据重建单元,用于当需要进行数据重建时,根据所述目标基本区与所述目标区域中各bit位的值对对应的条带进行数据重建。7.根据权利要求6所述的装置,其特征在于, 所述设置单元,还用于当所述判断单元判断所述目标基本区中bit位与所述目标RAID包括的条带数的比例大于或等于1:1时,根据所述目标RAID包括的各条带中数据变化情况对所述目标基本区中bit位的值进行设置; 所述数据重建单元,还用于当需要进行数据重建时,根据所述目标基本区中各bit位的值对对应的条带进行数据重建。8.根据权利要求6或7所述的装置,其特征在于, 所述判断单元,还用于判断所述数据变化记录表的扩展区的剩余可用区域的大小是否大于或等于所述目标大小; 所述申请单元,具体用于当所述判断单元判断所述数据变化记录表的扩展区的剩余可用区域的大小大于或等于所述目标大小时,从数据变化记录表的扩展区中申请目标大小的目标区域。9.根据权利要求8所述的装置,其特征在于, 所述申请单元,还用于当所述判断单元判断所述数据变化记录表的扩展区的剩余可用区域的大小小于所述目标大小时,申请所述数据变化记录表的扩展区的全部剩余可用区域的大小; 所述确定单元,还用于根据所述目标基本区的大小和所述扩展区的全部剩余可用区域的大小,确定所述目标基本区与所述扩展区的全部剩余可用区域中bit位之和与所述目标RAID包括的条带数的目标比例1:N;N为大于或等于2的自然数; 所述设置单元,还用于根据所述目标比例,以及所述目标RAID包括的各条带中的数据变化情况对所述目标基本区与所述扩展区的全部剩余可用区域中相应bit位的值进行设置; 所述数据重建单元,还用于当需要进行数据重建时,根据所述目标基本区与所述扩展区的全部剩余可用区域中相应bit位的值对对应的条带进行数据重建。10.根据权利要求6或7所述的装置,其特征在于,所述装置还包括: 释放单元,用于当所述目标区域中各bit位对应的条带重建完成后,释放所申请的所述目标区域。
【文档编号】G06F3/06GK105867841SQ201610173584
【公开日】2016年8月17日
【申请日】2016年3月24日
【发明人】石岩, 许勇
【申请人】浙江宇视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1