数据保护方法、数据保护装置以及固态硬盘存储系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种数据保护方法、数据保护装置以及固态硬盘存储系统。
【背景技术】
[0002]固态硬盘(Solid State Drives,简称SSD),是用固态电子存储芯片阵列而制成的硬盘。固态硬盘可以使用与非门闪存(NAND flash)来实现。与非门闪存是一种非易失性存储介质,其特点是断电后数据不消失。目前,企业级的固态硬盘大多采用这种固态硬盘。
[0003]闪存转换层(Flash Translat1n Layer,简称FTL),作为Flash文件系统数据管理器(Flash Translat1n Layer),是一个与非门闪存芯片与基础文件系统之间的一个转换层,它使操作系统和文件系统能够像访问硬盘一样访问与非门闪存设备。
[0004]现有的对企业级数据的保护方法一般有两种,第一种方法是将传统的在机械磁盘上的磁盘阵列(Redundant Arrays of independent Disks, RAID)技术(例如 RAID5)直接应用到固态硬盘上实现数据保护,第二种方法是基于Raise(Redundant Array ofIndependent Silicon Element,独立的娃元素的冗余阵列)技术的数据保护。
[0005]在第一种方法中,针对企业级的固态硬盘,一般采用页映射的方式,以页为单位生成一个条带,当有新的数据写入的时候,把条带的其他页的数据读出来,在内存中直接生成新的校验数据然后写入到校验页。该方案虽然能够在一定程度上实现对数据的保护,但是带来了两个问题,第一个问题是,每次有数据更新的时候都要更新校验数据,写放大问题会比较严重,降低了固态硬盘的寿命,第二个问题是,校验块都被固定在相同的物理块,校验块更新比较频繁,校验块容易损坏。因此该方案在实际产品中应用较少。
[0006]在第二种方法中,通过改进型的RAID5应用,将第一种方法中的校验位的固定的物理块通过闪存转换层均匀分布到整个固态硬盘,避免了对校验块的过于频繁的修改,但是,这种方法仍然没有解决写放大的问题。
【发明内容】
[0007]有鉴于此,本发明提供一种能够解决写放大问题的数据保护方法以及固态硬盘存储系统。
[0008]本发明一实施例提出一种数据保护方法,应用于固态硬盘存储系统,所述固态硬盘存储系统包括闪存转换层、易失性存储器以及非易失性存储器,所述闪存转换层包括条带化的逻辑块层,每个条带中包括至少两个数据块以及一个校验块。所述方法可以包括:在所述易失性存储器中创建校验数据存储区,用于存储与所述校验块对应的校验数据;当所述条带中的数据块所对应的数据发生更新时,根据更新后的数据,计算新的校验数据,将所述新的校验数据存储在所述易失性存储器的校验数据存储区;当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。
[0009]本发明另一实施例提出一种数据保护装置,用于固态硬盘存储系统中对数据进行保护,所述固态硬盘存储系统还包括闪存转换层、易失性存储器以及非易失性存储器,所述闪存转换层包括条带化的逻辑块层,每个条带中包括至少两个数据块以及一个校验块。所述装置可以包括:存储区创建模块,用于在所述易失性存储器中创建校验数据存储区,用于存储与所述校验块对应的校验数据;数据保护模块,用于当所述条带中的数据块所对应的数据发生更新时,根据更新后的数据,计算新的校验数据,将所述新的校验数据存储在所述易失性存储器的校验数据存储区;数据写入模块,用于当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。
[0010]本发明又一实施例提供一种固态硬盘存储系统,所述固态硬盘存储系统包括闪存转换层、易失性存储器以及非易失性存储器。所述闪存转换层包括条带化的逻辑块层,每个条带中包括至少两个数据块以及一个校验块。所述系统还包括数据保护装置,所述数据保护装置可以包括:存储区创建模块,用于在所述易失性存储器中创建校验数据存储区,用于存储与所述校验块对应的校验数据;数据保护模块,用于当所述条带中的数据块所对应的数据发生更新时,根据更新后的数据,计算新的校验数据,将所述新的校验数据存储在所述易失性存储器的校验数据存储区;数据写入模块,用于当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。
[0011]相对于现有技术,本发明实施例提供的数据保护方法以及数据保护装置将新的校验数据存储在易失性存储器的校验数据存储区,并设置适当的预定数目,当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,才将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。相对于现有技术中每个逻辑块被修改都要生成校验块相比,可以大大减少对校验数据的修改,避免了对校验数据的频繁改写,从而在很大程度上可以解决现有技术中的写放大问题,提高整个固态硬盘的使用寿命,同时将校验数据缓存在校验数据存储区内,保证数据的安全性。
[0012]为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
【附图说明】
[0013]图1为本发明实施例所提供的数据保护方法以及数据保护装置所运用的存储系统的系统架构图。
[0014]图2为本发明第一实施例提供的数据保护方法的流程图。
[0015]图3为本发明第二实施例提供的数据保护方法的流程图。
[0016]图4A及图4B为本发明第二实施例中进行数据恢复时的数据保护方法的示意图。
[0017]图5为本发明第三实施例提供的固态存储系统的结构框图。
[0018]图6为本发明第四实施例提供的数据保护装置的结构框图。
[0019]图7为图6中部分模块的结构框图。
【具体实施方式】
[0020]基于与非门闪存的结构特点,在对固态硬盘进行读、写、擦除操作时都有一些基本属性,例如包括:读取以页大小对齐、写入以页大小对齐、页不能被复写、擦除以块对齐等。这些属性所带来的最大的问题是写放大,具体来讲,在进行数据读取时,一次读取不能少于一页的内容,虽然系统可以只请求一个字节,但是固态硬盘会访问整个页,强制读取远超所需的数据。在进行数据写入时,写入的增量也是页大小。因此即使一个写入操作只影响到一个字节,无论如何整个页都会写入,而一页的大小在某些型号的固态硬盘中可能达到16KB。写入比所需更多的数据的行为被称为写放大。
[0021]本发明提出的技术方案主要是解决现有技术中写放大过高的问题。其主要思路在于,将闪存转换层的逻辑块层进行条带化,每个条带中包括至少两个数据块以及一个校验块。同时在固态硬盘存储系统中的易失性存储器中创建校验数据存储区,用于存储与所述校验块对应的校验数据。当所述条带中的数据块所对应的数据发生更新时,根据更新后的数据,计算新的校验数据,将所述新的校验数据存储在所述易失性存储器的校验数据存储区;当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。相对于现有技术中每个逻辑块被修改都要生成校验块相比,可以大大减少对校验数据的修改,避免了对校验数据的频繁改写,从而在很大程度上可以解决现有技术中的写放大问题,提高整个固态硬盘的使用寿命,同时将校验数据缓存在校验数据存储区内,保证数据的安全性。