存储系统及其数据保护方法
【技术领域】
[0001]本发明涉及计算机存储系统领域,特别是涉及一种存储系统及其数据保护方法。
【背景技术】
[0002]随着固态盘(Solid State Drives,固态硬盘)的出现,计算机存储系统的性能有了很大提高,并且通过将计算机存储系统与RAID (Redundant Array of Independent Disks,独立磁盘冗余阵列)技术相结合,有效地提升了计算机存储系统存储数据的可靠性和安全性。
[0003]但是,通过将存储系统与RAID技术结合,由于RAID计算出来的校验区块需要经常写入,这就使得计算机存储系统中的固态存储模块(如:固态盘)在RAID中,存放校验区块比数据区块有更多倍的写入次数,缩短了固态存储模块的寿命。
[0004]同时,当固态存储模块为固态盘时,向固态盘中的Flash芯片写入数据时以page (页,2k, 4k, 8k)为单位,而删除数据时则以 block (块,64page, 128page, 256page)为单位,所以当向Flash芯片中写入小于block的数据时,必须先将Flash芯片中整个block读出来,然后再将整个block写回去,这就很容易导致写入放大,影响固态盘的存储性能,同样缩短了固态盘的寿命。
【发明内容】
[0005]基于此,有必要针对现有的存储系统中的写入放大和校验区块的频繁写入缩短固态存储模块的寿命的问题,提供一种存储系统及其数据保护方法。
[0006]为实现本发明目的提供的一种存储系统,包括多个固态存储模块、检测模块、控制模块和备份模块,其中:
[0007]所述多个固态存储模块组成RAID,用于数据写入所述固态存储模块时,对所述数据进行RAID计算,产生校验区块数据;
[0008]所述检测模块,用于检测所述数据的数据量;
[0009]所述控制模块包括第一控制单元和第二控制单元,其中:
[0010]所述第一控制单元,用于当所述数据的数据量大于或等于所述固态存储模块的条带宽度时,控制所述校验区块数据写入所述固态存储模块;
[0011]所述第二控制单元,用于当所述数据的数据量小于所述条带宽度时,控制所述校验区块数据写入所述备份模块。
[0012]在其中一个实施例中,所述控制模块还包括第三控制单元和第四控制单元,其中:
[0013]当所述第一控制单元控制所述校验区块数据写入所述固态存储模块时,所述第三控制单元用于更新映像方块列表;
[0014]当所述第二控制单元控制所述校验区块数据写入所述备份模块时,所述第四控制单元用于在所述映像方块列表中存储相应记录;
[0015]其中,所述映像方块列表用于记录所述校验区块数据与所述校验区块数据写入位置的对应关系。
[0016]在其中一个实施例中,还包括修复模块,所述修复模块包括第一读取单元、第一判断单元、第五控制单元和第六控制单元,其中:
[0017]所述第一读取单元,用于修复所述固态存储模块的所述数据时,从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系;
[0018]所述第一判断单元,用于根据所述对应关系,判断所述校验区块数据的写入位置;
[0019]所述第五控制单元,用于当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据;
[0020]所述第六控制单元,用于当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据。
[0021]在其中一个实施例中,还包括重建模块,所述重建模块包括第二读取单元、第二判断单元、第七控制单元、第八控制单元、第一检测单元和第九控制单元,其中:
[0022]所述第二读取单元,用于进行所述RAID重建时,从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系;
[0023]所述第二判断单元,用于根据所述对应关系,判断所述校验区块数据的写入位置;
[0024]所述第七控制单元,用于当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据;
[0025]所述第八控制单元,用于当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据;
[0026]所述第一检测单元,用于根据所述校验区块数据重建所述数据时,实时检测所述数据重建是否完成;
[0027]所述第九控制单元,用于当所述数据重建未完成时,控制所述第二读取单元重新从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系。
[0028]值得说明的是,所述固态存储模块为固态盘,所述备份模块为热备盘。
[0029]作为一种可实施方式,所述热备盘为磁盘、所述固态盘、企业级SLC固态盘、或外接式存储装置。
[0030]其中,所述条带宽度为所述固态存储模块中块的整数倍。
[0031]在其中一个实施例中,所述RAID的类型为RAID5或RAID6。
[0032]作为一种可实施方式,所述多个固态存储模块组成所述RAID5时,所述备份模块的个数为I个;
[0033]所述多个固态存储模块组成所述RAID6时,所述备份模块的个数为2个。
[0034]相应的,基于上述任一种存储系统的存储原理,本发明还提供了一种存储系统数据保护方法,包括如下步骤:
[0035]当数据写入固态存储模块时,控制所述数据进行RAID计算,产生校验区块数据;
[0036]检测所述数据的数据量;
[0037]当所述数据的数据量大于或等于所述固态存储模块的条带宽度时,控制所述校验区块数据写入所述固态存储模块;
[0038]当所述数据的数据量小于所述条带宽度时,控制所述校验区块数据写入备份模块。
[0039]在其中一个实施例中,所述当所述数据的数据量大于或等于所述固态存储模块的条带宽度时,还包括如下步骤:
[0040]更新映像方块列表;
[0041]所述当所述数据的数据量小于所述条带宽度时,还包括如下步骤:
[0042]在所述映像方块列表中存储相应记录;
[0043]其中,所述映像方块列表,用于记录所述校验区块数据与所述校验区块数据写入位置的对应关系。
[0044]在其中一个实施例中,还包括数据修复步骤,所述数据修复步骤包括如下步骤:
[0045]从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系;
[0046]根据所述对应关系,判断所述校验区块数据的写入位置;
[0047]当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据;
[0048]当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据。
[0049]在其中一个实施例中,还包括数据重建步骤,所述数据重建步骤包括如下步骤:
[0050]从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系;
[0051]根据所述对应关系,判断所述校验区块数据的写入位置;
[0052]当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据;
[0053]当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据;
[0054]实时检测所述数据重建是否完成;
[0055]当所述数据重建未完成时,返回所述从所述映像方块列表中读取所述校验区块数据的写入位置的所述对应关系步骤。
[0056]本发明提供的存储系统及其数据保护方法,通过将多个固态存储模块组成RAID,当向其中任一固态存储模块中写入数据时,控制数据经过RAID计算,产生校验区块数据;并检测数据的数据量;当检测到数据的数据量大于或等于固态存储模块的条带宽度时,控制经过RAID计算产生的校验区块数据写入固态存储模块
;当检测到数据的数据量小于固态存储模块的条带宽度时,控制经过RAID计算产生的校验区块数据写入备份模块;其通过配置备份模块,将校验区块数据的写入集中到备份模块,使得损耗集中到备份模块,减少了不必要的固态存储模块的写入,进而减少了固态存储模块不必要的损耗,避免缩短固态存储模块的寿命。
[0057]并且,通过检测数据的数据量,当检测到数据的数据量大于或等于固态存储模块的条带宽度时,控制校验区块数据写入固态存储模块;当检测到数据的数据量小于固态存储模块的条带宽度时,控制校验区块数据写入备份模块;有效防止了数据的数据量小于固态存储模块的条带宽度时,仍将校验区块数据写入固态存储模块导致的写入放大的现象,同样避免缩短固态存储模块的寿命;同时,通过备份模块负责校验区块数据的写入,固态存储模块负责数据的写入,能够充分发挥固态存储模块的存储性能,又可避免多余的校验区块数据的写入,延长了固态存储模块的使用寿命,保证了存储系统的可靠性和安全性。
【附图说明】
[0058]图1为存储系统一具体实施例结构示意图;
[0059]图2为存储系统数据保护方法一具体实施例流程图;
[0060]图3为存储系统数据保护方法另一具体实施例流程图;
[0061]图4为存储系统数据保护方法又一具体实施例流程图。
【具体实施方式】
[0062]为使本发明技术方案更加清楚,以下结合附图及具体实施例对本发明做进一步详细说明。
[0063]参见图1,作为本发明提供的存储系统100的一具体实施例,包括多个固态存储模块110,检测模块120、控制模块130和备份模块140,其中:
[0064]多个固态存储模块110组成RAID,用于数据写入固态存储模块110时,对数据进行RAID计算,产生校验区块数据。
[0065]检测模块120,用于检测数据的数据量。
[0066]控制模块130包括第一控制单元131和第二控制单元132,其中:
[0067]第一控制单元131,用于当数据的数据量大于或等于固态存储模块110的条带宽度时,控制校验区块数据写入固态存储模块110。
[0068]第二控制单元132,用于当数据的数据量小于条带宽度时,控制校验区块数据写入备份模块140。
[0069]本发明提供的存储系统100的一具体实施例,通过将多个固态存储模块110组成RAID,并配置备份模块140 ;当向固态存储模块110写入数据时,控制数据经过RAID计算产生校验区块数据后,由检测模块120检测数据的数据量。
[0070]当检测模块120检测到数据的数据量大于或等于固态存储模块110的条带宽度时,控制模块130中的第一控制单元131控制产生的校验区块数据写入到固态存储模块110中。当检测模块120检测到数据的数据量小于固态存储模块110的条带宽度时,控制模块130中的第二控制单元132控制相应的校验区块数据写入备份模块140。
[0071]其通过将校验区块数据的写入集中到备份模块140,减少了固态存储模块110的写入,从而减少了固态存储模块110不必要的损耗,最终维持了固态存储模块110的寿命,有效地解决了现有的存储系统中的写入放大和校验区块的频繁写入缩短固态存储模块110的寿命的问题。
[0072]其中,RAID计算以RAID5、RAID6等常见的RAID为例,具体为以RAID5或RAID6校验区块作为数据保护技术的基础算法。
[0073]如:校验区块的计算以RAID5为例,其中:
[0074]P代表校验区块,A/B/C代表数据区块。运用XOR运算,计算如下:P = Axor B xorC0
[0075]若A/B/C中任一数据毁损,同样运用XOR运算:A = P xor B xor C,对数据进行修复。
[0076]对于RAID6,则是多了 Q校验区块,其进行XOR运算类似于如上所述的RAID5,因此重复之处,不再赘述。
[0077]需要指出的是,本发明所提供的RAID计算同样适用于三个以上校验区块。
[0078]在此,需要说明的是,固态存储模块110的条带宽度为固态存储模块110中块(block)的整数倍,如:128K或2Μ ;并且,固态存储模块110的个数至少为3个。
[0079]其中,RAID的类型可为RAID5,也可为RAID6 ;当多个固态存储模块110组成RAID5时,备份模块140的个数为I个;当多个固态存储模块110组成RAID6时,备份模块140的个数则为2个。
[0080]值得说明的是,固态存储模块110可为固态盘,备份模块140可为热备盘。
[0081]其中,当备份模块140为热备盘时,热备盘可根据实际情况(如:性能要求、成本要求、或实施便利性等),采用磁盘、企业级SLC(Single-Level Cell,单层式储存单元)固态盘、或外接式存储装置等。
[0082]作为一种可实施方式,也可以选择固态盘作为热备盘使用,虽然会导致热备盘的寿命降低,但是可以保证用于写入数据的固态盘的寿命,使得用于写入数据的固态盘的失效在可控范围内,同样保证了存储系统100的安全性和可靠性,维持了存储系统100中固态存储模块110的寿命。
[0083]较佳的,作为本发明提供的存储系统100的又一具体实施例,控制模块130还包括第三控制单元和第四控制单元,其中:
[0084]当第一控制单元131控制校验区块数据写入固态存储模块110时,第三控制单元,用于更新映像方块列表。
[0085]当第二控制单元132控制校验区块数据写入备份模块140时,第四控制单元,用于在映像方块列表中存储相应记录。
[0086]其中,映像方块列表,用于记录校验区块数据与校验区块数据写入位置的对应关系O
[0087]当通过检测模块120检测到数据的数据量大于或等于固态存储模块110的条带宽度时,控制模块130中的第一控制单元131控制相应的校验区块数据写入到固态存储模块110。
[0088]当检测到数据的数据量小于固态存储模块110的条带宽度时,控制模块130的第二控制单元132则控制相应的校验区块数据写入到备份模块140。
[0089]由此,校验区块数据散落存储在固态存储模块110或备份模块140中,当进行数据修复或重建时,难以找到相应的校验区块数据的写入位置。因此,需要设置映像方块列表,来记录校验区块数据的写入位置是否为备份模块140 (或固态存储模块110),即通过映像方块列表记录校验区块数据与校验区块数据写入位置的对应关系,以便于提高数据修复或重建的速度和准确性。
[0090]如:以固态存储模块110为固态盘,备份模块140为热备盘为例。
[0091]当检测模块120检测到数据的数据量大于或等于固态盘的条带宽度时,控制模块130中的第一控制单元131控制相应的校验区块数据写入固态盘。即此时数据及相应的校验区块数据全部存储至固态盘中,热备盘中未存储该数据相应的校验区块数据。因此,当映像方块列表中存在该校验区块数据的写入位置的记录(即该校验区块数据的写入位置为热备盘)时,将该记录删除,更新映像方块列表。
[0092]当检测模块120检测到数据的数据量小于固态盘的条带宽度时,控制模块130中的第二控制单元132控制相应的校验区块数据写入热备盘。此时,由于校验区块数据存储至热备盘中,因此,在映像方块列表中进行记录(即校验区块数据的写入位置为热备盘),以便于下次读取该数据相应的校验区块数据时更为方便快捷,提高了数据读取的速率。
[0093]当RAID中缺失任一固态存储模块110时,作为本发明提供的存储系统100的另一具体实施例,还包括修复模块,修复模块包括第一读取单元、第一判断单元、第五控制单元和第六控制单元,其中:
[0094]第一读取单元,用于修复固态存储模块110的数据时,从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系。
[0095]第一判断单元,用于根据对应关系,判断校验区块数据的写入位置。
[0096]第五控制单元,用于当校验区块数据的写入位置为备份模块140时,从备份模块140中读取校验区块数据,并根据校验区块数据修复数据。
[0097]第六控制单元,用于当校验区块数据的写入位置为固态存储模块110时,从固态存储模块110中读取校验区块数据,并根据校验区块数据修复数据。
[0098]同样以固态存储模块110为固态盘,备份模块140为
热备盘,且多个固态盘组成RAID5为例。
[0099]当RAID5中缺失其中一个固态盘时,此时当读取该缺失的固态盘中的数据时,需要根据该数据相应的校验区块数据进行数据修复。当进行数据修复时,首先通过映像方块列表读取该数据相应的校验区块数据与校验区块数据写入位置的对应关系,并根据该对应关系,对校验区块数据的写入位置进行判断。
[0100]当该校验区块数据的写入位置为热备盘时,由热备盘中读取该校验区块数据,并根据读取的校验区块数据对数据进行修复。当该校验区块数据的写入位置为固态盘时,则由固态盘中读取该校验区块数据,并根据读取的校验区块数据对要读取的数据进行修复。其有效保证了存储系统100的可靠性。
[0101]较佳的,当RAID中任一固态存储模块110出现故障时,需要进行数据重建;作为本发明提供的存储系统100的再一具体实施例,还包括重建模块,重建模块包括第二读取单元、第二判断单元、第七控制单元、第八控制单元、第一检测单元和第九控制单元,其中:
[0102]第二读取单元,用于进行RAID重建时,从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系。
[0103]第二判断单元,用于根据对应关系,判断校验区块数据的写入位置。
[0104]第七控制单元,用于当校验区块数据的写入位置为备份模块140时,从备份模块140中读取校验区块数据,并根据校验区块数据重建数据。
[0105]第八控制单元,用于当校验区块数据的写入位置为固态存储模块110时,从固态存储模块110中读取校验区块数据,并根据校验区块数据重建数据。
[0106]第一检测单元,用于根据校验区块数据重建数据时,实时检测数据重建是否完成。
[0107]第九控制单元,用于当数据重建未完成时,控制第二读取单元重新从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系。
[0108]同样以固态存储模块110为固态盘,备份模块140为热备盘,且多个固态盘组成RAID5为例。
[0109]当RAID5中任一固态盘出现故障时,需要进行数据重建,此时,同样首先通过映像方块列表读取相应的校验区块数据与校验区块数据写入位置的对应关系,并根据读取到的对应关系,对该校验区块数据的写入位置进行判断。
[0110]当该校验区块数据的写入位置为热备盘时,从热备盘中读取该校验区块数据,并根据读取的校验区块数据进行数据重建。当该校验区块数据的写入位置为固态盘时,则从固态盘中读取该校验区块数据,并根据读取的校验区块数据进行数据重建。
[0111]同时还通过第一检测单元实时检测数据重建是否完成,当数据重建未完成时,则通过第九控制单元控制第二读取单元重新从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系,并根据校验区块数据的写入位置读取校验区块数据,根据读取的校验区块数据进行数据重建,直至所有数据重建完成。其有效地保证了存储系统100的可靠性和安全性。
[0112]相应的,基于上述任一种存储系统100的存储原理,本发明还提供了一种存储系统数据保护方法,由于本发明提供的存储系统数据保护方法的原理与本发明提供的存储系统100的存储原理相同或近似,因此重复之处,不再赘述。
[0113]作为本发明提供的存储系统数据保护方法的一具体实施例,包括如下步骤:
[0114]步骤S100,当数据写入固态存储模块时,控制数据进行RAID计算,产生校验区块数据。
[0115]步骤S200,检测数据的数据量,当数据的数据量大于或等于固态存储模块的条带宽度时,执行步骤S300 ;当数据的数据量小于固态存储模块的条带宽度时,执行步骤S400。
[0116]步骤S300,控制校验区块数据写入固态存储模块。
[0117]步骤S400,控制校验区块数据写入备份模块。
[0118]在此,需要说明的是,固态存储模块可为固态盘,备份模块可为热备盘,以下实施例均以固态盘作为固态存储模块,热备盘作为备份模块,且多个固态盘组成RAID5或RAID6为例,对本发明提供的存储系统数据保护方法进行说明。
[0119]参见图2,作为本发明提供的存储系统数据保护方法的一具体实施例,在执行步骤SlOO之前,还包括步骤S001,首先检测固态盘接收到的命令信号为读取数据或写入数据;当检测到固态盘接收到的命令信号为写入数据时,执行步骤S100。当检测到固态盘接收到的命令信号为读取数据时,则执行步骤S500,由固态盘读取数据。
[0120]其中,当检测到固态盘接收到的命令信号为写入数据时,执行步骤S100,通过对写入固态盘的数据进行RAID计算,产生相应的校验区块数据。
[0121]并通过步骤S200,检测数据的数据量,当数据的数据量大于或等于固态盘的条带宽度时,执行步骤S300,控制相应的校验区块数据写入固态盘。当数据的数据量小于固态盘的条带宽度时,则执行步骤S400,控制相应的校验区块数据写入热备盘。其通过将校验区块数据的频繁写入集中到热备盘中,减少了固态盘不必要的写入,并避免了写入放大的现象,避免缩短固态盘的寿命。
[0122]较佳的,当数据的数据量大于或等于固态存储模块的条带宽度时,步骤S300,控制校验区块数据写入固态存储模块,还包括如下步骤:
[0123]步骤S310,更新映像方块列表。
[0124]当数据的数据量小于固态存储模块的条带宽度时,步骤S400,控制校验区块数据写入备份模块,还包括如下步骤:
[0125]步骤S410,在映像方块列表中存储相应记录。
[0126]其中,映像方块列表,用于记录校验区块数据与校验区块数据写入位置的对应关系O
[0127]当由固态存储模块读取数据时,如果多个固态存储模块组成的RAID中任一固态存储模块缺失,此时不能正常读取该固态存储模块中的数据,需要进行修复,作为本发明提供的存储系统数据保护方法的另一具体实施例,还包括如下步骤:
[0128]步骤S510,从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系。
[0129]步骤S520,根据对应关系,判断校验区块数据的写入位置。
[0130]步骤S530,当校验区块数据的写入位置为备份模块时,从备份模块中读取校验区块数据,并根据校验区块数据修复数据。
[0131]步骤S540,当校验区块数据的写入位置为固态存储模块时,从固态存储模块中读取校验区块数据,并根据校验区块数据修复数据。
[0132]参见图3,当固态存储模块为固态盘,备份模块为热备盘,且多个固态盘组成RAID5时,当RAID5中缺失任一固态盘,此时,不能正常读取该固态盘中的数据。因此,首先通过执行步骤S510,从映像方块列表中读取校验区块数据的写入位置的对应关系。
[0133]并通过执行步骤S520,根据对应关系,判断校验区块数据的写入位置;当判断出校验区块数据的写入位置为热备盘时,执行步骤S530,从热备盘中读取校验区块数据,并根据校验区块数据修复数据。
[0134]当校验区块数据的写入位置为固态盘时,则执行步骤S540,从固态盘中读取校验区块数据,并根据校验区块数据修复数据。其通过根据校验区块数据恢复缺失的数据,提高了存储系统的可靠性。
[0135]更优的,当由固态存储模块读取数据时,如果RAID中任一固态存储模块出现故障,同样也不能正常读取数据,需要进行数据重建,因此,作为本发明提供的存储系统数据保护方法又一具体实施例,还包括如下步骤:
[0136]步骤S510’,从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系。
[0137]步骤S520 ’,根据对应关系,判断校验区块数据的写入位置。
[0138]步骤S530’,当校验区块数据的写入位置为备份模块时,从备份模块中读取校验区块数据,并根据校验区块数据重建数据。
[0139]步骤S540’,当校验区块数据的写入位置为固态存储模块时,从固态存储模块中读取校验区块数据,并根据校验区块数据重建数据。
[0140]步骤S550’,实时检测数据重建是否完成。
[0141]步骤S560’,当数据重建未完成时,返回步骤S510’,从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系。
[0142]参见图4,同样以固态存储模块为固态盘,备份模块为热备盘,且多个固态盘组成RAID5为例,对本发明提供的存储系统数据保护方法进行说明。
[01
43]当RAID5中任一固态盘受损或出现故障时,同样不能正常读取该固态盘中的数据,因此,通过执行步骤S510’,从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系。
[0144]并执行步骤S520’,根据对应关系,判断校验区块数据的写入位置;当判断出校验区块数据的写入位置为热备盘时,执行步骤S530’,从热备盘中读取校验区块数据,并根据校验区块数据重建数据。当校验区块数据的写入位置为固态盘时,则执行步骤S540’,从固态盘中读取校验区块数据,并根据校验区块数据重建数据。
[0145]同时,通过执行步骤S550’,实时检测数据重建是否完成;当数据重建未完成时,返回步骤S510’,从映像方块列表中读取校验区块数据与校验区块数据写入位置的对应关系,直至数据重建完成,保证了数据的准确性,提高了数据存储的可靠性。
[0146]本发明提供的存储系统数据保护方法,通过对写入固态存储模块的数据进行RAID计算,产生校验区块数据;并根据写入固态存储模块的数据的数据量,控制数据及其相应的校验区块数据散落存储至固态存储模块和备份模块,使得校验区块数据的写入集中到备份模块中,从而避免了固态存储模块数据的频繁写入,降低了固态存储模块不必要的损耗,避免缩短固态存储模块的寿命。
[0147]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种存储系统,其特征在于,包括多个固态存储模块、检测模块、控制模块和备份模块,其中: 所述多个固态存储模块组成RAID,用于数据写入所述固态存储模块时,对所述数据进行RAID计算,产生校验区块数据; 所述检测模块,用于检测所述数据的数据量; 所述控制模块包括第一控制单元和第二控制单元,其中: 所述第一控制单元,用于当所述数据的数据量大于或等于所述固态存储模块的条带宽度时,控制所述校验区块数据写入所述固态存储模块; 所述第二控制单元,用于当所述数据的数据量小于所述条带宽度时,控制所述校验区块数据写入所述备份模块。2.根据权利要求1所述的存储系统,其特征在于,所述控制模块还包括第三控制单元和第四控制单元,其中: 当所述第一控制单元控制所述校验区块数据写入所述固态存储模块时,所述第三控制单元用于更新映像方块列表; 当所述第二控制单元控制所述校验区块数据写入所述备份模块时,所述第四控制单元用于在所述映像方块列表中存储相应记录; 其中,所述映像方块列表用于记录所述校验区块数据与所述校验区块数据写入位置的对应关系。3.根据权利要求2所述的存储系统,其特征在于,还包括修复模块,所述修复模块包括第一读取单元、第一判断单元、第五控制单元和第六控制单元,其中: 所述第一读取单元,用于修复所述固态存储模块的所述数据时,从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系; 所述第一判断单元,用于根据所述对应关系,判断所述校验区块数据的写入位置; 所述第五控制单元,用于当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据; 所述第六控制单元,用于当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据。4.根据权利要求2所述的存储系统,其特征在于,还包括重建模块,所述重建模块包括第二读取单元、第二判断单元、第七控制单元、第八控制单元、第一检测单元和第九控制单元,其中: 所述第二读取单元,用于进行RAID重建时,从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系; 所述第二判断单元,用于根据所述对应关系,判断所述校验区块数据的写入位置; 所述第七控制单元,用于当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据; 所述第八控制单元,用于当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据;所述第一检测单元,用于根据所述校验区块数据重建所述数据时,实时检测所述数据重建是否完成; 所述第九控制单元,用于当所述数据重建未完成时,控制所述第二读取单元重新从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系。5.根据权利要求1至4任一项所述的存储系统,其特征在于,所述固态存储模块为固态盘,所述备份模块为热备盘。6.根据权利要求5所述的存储系统,其特征在于,所述热备盘为磁盘、所述固态盘、企业级SLC固态盘、或外接式存储装置。7.根据权利要求5所述的存储系统,其特征在于,所述条带宽度为所述固态存储模块中块的整数倍。8.根据权利要求1至4任一项所述的存储系统,其特征在于,所述RAID的类型为RAID5或 RAID6。9.根据权利要求8所述的存储系统,其特征在于,所述多个固态存储模块组成所述RAID5时,所述备份模块的个数为I个; 所述多个固态存储模块组成所述RAID6时,所述备份模块的个数为2个。10.一种存储系统数据保护方法,其特征在于,包括如下步骤: 当数据写入固态存储模块时,控制所述数据进行RAID计算,产生校验区块数据; 检测所述数据的数据量; 当所述数据的数据量大于或等于所述固态存储模块的条带宽度时,控制所述校验区块数据写入所述固态存储模块; 当所述数据的数据量小于所述条带宽度时,控制所述校验区块数据写入备份模块。11.根据权利要求10所述的存储系统数据保护方法,其特征在于,所述当所述数据的数据量大于或等于所述固态存储模块的条带宽度时,还包括如下步骤: 更新映像方块列表; 所述当所述数据的数据量小于所述条带宽度时,还包括如下步骤: 在所述映像方块列表中存储相应记录; 其中,所述映像方块列表,用于记录所述校验区块数据与所述校验区块数据写入位置的对应关系。12.根据权利要求11所述的存储系统数据保护方法,其特征在于,还包括数据修复步骤,所述数据修复步骤包括如下步骤: 从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系; 根据所述对应关系,判断所述校验区块数据的写入位置; 当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据; 当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据修复所述数据。13.根据权利要求11所述的存储系统数据保护方法,其特征在于,还包括数据重建步骤,所述数据重建步骤包括如下步骤: 从所述映像方块列表中读取所述校验区块数据与所述校验区块数据写入位置的所述对应关系; 根据所述对应关系,判断所述校验区块数据的写入位置; 当所述校验区块数据的写入位置为所述备份模块时,从所述备份模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据; 当所述校验区块数据的写入位置为所述固态存储模块时,从所述固态存储模块中读取所述校验区块数据,并根据所述校验区块数据重建所述数据; 实时检测所述数据重建是否完成; 当所述数据重建未完成时,返回所述从所述映像方块列表中读取所述校验区块数据的写入位置的所述对应关系步骤。
【专利摘要】本发明公开了一种存储系统及其数据保护方法,其中,存储系统包括多个固态存储模块、检测模块、控制模块和备份模块,其中:多个固态存储模块组成RAID,用于数据写入固态存储模块时,对数据进行RAID计算,产生校验区块数据;检测模块,用于检测数据的数据量;控制模块包括第一控制单元和第二控制单元,其中:第一控制单元,用于当数据的数据量大于或等于固态存储模块的条带宽度时,控制校验区块数据写入固态存储模块;第二控制单元,用于当数据的数据量小于条带宽度时,控制校验区块数据写入备份模块。其通过增加备份模块,将校验区块数据的频繁写入集中到备份模块,减少了固态存储模块不必要的损耗,维持了固态存储模块的寿命。
【IPC分类】G06F11/14, G06F3/06
【公开号】CN104881244
【申请号】CN201410234936
【发明人】陈杰
【申请人】陈杰
【公开日】2015年9月2日
【申请日】2014年5月28日
转载请注明原文地址:https://www.famiwei.com/read-8138828.html