基于固态存储介质的数据实时跟踪存储系统及方法技术方案

技术编号:8190918 阅读:264 留言:0更新日期:2013-01-10 01:50
本发明专利技术揭示了一种基于固态存储介质的数据实时跟踪存储系统及方法,所述系统包括存储模块、数据更新模块、序列号生成模块、数据更新实时跟踪模块。序列号生成模块用以从数列中选取当前序列号,供一个物理块或一组物理块更新时使用;当前序列号被使用之后,从所述数列中选取当前序列号的下一个序列号作为当前序列号;数据更新实时跟踪模块用以在一个物理块被擦除且重新写入数据时,将该物理块或该组物理块与序列号生成模块选取的当前序列号进行关联,实现数据更新的实时跟踪;并将写入的数据及对应序列号同时存储,以便在需要恢复时使用。本发明专利技术可利用最小化的系统资源实现对数据的准确定位,并能够在最大程度上减小突发情况下丢失数据的可能性。

【技术实现步骤摘要】

本专利技术属于数据存储
,涉及一种存储系统,尤其涉及一种基于固态存储介质的数据实时跟踪存储系统;同时,本专利技术还涉及一种基于固态存储介质的数据实时跟踪存储方法。
技术介绍
固态数据存储技术,尤其是基于闪存(NAND Flash)的数据存储技术在过去十几年发展迅速。在移动应用和高性能计算系统中逐渐取代了基于磁记录的硬盘(Hard diskdrive)成为主流的存储系统。闪存的结构从上级至下级可分为目标单元Target,逻辑单元LUNdogic unit number),平面Plane,物理块Block,和物理页page。一个Target可包含一个或多个LUN ;图I展示了一个NAND的系统结构。一个LUN通常由2个或4个Plane组成;一个Plane由多个block组成(如4096block)而一个block由多个page组成(如256page)。图2描述了一个LUN的内部架构。图3揭示了闪存阵列数据结构。闪存的一大特性是其不可重写性保存在闪存中的一物理页(page)数据必需要经过其页面所在的整个物理块(block)擦除之后才可以写入新的数据。为了使基于闪存的存储系统兼容传统的数据存储读写协议,基于闪存的存储系统需要闪存控制器通过FTL(Flash Translation Layer,闪存转换层)实现对闪存的管理。FTL层的典型结构如图4中所示。闪存转换层(FTL)主要由地址映射分配表、垃圾回收单元和磨损均衡单元组成。FTL把闪存当作一日志设备完成如下功能I.分配物理页面地址(PPA:physical page address)给新的逻辑数据页面(LPA logical page address),并在地址映射表中存储其对应的PPA地址。2.分配新的物理页面地址PPA给需要更新的逻辑数据页面,并在映射表中更新其物理地址。3.将该数据更新前存放的物理页面标记为无效(invalid or outdated),从而该页面(page)所在的块(block)在将来可以被FTL重新擦除回收,既垃圾回收(GC :GarbageCollection)。在垃圾回收时,被回收的块中仍然有效的数据页面将被拷贝到新的物理页面。当拷贝完成之后,该块中的所有页面都成为无效数据,因此整个数据块可以擦除之后再重新利用。4.为防止某些物理块(block)被过度使用而造成系统失效(闪存的物理块拥有有限的擦除读写次数,如5000次),FTL应用磨损均衡(WL:wear leveling)使得整个设备中的物理块使用程度平均,以最大化系统使用寿命。由上可见在基于闪存的固态存储器可能存在同一逻辑页面的多份拷贝。在这多份拷贝中,除了最新写入(主机更新写入或是GC/WL写入)的数据是有效的外,其它的拷贝都应该是无效的。FTL的任务之一便是能准确地跟踪定位对LPA唯一有效的PPA,并能尽可能地减少无效或者说已失效拷贝的数量达到充分利用存储空间的目的。在实现LPA到PPA的映射表时,最直接的方法是将映射表存储在RAM中而在系统关机时将映射表备份存储在闪存介质中。这一方案有两个缺陷( I)随着存储器容量的增加,映射表所需的存储量也相应增加。在更新后存储映射表的相应负荷也加大,需要占用很多的存储空间。(2)在突发断电的情况下,如果映射表未能保存则有可能出现数据丢失或错误现象。另一方案是对每一个LPA写入时加入时间信息(time stamp)使得系统能够唯一识别最新的数据。而这一种做法的缺陷是这些唯一的时间信息占用非常多的存储空间使得存储效率大幅度减低。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于固态存储介质的数据实时跟踪存储系统,可利用最小化的系统资源实现对数据的准确定位,并能够在最大程度上减小突发情况下(如系统掉电)丢失数据的可能性。此外,本专利技术还涉及一种基于固态存储介质的数据实时跟踪存储方法,可利用最小化的系统资源实现对数据的准确定位,并能够在最大程度上减小突发情况下(如系统掉电)丢失数据的可能性。为解决上述技术问题,本专利技术采用如下技术方案一种基于固态存储介质的数据实时跟踪存储系统,所述系统包括存储模块,包括若干物理块,用以存储数据;数据更新模块,用以擦除物理块中的数据,并向该物理块中重新写入数据; 序列号生成模块,用以从一数列中选取当前序列号,供一个物理块或一组物理块更新时使用;当前序列号被使用之后,从所述数列中选取当前序列号的下一个序列号作为当前序列号;所述数列为能唯一确定数列中各项序列号使用先后顺序的数列;数据更新实时跟踪模块,用以在一个物理块或一组物理块中的一个物理块被擦除且重新写入数据时,将该物理块或该组物理块与所述序列号生成模块选取的当前序列号进行关联,实现数据更新的实时跟踪;并将写入的数据及对应序列号同时存储,以便在需要恢复时使用。作为本专利技术的一种优选方案,所述存储模块包括一个或多个目标单元target,而一个目标单元包括一个或多个逻辑单元LUN, —个逻辑单元包括一个或多个物理块;所述一组物理块为超级物理块,超级物理块包括若干物理块,这些物理块来自多个LUN,并共享一个序列号;如果同一逻辑数据页面LPA出现在不同的超级物理块中,具有后使用序列号的超级物理块存储的是最新数据;如果同一超级物理块中包括多个同一 LPA,按照写入数据的先后顺序,后写入的物理页面地址PPA所对应的数据是最新的数据。作为本专利技术的一种优选方案,所述系统进一步包括序列号先后判定模块,用以根据序列号的使用情况判定在设定时间段内各序列号的先后使用顺序;映射表重构模块,用以构建LPA至PPA的映射表;对于存储在介质中的每一个PPA,读出其对应的LPA ;如果在重新构建的映射表中某LPA记录为空,则将PPA地址填入作为存储地址;如果在重新构建的映射表中已有PPA记录,记为PPA_o ;(I)如果当前PPA与 卩八_0属于同一物理块或超级物理块,则再进一步比较页面在物理块或超级物理块中写入顺序;如果该PPA的写入顺序晚于映射表中PPA_o的写入顺序,则更新该记录被更新成当前PPA,否则,该记录将维持不变;(2)如果当前PPA与PPA_o属于不同物理块或超级物理块,则比较PPA和PPA_o对应序列号的先后顺序;如果PPA对应的序列号后于PPA_o对应的序列号,则更新记录为PPA ;否则维持记录不变。作为本专利技术的一种优选方案,所述系统进一步包括多进程写入控制模块,用以控制多个写入进程进行数据写入时共享同一序列号生成模块; 在固态数据存储系统中包括不同类别的数据;在写入过程中,不同类别的数据由对应的不同写入进程分别处理;序列号可以在任何一个写入进程完成一个物理块或一组物理块的同时分配,并保证在同一逻辑页面(LPA)在写入一个物理块或者一组物理块的过程中不发生线程的跳转。作为本专利技术的一种优选方案,所述序列号生成模块生成的序列号呈递增或递减;或者,所述序列号生成模块循环利用数列中的各项序列号,或者所述数列为循环数列;但确保设定时间段内数列中序列号的唯一性。一种基于固态存储介质的数据实时跟踪存储方法,所述方法包括如下步骤数据更新步骤擦除物理块中的数据,并向该物理块中重新写入数据;序列号生成步骤从一数列中选取当前序列号,供一个物理块或一组物理块更新时使用;当前序列号被使本文档来自技高网
...

【技术保护点】
一种基于固态存储介质的数据实时跟踪存储系统,其特征在于,所述系统包括:存储模块,包括若干物理块,用以存储数据;数据更新模块,用以擦除物理块中的数据,并向该物理块中重新写入数据;序列号生成模块,用以从一数列中选取当前序列号,供一个物理块或一组物理块更新时使用;当前序列号被使用之后,从所述数列中选取当前序列号的下一个序列号作为当前序列号;所述数列为能唯一确定数列中各项序列号使用先后顺序的数列;数据更新实时跟踪模块,用以在一个物理块或一组物理块中的一个物理块被擦除且重新写入数据时,将该物理块或该组物理块与所述序列号生成模块选取的当前序列号进行关联,实现数据更新的实时跟踪;并将写入的数据及对应序列号同时存储,以便在需要恢复时使用。

【技术特征摘要】

【专利技术属性】
技术研发人员:阳学仕周溱
申请(专利权)人:上海宝存信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1