CN108038026B - 一种基于闪存的数据快速恢复方法与系统 - Google Patents
一种基于闪存的数据快速恢复方法与系统 Download PDFInfo
- Publication number
- CN108038026B CN108038026B CN201711144794.9A CN201711144794A CN108038026B CN 108038026 B CN108038026 B CN 108038026B CN 201711144794 A CN201711144794 A CN 201711144794A CN 108038026 B CN108038026 B CN 108038026B
- Authority
- CN
- China
- Prior art keywords
- data
- recovered
- block
- flash
- flash memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
Abstract
本发明公开了一种基于闪存的数据快速恢复方法与系统,利用闪存数据非原位更新的特点,通过在基于闪存的存储设备中进行元数据备份、修改地址映射与垃圾回收等机制实现快速的数据恢复。在需恢复数据准备阶段,用户向基于闪存的存储设备中正常写入数据,在闪存转换层接收到来自上层系统的存储命令后,对需恢复数据的相关元数据进行备份。在需恢复数据修改阶段,合法或非合法用户对数据进行增删改操作,通过修改闪存转换层中的地址映射、垃圾回收机制保证需恢复数据的完整性。在需恢复数据恢复阶段,闪存转换层接收到来自上层系统的恢复命令,通过恢复需恢复数据的元数据来恢复需要恢复的数据。
Description
技术领域
本发明涉及数据恢复技术,特别涉及一种基于闪存的数据快速恢复方法与系统。
背景技术
闪存是一种非易失性存储器(Non-volatile Memory),基于闪存的固态存储设备又可分为NOR型闪存和NAND型闪存。这二者具有不同的特点和用途:Nor Flash是1983年由Intel公司推出,容量小,成本较高,随机存取速度快,用于存储可执行代码和少量数据;Nand Flash由东芝公司于1989年设计推出,适合大块数据的连续传输与存储。Nand Flash由于其体积小、容量大、质量轻,抗震性强、噪声小、耐高温、低功耗等优点再许多电子产品中得到广泛应用。智能手机、数码相机、GPS导航仪、音频录音机等电子消费产品中使用的SD卡,U盘,固态硬盘(Solid State Disk,SSD),均以Nand Flash作为非易失存储器。基于闪存的块设备(例如,eMMC卡、SD卡、microSD卡和SSD硬盘)由于其高I/O性能和低能耗的特点已被广泛用来代替传统的硬盘驱动器(HDD)。特别是,像eMMC卡和SD卡等闪存设备已经占据了移动设备(如智能手机,平板电脑,智能手表)存储介质的主流市场。
为了缩短存取时间,提高单位面积中存储单元的存储密度,NAND Flash并不是对每个单元进行单独的存取操作,而是对一定数量的存取单元集体操作。NAND Flash将各个存储单元组织成为阵列的形式。NAND Flash中相邻的多个页的存储单元组成块。闪存的读写操作的基本单位是页,而页的大小一般为4KB或8KB,擦除的基本单位是块。不同于传统的硬盘驱动器(HDD),闪存对存储单元执行编程操作之前,必须先进行擦除操作。基于以上特性,闪存执行非原位数据更新机制。闪存的非原位数据更新指在闪存中对数据进行复写是并不是直接将原数据删除然后写入,而是先将原数据标记为无效,再将新的数据写入新的页中,执行垃圾回收机制时才会将被标记为无效的内存中的陈旧数据彻底删除。
另外,闪存块的擦写次数是有限的,使用均衡算法的加入可以大幅增加NAND闪存芯片的寿命,它监控页面的写入与擦除次数,让每个页面的写入与擦除次数保持均衡。
闪存转换层是一个NAND闪存芯片与基础文件系统之间的一个转换层,它使操作系统和文件系统能够像访问硬盘一样访问NAND闪存设备。闪存转换层通过屏蔽闪存特殊的物理性质,将基于闪存的存储设备模拟为普通的块存储设备,向上层提供普通的块设备接口。
闪存转换层的主要功能包括:地址映射、垃圾回收、使用均衡、坏块管理。NANDFlash具有非原位更新和数据擦写次数有限的物理特性,需要均衡地对NAND Flash的各个块进行使用,并对生产及使用过程中所造成的坏块进行管理。因此,上层系统不能直接对NAND Flash的物理地址进行读写操作,而需要对NAND Flash的物理地址进行映射,将上层系统逻辑地址动态地映射到某个NAND Flash上的物理地址。根据地址映射颗粒度不同,闪存转换层的地址映射策略分为页级映射,块级映射和混合映射。修改闪存转换层是可行的,由于其位于操作系统和裸闪存存储器件之间,其对操作系统是透明的。
发明内容
本发明提供了一种基于闪存的数据快速恢复方法与系统,结合闪存设备独特的存储特性,实现合法或非法用户操作硬盘后数据的快速恢复。
为实现上述目的,本发明提供了一种基于闪存的数据快速恢复方法,为了快速恢复闪存中的数据,本发明利用非原位更新的优势,闪存的这个特点保证了合法或非法用户不能通过复写数据块来彻底替换其原始数据,这些数据块之后可以用于恢复原数据。另外,为了避免需恢复数据会被垃圾回收机制和使用均衡机制破坏,本发明简单修改了闪存转换层中的垃圾回收机制和使用均衡机制,使其满足我们的期望。将系统执行过程具体分为以下三个阶段,包括:
阶段一:需恢复数据准备阶段
用户向基于闪存的存储设备中正常写入数据,在闪存转换层接收到来自上层系统的存储命令之后,首先,触发垃圾回收机制,回收闪存中无效数据所占据的存储空间,实现需恢复数据的紧凑存储。其次,闪存转换层对需恢复数据的相关元数据进行备份。
阶段二:需恢复数据修改阶段
在需恢复数据及其元数据准备完毕之后,进入数据修改阶段。合法或非法用户可对需恢复数据进行增删改操作,通过修改闪存转换层中的块分配策略、垃圾回收机制保证需恢复数据的完整性。
阶段三:需恢复数据恢复阶段
闪存转换层接收到来自上层系统的恢复命令,通过恢复备份的元数据,恢复需要恢复的数据。
进一步,所述阶段一的垃圾回收机制具体包括:
当闪存转换层接收到操作系统的命令后,会触发垃圾回收机制,将含有无效页的块标记为目标块,将目标块中的有效数据复制到空闲块中,同时更新相应的地址映射表,最后将目标块擦除。
同时,所述阶段一的数据备份具体包括:
闪存转换层会对重要元数据做有效备份,包括地址映射表、块擦除次数表等,相比于已存储的数据,元数据的数据量通常更小,将备份的元数据保存到系统保留块,保证存储备份元数据的物理块不会被上层映射,从而保证备份元数据不会被覆盖,保证备份元数据的完整性。其他一些已存储的块如使用均衡和坏块管理等,这些块中包含的元数据备份对上层系统是不可见的。元数据备份完成后,闪存就可以接收I/O请求了。
进一步,所述阶段二中的块分配策略包括:
本发明通过修改块分配策略,将新写入数据分配到未使用块中。利用闪存非原位更新的特性,将更新后的需恢复数据写入到未使用块中,改变对应地址映射关系,保证存有需恢复数据及备份元数据的物理块不会被分配、修改。
进一步,具体的读操作包括:
闪存转换层通过规范闪存操作来保证块中保存的原始数据的完整性。同一页中所有存储单元的控制栅极相连构成字线,字线平时保持合适的电平状态,使得晶体管处于导通状态。当需要对存储单元进行读取操作时,NAND Flash在目标存储单元所在页的字线上加低电压,电势置为0,而将其他页的字线上的电压升高到一个值,电势较高,而这个高值又不至于使得电子击穿隧道氧化层进入控制栅极。控制栅极在读取数据的过程中施加的电压较小或根本不施加电压,不足以改变浮置栅极中原有的电荷量,所以,读数据的操作不会改变存储单元中的数据。一次读操作几乎不影响闪存的完整性。
同时,具体的写操作包括:
将待写入数据的存储单元所在页的字线电压提高到一定程度(20V左右),而不写入数据的页的字线保持低电压(10V左右)。如果遇到待写入某个存储单元的数据位恰好为1的时候,那么对应这个存储单元的电路不做任何动作,其结果依然是1;如果遇到待写入某个存储单元的数据位为0的时候,则电路将对应存储单元的字线电压提高到足以让电子穿过绝缘体的高度,这个电压被加到控制栅极上,从而对存储单元中的浮置栅极进行充电,充电之后存储单元的状态从1变为0,完成了写入,这个写“0”的过程即实现了写操作。闪存转换层采用非原位更新机制来处理写操作,当一个空闲页被分配,闪存转换层保证包含需恢复数据或备份元数据的页永远不会被真正删除。
同时,阶段二的垃圾回收机制包括:
随着基于NAND Flash存储设备的运行,数据非原位更新的特点造成NAND Flash中无效数据越来越多,为保证存储数据过程中的写入速度,需要对无效数据所占据的空间进行回收,保证有足够多的空闲块,从而在写入数据时进行分配。清除无效数据块重新获得空闲块的过程称为垃圾回收。如前所述,闪存转换层的非原位更新机制意味着每次写操作会在一个新的页中进行,因此,垃圾回收机制对陈旧数据的移除至关重要。为保证需恢复数据被完好无损的保存,本方法中闪存转换层修改垃圾回收机制,保证垃圾回收执行过程中存有需恢复数据及备份元数据的块永远不会被标记为目标块,即保证被修改的需恢复数据及备份元数据所在的物理块不可被物理擦除。
进一步,由于在垃圾回收过程中闪存转换层不会修改存储需恢复数据的块,这些数据块的擦写次数一直不会增加,最终会在存储需恢复数据的块和其他块中出现非均匀的擦写次数。为了延长闪存的使用寿命,闪存转换层修改使用均衡机制,当发现存储需恢复数据的物理块的擦除次数小于某一阈值,则将其中的需恢复数据拷贝到一个擦写次数较大的空闲块中,改变地址映射关系,同时更新备份的地址映射表,并将擦除次数较小的物理块进行擦除,用于后续的块分配。
进一步,使用均衡机制包括:
1)每当一个空闲块分配给数据写入,使用均衡检查便开始执行。
2)如果块的擦写循环(以A表示)高于所有块的平均擦写循环次数,则根据选择的阈值执行使用均衡机制。
3)执行使用均衡机制时,闪存转换层选择最小的块(即最小擦写周期的块,记为Y)作为将数据写入的新块。
4)如果Y包括需恢复数据,闪存转换层复制需恢复数据到预先分配的块中(例如a),擦除块Y中的数据,并将Y作为最终数据写入的块。此外,地址映射表和其他元数据也相应更新。
进一步,所述阶段三包括:
本发明利用闪存块设备非原位数据更新的特点,即新数据的写入总是会写入新的空间中,而被复写的陈旧数据会一直保留直到触发垃圾回收机制将其删除。因此本发明通过只备份一小部分元数据而非所有数据实现快速数据恢复。首先闪存转换层会接受到来自上层系统的恢复命令,收到命令后,闪存转换层利用备份的元数据代替当前的元数据,进而通过备份的元数据中地址映射表索引到需恢复数据所在的物理块,从而使得基于闪存的存储设备可以直接快速地恢复需恢复数据。在此过程中必须保证存储备份元数据的块没有被修改。
本发明还提供一种基于闪存的数据快速恢复系统,包括:
需恢复数据准备单元,用于使用户向基于闪存的存储设备中正常写入数据,在闪存转换层接收到来自上层系统的存储命令之后,触发垃圾回收机制,回收闪存中无效数据所占据的存储空间,实现需恢复数据的紧凑存储,然后由闪存转换层对需恢复数据的相关元数据进行备份;
需恢复数据修改单元,用于在合法或非法用户对需恢复数据进行增删改操作的过程中,通过修改闪存转换层中的块分配策略、垃圾回收机制保证需恢复数据的完整性;
需恢复数据恢复单元,用于在闪存转换层接收到来自上层系统的恢复命令后,通过恢复备份的元数据,恢复需要恢复的数据。
进一步,所述需恢复数据修改单元通过修改块分配策略,将新写入数据分配到空闲块中,并利用闪存非原位更新的特性,将更新后的需恢复数据写入到空闲块中,改变对应地址映射关系,保证存有需恢复数据及备份元数据的物理块不会被分配、修改;所述需恢复数据修改单元通过修改垃圾回收机制,保证垃圾回收执行过程中存有需恢复数据的块永远不会被标记为目标块,即保证被修改的需恢复数据所在的物理块不可被擦除;所述需恢复数据修改单元修改使用均衡机制,当发现存储需恢复数据的块的擦写次数小于某一阈值,则将其中的需恢复数据拷贝到一个擦写次数较大的空闲块中,改变地址映射关系,同时更新备份的地址映射表,并将擦除次数较小的物理块进行擦除,用于后续的块分配。
本发明还提供一种基于闪存的存储设备,包括闪存转换层;在恢复数据准备阶段,所述闪存转换层接收到来自上层系统的存储命令之后,触发垃圾回收机制,回收闪存中无效数据所占据的存储空间,实现需恢复数据的紧凑存储,然后所述闪存转换层对重要的元数据进行备份;在恢复数据修改阶段,在合法或非法用户对需恢复数据进行增删改操作的过程中,所述闪存转换层通过修改中的块分配策略、垃圾回收机制保证需恢复数据的完整性;在恢复数据恢复阶段,所述闪存转换层接收到来自上层系统的恢复命令后,通过恢复备份的元数据,恢复需要恢复的数据。
本发明公开了一种基于闪存的数据快速恢复方法与系统,利用闪存非原位更新的特点,通过对硬盘进行元数据备份、修改垃圾回收机制等实现快速的数据恢复。修改闪存转换层是可行且易于实现的,本发明在很多场合都适用且高效。
附图说明
图1为本发明一种基于闪存的数据快速恢复方法的流程示意图;
图2为本发明一种基于闪存的块设备的闪存转换层结构图;
图3为本发明一种需恢复数据准备阶段的流程示意图;
图4为本发明一种闪存非原位数据更新的示意图;
图5为本发明一种使用均衡策略的流程示意图;
图6为本发明一种需恢复数据恢复阶段的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
如图1所示,本实施例提供了一种基于闪存的数据快速恢复方法与系统。
本实例使用OpenNFM实现了一个系统原型。OpenNFM是一个开源的NAND闪存控制器框架,是由三层组成的体系结构。最高层主要处理从上层和物理页地址到原始闪存之间的逻辑页地址之间的映射,基于闪存的存储设备可以提供文件系统的统一块设备接口。中间层主要负责使用均衡和坏块管理。最低层提供了一个原始的闪存抽象,屏蔽了NAND Flash的特殊物理性质。将本系统移植到lpc-h3131,一个配备了180MHz ARM微控制器,512MBNAND闪存和32MB SDRAM的开发板。闪存的块大小为128KB,页大小为2KB,因此整个NAND闪存有4,096个擦除块,每个块由64个页组成。每个映射条目可以用3个字节表示,因此映射表占用6个块。
阶段一:需恢复数据准备阶段
闪存转换层的结构如图2所示,其主要功能是负责将基于NAND Flash的存储设备模拟为普通的块存储设备(如机械磁盘),通过闪存转换层的转换功能,屏蔽了NAND Flash的特殊物理性质,向上层提供普通的块设备接口,从而可利用普通的块设备驱动接口和块文件系统访问存储设备。如图3所示,在这个阶段,用户向存储设备中正常写入数据,上层系统发出存储命令,本例中采用SCSI命令,使用操作代码0x61H通知系统开始执行存储操作,闪存转换层在接收到存储命令之后,执行以下步骤来备份需恢复数据。
如图3所示,首先,当闪存转换层接收到操作系统的命令后,将触发垃圾回收机制,回收闪存中无效数据所占据的存储空间,将含有无效页的块标记为目标块,将目标块中的有效数据复制到空闲块中,同时更新相应的地址映射表,最后将目标块擦除。用户的数据可以以一种紧凑的方式存储。
其次,闪存转换层会对重要元数据做有效备份,包括地址映射表、块擦除次数表等,相比于已存储的数据,元数据的数据量通常更小,将备份的元数据保存到系统保留块,保证存储备份元数据的物理块不会被上层映射,从而保证备份元数据不会被覆盖,保证备份元数据的完整性。其他一些已存储的块如使用均衡和坏块管理等,这些块中包含的元数据备份对上层系统是不可见的。元数据备份完成后,闪存就可以接收I/O请求了。
阶段二:需恢复数据修改阶段
合法或非法用户操作硬盘的过程中,闪存转换层调整闪存操作以保护闪存块中需恢复数据的完整性,包括读操作,写操作,地址映射,垃圾回收,使用均衡。
本系统通过修改块分配策略,将新写入数据分配到空闲块中。利用闪存非原位更新的特性,将更新后的需恢复数据写入到空闲块中,改变对应地址映射关系,保证存有需恢复数据及备份元数据的物理块不会被分配、修改。
为了弄清楚这些策略如何影响flash的性能,我们使用AndroBench存储基准来度量默认的OpenNFM和BoltFTL的性能。
我们为序列和随机访问设置了缓冲区大小,分别为32768KB和4KB(默认值)
读操作包括:
闪存转换层通过规范闪存操作来保证块中保存的原始数据的完整性。同一页中所有存储单元的控制栅极相连构成字线,字线平时保持合适的电平状态,使得晶体管处于导通状态。当需要对存储单元进行读取操作时,NAND Flash在目标存储单元所在页的字线上加低电压,电势置为0,而将其他页的字线上的电压升高到一个值,电势较高,而这个高值又不至于使得电子击穿隧道氧化层进入控制栅极。控制栅极在读取数据的过程中施加的电压较小或根本不施加电压,不足以改变浮置栅极中原有的电荷量,所以,读数据的操作不会改变存储单元中的数据。在本例中的测量,本系统和默认Open NFM读数据吞吐量几乎一致,一次读操作几乎不影响闪存的完整性。
写操作包括:
将待写入数据的存储单元所在页的字线电压提高到一定程度(20V左右),而不写入数据的页的字线保持低电压(10V左右)。如果遇到待写入某个存储单元的数据位恰好为1的时候,那么对应这个存储单元的电路不做任何动作,其结果依然是1;如果遇到待写入某个存储单元的数据位为0的时候,则电路将对应存储单元的字线电压提高到足以让电子穿过绝缘体的高度,这个电压被加到控制栅极上,从而对存储单元中的浮置栅极进行充电,充电之后存储单元的状态从1变为0,完成了写入,这个写“0”的过程即实现了写操作。闪存转换层采用非原位更新机制来处理写操作,当一个空闲页被分配,闪存转换层保证包含需恢复数据或备份元数据的页永远不会被真正删除。写数据的吞吐量比默认Open NFM低约2%。
垃圾回收机制包括:
随着基于NAND Flash存储设备的运行,数据非原位更行的特点造成NAND Flash中无效数据越来越多,为保证存储数据过程中的写入速度,需要对无效数据所占据的空间进行回收,保证有足够多的空闲块,从而在写入数据时进行分配。清除无效数据块重新获得空闲块的过程称为垃圾回收。
如前所述,闪存转换层的非原位更新机制意味着每次写操作会在一个新的页中进行,图4表示非原位更新的过程,由图可知新写入的数据B写入一个新的物理页,并将原数据A标记为无效。
为保证需恢复数据被完好无损的保存,本方法中闪存转换层修改垃圾回收机制以保证存有需恢复数据及备份元数据的块永远不会被标记为目标块。如前所述,闪存转换层的非原位更新机制意味着每次写操作会在一个新的页中进行,因此,垃圾回收机制对陈旧数据的移除至关重要。垃圾回收的一般执行过程时,当可用空闲块的数量低于某个阈值时,触发垃圾回收机制,选择回收的目标块,将目标块中的有效页数据进行复制,并与相关数据块进行合并操作,然后擦除目标块。一个逻辑块可能对应多个物理块,因此垃圾回收时可能同时会擦除多个物理块。为保证需恢复数据被完好无损的保存,本方法中闪存转换层修改垃圾回收机制以保证存有需恢复数据及备份元数据的块永远不会被标记为目标块。
使用均衡机制包括:
使用均衡,又称为损耗均衡,目的是均匀地将数据存储在每一个数据块中,最大限度的利用各个块有限的擦写寿命,从而延长闪存的使用寿命的一种管理策略。闪存转换层会通过使用均衡机制保证各个块均衡的擦写循环。
假设系统中共有100个块,其中数据块有80个,另外20个块作为替换块,因此对用户来说,存储器只有80个块,如果系统中可用的块少于80个,则此存储器就已经达到使用寿命。如果每个块的擦除寿命是一万次,并且其中21个块由于过于频繁地使用而过早达到擦写次数上限,即一万次,那么这25个块就会被标记为无效块而禁止被使用,而此时即便另外75个块才刚刚被擦写一次,系统也仍然达到了使用寿命。如果存储器件设计了一个好的均衡策略,使系统中100个块同时达到使用寿命,则整个存储器系统的寿命达到最长,因此一个好的均衡策略直接影响到存储器的使用寿命。
对于使用均衡算法,固态存储器中的块单元主要有两种类型:即空闲块与数据块。数据块是存储器的主要存储部分,并且受到数据存储器和使用均衡算法的影响。空闲块的数量在整个存储系统中约占百分之二十(假如一个系统有128GB的物理存储空间,数据块占100GB,空闲块占28GB左右),主要用于缓冲损耗均衡算法和隐藏NAND Flash的写入之前先擦除的特性。这样就意味着固态存储器中的块会根据相应的损耗均衡策略在空闲块池与数据块池之间相互转换。
进一步,由于本系统在垃圾回收过程中闪存转换层不会修改存储需恢复数据的块,这些数据块的擦写次数一直不会增加,最终会在存储需恢复数据的块和其他块中出现非均匀的擦写次数。为了延长闪存的使用寿命,闪存转换层修改使用均衡机制,当发现存储需恢复数据的物理块的擦除次数小于某一阈值,则将其中的需恢复数据拷贝到一个擦写次数较大的空闲块中,改变地址映射关系,同时更新备份的地址映射表,并将擦除次数较小的物理块进行擦除,用于后续的块分配。
进一步,如图5所示,使用均衡策略包括:
1)每当一个空闲块分配给数据写入,使用均衡检查便开始执行。
2)如果块的擦写循环(以A表示)高于所有块的平均擦写循环次数,则根据选择的阈值执行使用均衡机制。
3)执行使用均衡时,闪存转换层选择最小的块(即最小擦写周期的块,记为Y)作为将数据写入的新块。
4)如果Y包括需恢复数据,闪存转换层复制需恢复数据到预先分配的块中(例如a),擦除块Y中的数据,并将Y作为最终数据写入的块。此外,地址映射表和其他元数据也相应更新。
阶段三:需恢复数据恢复阶段
如图6所示,本阶段上层系统层发送恢复命令给闪存转换层以从闪存恢复数据。本例中使用SCSI命令与操作代码0x62H通知系统开始执行恢复操作,收到此命令后,闪存转换层丢弃旧的元数据并通过保存的地址映射表激活备份元数据。在lpc-h3131的评估中,这大约需要0.43秒。
本系统利用闪存块设备非原位数据更新的特点,即新数据的写入总是会写入新的空间中,而被复写的陈旧数据会一直保留直到触发垃圾回收机制将其删除。因此本系统通过只备份一小部分元数据而非所有数据实现快速数据恢复。首先闪存转换层会接受到来自操作系统的恢复命令,收到命令后,闪存转换层会利用备份的元数据备份代替当前的元数据,进而通过备份的元数据中地址映射表找到索引到需恢复数据所在的物理块,从而使得基于闪存的存储设备可直接快速地恢复需恢复数据,同时必须保证存储备份元数据的块没有被修改。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种基于闪存的数据快速恢复方法,其特征在于,包括以下步骤:
1)用户向基于闪存的存储设备中正常写入数据,在闪存转换层接收到来自上层系统的存储命令之后,触发垃圾回收机制,回收闪存中无效数据所占据的存储空间,实现需恢复数据的紧凑存储,然后闪存转换层对需恢复数据的相关元数据进行备份;
2)在合法或非法用户对需恢复数据进行增删改操作的过程中,通过修改闪存转换层中的块分配策略、垃圾回收机制保证需恢复数据的完整性;
3)闪存转换层接收到来自上层系统的恢复命令,通过恢复备份的元数据,恢复需要恢复的数据;
其中,步骤2)通过修改块分配策略,将新写入数据分配到空闲块中,并利用闪存非原位更新的特性,将更新后的需恢复数据写入到空闲块中,改变对应地址映射关系,保证存有需恢复数据及备份元数据的物理块不会被分配、修改;
其中,步骤2)通过修改垃圾回收机制,保证垃圾回收执行过程中存有需恢复数据及备份元数据的块永远不会被标记为目标块,即保证需恢复数据及备份元数据所在的物理块不可被物理擦除;
为了延长闪存的使用寿命,闪存转换层修改使用均衡机制:当发现存储需恢复数据的物理块的擦除次数小于某一阈值,则将其中的需恢复数据拷贝到一个擦写次数较大的空闲块中,改变地址映射关系,同时更新备份的地址映射表,并将擦除次数较小的物理块进行擦除,用于后续的块分配。
2.根据权利要求1所述的方法,其特征在于,步骤1)所述垃圾回收机制将含有无效页的块标记为目标块,将目标块中的有效数据复制到空闲块中,同时更新相应的地址映射表,最后将目标块擦除。
3.根据权利要求1所述的方法,其特征在于,步骤1)所述元数据包括地址映射表、块擦除次数表,将备份的元数据保存到系统保留块,保证存储备份元数据的物理块不会被上层映射,从而保证备份元数据不会被覆盖,保证备份元数据的完整性。
4.根据权利要求1所述的方法,其特征在于,步骤3)包括:首先闪存转换层接收到来自上层系统的恢复命令,然后闪存转换层利用备份的元数据代替当前的元数据,进而通过备份的元数据中地址映射表索引到需恢复数据所在的物理块,从而使得基于闪存的存储设备直接快速地恢复需恢复数据。
5.一种基于闪存的数据快速恢复系统,其特征在于,包括:
需恢复数据准备单元,用于使用户向基于闪存的存储设备中正常写入数据,在闪存转换层接收到来自上层系统的存储命令之后,触发垃圾回收机制,回收闪存中无效数据所占据的存储空间,实现需恢复数据的紧凑存储,然后由闪存转换层对需恢复数据的相关元数据进行备份;
需恢复数据修改单元,用于在合法或非法用户对需恢复数据进行增删改操作的过程中,通过修改闪存转换层中的块分配策略、垃圾回收机制保证需恢复数据的完整性;
需恢复数据恢复单元,用于在闪存转换层接收到来自上层系统的恢复命令后,通过恢复备份的元数据,恢复需要恢复的数据;
所述需恢复数据修改单元通过修改块分配策略,将新写入数据分配到空闲块中,并利用闪存非原位更新的特性,将更新后的需恢复数据写入到空闲块中,改变对应地址映射关系,保证存有需恢复数据及备份元数据的物理块不会被分配、修改;所述需恢复数据修改单元通过修改垃圾回收机制,保证垃圾回收执行过程中存有需恢复数据的块永远不会被标记为目标块,即保证被修改的需恢复数据所在的物理块不可被擦除;所述需恢复数据修改单元修改使用均衡机制,当发现存储需恢复数据的块的擦写次数小于某一阈值,则将其中的需恢复数据拷贝到一个擦写次数较大的空闲块中,改变地址映射关系,同时更新备份的地址映射表,并将擦除次数较小的物理块进行擦除,用于后续的块分配。
6.一种基于闪存的存储设备,其特征在于,包括闪存转换层;在恢复数据准备阶段,所述闪存转换层接收到来自上层系统的存储命令之后,触发垃圾回收机制,回收闪存中无效数据所占据的存储空间,实现需恢复数据的紧凑存储,然后所述闪存转换层对重要的元数据进行备份;在恢复数据修改阶段,在合法或非法用户对需恢复数据进行增删改操作的过程中,所述闪存转换层通过修改块分配策略、垃圾回收机制保证需恢复数据的完整性;在恢复数据恢复阶段,所述闪存转换层接收到来自上层系统的恢复命令后,通过恢复备份的元数据,恢复需要恢复的数据;
其中,所述闪存转换层通过修改块分配策略、垃圾回收机制保证需恢复数据的完整性,包括:
通过修改块分配策略,将新写入数据分配到空闲块中,并利用闪存非原位更新的特性,将更新后的需恢复数据写入到空闲块中,改变对应地址映射关系,保证存有需恢复数据及备份元数据的物理块不会被分配、修改;
通过修改垃圾回收机制,保证垃圾回收执行过程中存有需恢复数据及备份元数据的块永远不会被标记为目标块,即保证需恢复数据及备份元数据所在的物理块不可被物理擦除;
为了延长闪存的使用寿命,所述闪存转换层修改使用均衡机制:当发现存储需恢复数据的物理块的擦除次数小于某一阈值,则将其中的需恢复数据拷贝到一个擦写次数较大的空闲块中,改变地址映射关系,同时更新备份的地址映射表,并将擦除次数较小的物理块进行擦除,用于后续的块分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711144794.9A CN108038026B (zh) | 2017-11-17 | 2017-11-17 | 一种基于闪存的数据快速恢复方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711144794.9A CN108038026B (zh) | 2017-11-17 | 2017-11-17 | 一种基于闪存的数据快速恢复方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108038026A CN108038026A (zh) | 2018-05-15 |
CN108038026B true CN108038026B (zh) | 2021-11-30 |
Family
ID=62094150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711144794.9A Active CN108038026B (zh) | 2017-11-17 | 2017-11-17 | 一种基于闪存的数据快速恢复方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108038026B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388945B (zh) * | 2018-08-21 | 2022-04-01 | 中国科学院信息工程研究所 | 一种基于固态存储设备防范勒索软件攻击的方法和系统 |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
CN109712662B (zh) * | 2018-12-06 | 2020-10-13 | 天津津航计算技术研究所 | 嵌有阶段性动态阈值损耗均衡模块的NAND Flash主控芯片 |
US10891077B2 (en) * | 2018-12-26 | 2021-01-12 | Macronix International Co., Ltd. | Flash memory device and controlling method thereof |
CN112650691A (zh) * | 2019-10-10 | 2021-04-13 | 戴尔产品有限公司 | 基于改变频率的分层数据存储和垃圾回收系统 |
CN111984193A (zh) * | 2020-08-14 | 2020-11-24 | 深圳市硅格半导体有限公司 | 数据编写存储报错的恢复方法、系统、设备及存储介质 |
CN111949220B (zh) * | 2020-09-03 | 2023-12-08 | 合肥沛睿微电子股份有限公司 | 存储设备异常断电恢复方法及存储设备 |
CN111930517B (zh) * | 2020-09-18 | 2023-07-14 | 北京中科立维科技有限公司 | 一种高性能自适应垃圾收集方法和计算机系统 |
US11461193B2 (en) | 2020-09-24 | 2022-10-04 | International Business Machines Corporation | Data storage volume recovery management |
CN113791933B (zh) * | 2021-08-04 | 2023-03-10 | 方一信息科技(上海)有限公司 | 一种基于block管理的异常掉电恢复方法及系统 |
CN114063935B (zh) * | 2022-01-17 | 2022-06-14 | 阿里云计算有限公司 | 处理数据的方法以及装置 |
CN115509468B (zh) * | 2022-11-23 | 2023-03-24 | 四川省华存智谷科技有限责任公司 | 一种提高ssd生命周期的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365788A (zh) * | 2013-08-06 | 2013-10-23 | 山东大学 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
CN103458023A (zh) * | 2013-08-30 | 2013-12-18 | 清华大学 | 分布式闪存存储系统 |
US8635399B2 (en) * | 2011-10-18 | 2014-01-21 | Stec, Inc. | Reducing a number of close operations on open blocks in a flash memory |
CN105528301A (zh) * | 2015-12-07 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种NAND Flash闪存垃圾回收方法 |
CN105718206A (zh) * | 2014-12-03 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 能够感知raid的闪存转换层及其实现方法 |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
-
2017
- 2017-11-17 CN CN201711144794.9A patent/CN108038026B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635399B2 (en) * | 2011-10-18 | 2014-01-21 | Stec, Inc. | Reducing a number of close operations on open blocks in a flash memory |
CN103365788A (zh) * | 2013-08-06 | 2013-10-23 | 山东大学 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
CN103458023A (zh) * | 2013-08-30 | 2013-12-18 | 清华大学 | 分布式闪存存储系统 |
CN105718206A (zh) * | 2014-12-03 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 能够感知raid的闪存转换层及其实现方法 |
CN105528301A (zh) * | 2015-12-07 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种NAND Flash闪存垃圾回收方法 |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108038026A (zh) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108038026B (zh) | 一种基于闪存的数据快速恢复方法与系统 | |
EP2565792B1 (en) | Block management schemes in hybrid SLC/MLC memory | |
US7783845B2 (en) | Structures for the management of erase operations in non-volatile memories | |
US7624239B2 (en) | Methods for the management of erase operations in non-volatile memories | |
US9548108B2 (en) | Virtual memory device (VMD) application/driver for enhanced flash endurance | |
US8321652B2 (en) | Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks | |
US8954654B2 (en) | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance | |
US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
KR100526190B1 (ko) | 플래시 메모리의 재사상 방법 | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20190087348A1 (en) | Data backup method, data recovery method and storage controller | |
US20190294345A1 (en) | Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance | |
US20080082727A1 (en) | Header blocks for flash memory writes | |
WO2011030290A1 (en) | Data management in solid-state storage devices and tiered storage systems | |
TW201305817A (zh) | 具有分佈在作用單階胞及多階胞記憶體分割區之間的小邏輯群組之非揮發性記憶體及方法 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US20150220433A1 (en) | Method for managing flash memories having mixed memory types using a finely granulated allocation of logical memory addresses to physical memory addresses | |
EP2264602A1 (en) | Memory device for managing the recovery of a non volatile memory | |
US10545700B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
TW202101223A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TW201537577A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
Feng et al. | Mapping granularity adaptive ftl based on flash page re-programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |