CN106569742A - 存储管理方法及存储设备 - Google Patents

存储管理方法及存储设备 Download PDF

Info

Publication number
CN106569742A
CN106569742A CN201610913693.2A CN201610913693A CN106569742A CN 106569742 A CN106569742 A CN 106569742A CN 201610913693 A CN201610913693 A CN 201610913693A CN 106569742 A CN106569742 A CN 106569742A
Authority
CN
China
Prior art keywords
life cycle
target data
data
cycle issue
logical address
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.)
Granted
Application number
CN201610913693.2A
Other languages
English (en)
Other versions
CN106569742B (zh
Inventor
陈业夫
王万振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610913693.2A priority Critical patent/CN106569742B/zh
Publication of CN106569742A publication Critical patent/CN106569742A/zh
Priority to PCT/CN2017/081335 priority patent/WO2018072420A1/zh
Application granted granted Critical
Publication of CN106569742B publication Critical patent/CN106569742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及计算机领域,特别是涉及存储管理技术。在一种存储管理方法中,包括:接收读数据指令(包括目标数据的逻辑地址);根据逻辑地址在索引数据中查找,以获取逻辑地址对应的目标数据区域和目标数据区域的初始生命周期号;获取目标数据区域的生命周期号;在确定生命周期号与初始生命周期号不一致时,不执行读数据指令。在本发明中,在读取过程中,若索引数据记录的目标数据区域的初始生命周期号与当前的生命周期号不同时,将不会执行读数据指令。也即,在本发明读取过程中,会通过生命周期号去识别索引数据是否无效,若无效,则不执行读数据指令,从而可避免读取到错误的数据。

Description

存储管理方法及存储设备
技术领域
本申请涉及计算机领域,特别是涉及存储管理技术。
背景技术
目前,很多计算机(例如台式机)、磁盘阵列的控制器的存储介质可包括SSD(SolidState Disk,固态硬盘)。相对于传统机械硬盘,SSD具有优异的读写性能,但其容量较小(因为价格较贵)。所以,广泛使用了SSD作为只读缓存,将机械硬盘中访问比较频繁的热点数据放在SSD中。
上述热点数据使用LBA(Logical Block Address,逻辑区块地址)来标识,请参见图1,存储***会将SSD的存储空间划为若干个segment(其大小大致是几十MB),并按照SSD的存储地址从低到高的顺序加以编号,每一segment又包括若干个block。
在将热点数据写入SSD的存储空间(物理存储空间)后,需建立物理存储地址与逻辑存储地址之间的关系。也即,需要在***内存中建立正向索引,以便可从LBA找到相应的segment和block。举例来讲,假定LBA a对应的热点数据写入segment r上的block x,则建立正向索引a--->(r,x)。此外,还需要建立一个反向索引(从segment和block找到相应的LBA)。仍以LBA a对应的热点数据写入segment r上的block x为例,需建立的反向索引为(r,x)--->a。
当SSD上所有segment用完后,需要将一些segment释放。被释放的segment所对应的正向索引是无效的。因此,在读取数据过程中,可能会搜索到无效的正向索引,进而读取到错误的数据。
发明内容
为了解决上述问题,本申请提供存储管理方法及存储设备,以解决读取数据过程中,可能会搜索到无效的正向索引,进而读取到错误的数据的问题。
为实现上述目的,本发明实施例提供如下技术方案:
一方面,本申请的实施例提供一种存储管理方法,该方法应用于存储设备中,所述存储设备包括处理器和固态硬盘(SSD),所述固态硬盘包括多个数据区域,每个数据区域包括一个或多个块(block),由所述处理器执行的该方法中,为对象(例如存储盘、数据区域)赋予初始生命周期号,在生命期结束或一个新的生命期开始时,赋予该对象新的生命周期号。在使用该对象前,需要比较初始的生命周期号与当前的生命周期号是否一致。如果不一致,说明对象无效,不对其继续使用,这样可避免读取到错误的数据。
在一个可能的设计中,上述对象具体为数据区域,例如segment。则上述处理器所执行的步骤包括:接收包括目标数据的逻辑地址的读数据指令;根据该逻辑地址在索引数据中查找,以获取该逻辑地址对应的目标数据区域和其初始生命周期号(索引数据包括该逻辑地址与目标数据区域的初始生命周期号之间的对应关系);获取所述目标数据区域的生命周期号,并在确定所述生命周期号与所述初始生命周期号不一致时,不执行上述读数据指令。此外,在确定上述生命周期号与初始生命周期号相同时,则读取上述目标数据区域中存储的目标数据。可见,在读取过程中,若索引数据记录的目标数据区域的初始生命周期号与目标数据区域当前的生命周期号不同时,会不执行读数据指令。也即,在本发明读取过程中,会通过生命周期号去识别索引数据是否无效,若无效,则不执行读数据指令,从而可避免读取到错误的数据。
在一个可能的设计中,在确定上述生命周期号与初始生命周期号不一致时,处理器还可删除上述逻辑地址对应的索引数据。这样可避免读到无效的索引数据,提高读取效率。
在一个可能的设计中,在上述接收读数据指令之前,存储设备还可进行目标数据的写入。其写入过程可包括:处理器接收写数据指令(包括目标数据及其逻辑地址),确定该目标数据对应的目标数据区域及其初始生命周期号,并保存上述逻辑地址与初始生命周期号之间的对应关系至前述索引数据。在一个示例中,可在写入目标数据后,为目标数据区域分配一个初始生命周期号。在另一个示例中,在出厂时,或首次初始化SSD时,为每一数据区域分配一个原始生命周期号(一般为0)。在使用SSD过程中,会在原始生命周期号的基础上,进行单调递增或单调递减。在写入目标数据后,可以使用目标数据区域当时的生命周期号作为初始生命周期号。与现有存储管理方式不同的是,现有存储管理方式建立了正向索引和反向索引。而在本实施例中,存储设备在写入目标数据后,建立了包含目标数据区域的初始生命周期号的索引数据,本实施例中的索引数据类似于现有的正向索引,但与之相比,又增加了逻辑地址与初始生命周期号之间的对应关系。同时,本实施例中,不再维护之前的反向索引,减少了内存消耗并降低了管理复杂度。
在一个可能的设计中,在写入过程之后、读取过程之前,存储设备还可能进行数据区域的释放。该释放过程可包括:接收释放目标数据区域的指令,将上述初始生命周期号修改为上述生命周期号。在一个示例中,可将初始生命周期号增加m,得到新的生命周期号。m可为正整数或负整数。与现有释放方式相比,本发明实施例所提供的释放方式只需要修改初始生命周期号即可,避免了复杂的操作,提高了处理效率。
在一个可能的设计中,存储设备还可能进行数据删除。则在一个示例中,删除过程可包括:接收删除数据指令,所述删除数据指令包括所述目标数据的逻辑地址;将所述逻辑地址对应的索引数据设置为无效。在现有的存储方式中,当需要删除LBA a对应的目标数据时,假定LBA a对应的正向索引为a--->(r,x),反向索引为(r,x)--->a,则需要先从正向索引a找到(r,x),再无效掉反向索引(r,x)--->a,最后无效掉正向索引a--->(r,x)。与之相比,在本实施例中,直接将逻辑地址对应的索引数据设置为无效即可,从而可大大减少操作步骤。
另一方面,本发明实施例提供了一种存储设备,该存储设备具有实现上述方法实际中存储设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,存储设备的结构包括:处理器和存储器,所述处理器通过运行存储在所述存储器内的软件程序、调用存储在所述存储器内的数据,执行上述存储设备所执行的方法。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述存储设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
在本发明中,在读取过程中,若索引数据记录的目标数据区域的初始生命周期号与目标数据区域当前的生命周期号不同时,会不执行读数据指令。也即,在本发明读取过程中,会通过生命周期号去识别索引数据是否无效,若无效,则不执行读数据指令,从而可避免读取到错误的数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为正反索引示意图;
图2a为本申请实施例提供的一种应用环境示意图;
图2b为本申请实施例提供的存储设备一种示例性结构图;
图3为本发明实施例提供的存储设备的控制器的通用计算机架构示意图;
图4、6-9为本申请实施例提供的存储管理方法示例性流程图;
图5为本申请实施例提供的索引数据示意图;
图10为本发明实施例提供的存储设备另一种示例性结构示意图。
具体实施方式
本申请实施例欲保护存储管理方法及存储设备。上述存储设备具体可为磁盘阵列等。
请参见图2a所描绘的存储设备的一种组成图,其包括控制器201和硬盘框202。
控制器201可以是一种计算设备,如服务器、台式计算机等等。在控制器201上安装有操作***以及其他应用程序。控制器201可以接收来自应用主机的输入输出(I/O)请求,存储I/O请求中携带的数据,并将数据写入硬盘框202中。在一个应用场景下,控制器201可以通过SAN网络与应用主机(图中未示出)连接。控制器201的结构示意图可参见图3。
硬盘框202则可包括一个或多个硬盘,其中,请参见图2b,至少有一个硬盘是固态硬盘21(Solid State Device,SSD)。当然,SSD也可安装在控制器201的插槽内。
图3是上述控制器201的一种结构示例图,如图3所示,控制器201可包括通过总线相连的处理器1、内存2、通信接口3(可进一步包括前端接口卡和后端接口卡),以及输入设备4和输出设备5。
其中,前端接口卡可用于和应用主机通信,控制器201的处理器1可以通过前端接口卡接收应用主机的各种操作指令。
控制器201的处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。在本发明实施例中,控制器201的处理器1可以用于接收来自应用主机的写数据请求或者读数据请求、处理所述写数据请求或者读数据请求、将所述写数据请求或者读数据请求发送给固态硬盘21以及其他操作。
内存2,用于存放程序,另外,本实施例中的内存2还可以集成缓存的功能,例如用于缓存从应用主机接收的数据或从固态硬盘21读取的数据。示例性的,控制器201接收应用主机发送的多个写数据请求时,可以暂时将所述多个写数据请求保存在内存2中,当内存2的容量达到水位线时,将其发送给固态硬盘21进行持久化存储。
内存2可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可以理解的是,内存2可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、光盘、固态硬盘(Solid State Disk,SSD)或者非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。需要说明的是,在实施例中内存2和缓存也可以分开设置。
后端接口卡可用于和固态硬盘21通信,控制器201的处理器1可以通过后端接口卡将数据发送给固态硬盘21存储。
固态硬盘21进一步可包括SSD控制器和存储介质。其中,SSD控制器用于执行处理器1发送的写数据请求或者读数据请求等操作。
需要说明的是,控制器201属于***控制器,不同于SSD自身的控制器。
更具体的,SSD控制器中包含闪存翻译层(Flash Translation Layer,FTL),FTL中保存有数据的逻辑地址与物理地址之间的对应关系。因此,FTL用于将写数据请求或者读数据请求中携带的逻辑地址转化为数据保存在SSD的物理地址,数据保存在SSD的物理地址可以是该数据保存在SSD中的实际地址,也可以在所述实际地址的基础上经过虚拟化,只对SSD控制器可见的地址(***控制器不可见)。
固态硬盘中的存储介质通常由若干个闪存flash芯片组成。每个闪存芯片包括若干个块(block)。通常情况下block的标准容量可以是2的N次方(M),其中,N为正整数。
通常情况下,SSD中的block对***控制器来说是不可见的。SSD的存储空间对***控制器呈现的是若干段连续的逻辑空间,在本实施例中,为了描述方便,将一段连续的逻辑空间称为一个段(segment),每个segment对应的逻辑空间的地址称为逻辑地址。在SSD内部,每个segment对应一个或多个block。需要说明的是,SSD控制器并没有感知到segment的存在。Segment是***控制器感知的一段逻辑空间,对应一段逻辑地址(也称为逻辑地址区间)。例如,一个segment对应的逻辑地址区间是0MB-1023MB;另一个segment对应的逻辑地址区间是1024MB-2047MB;再一个segment对应的逻辑地址区间是2048MB-3071MB,依此类推。
下面将基于上面所述的本发明涉及的共性方面,对本发明实施例如何存储管理进行进一步详细说明。
图4示出了本发明实施例提供的存储管理方法的一种交互式示例性流程,用以解决读取数据过程中可能会搜索到无效的正向索引,进而读取到错误的数据的问题。
图4所示的方法应用在图2a所示的应用场景中,由图3所示的存储设备中的控制器201的处理器1与其他部件交互。
该交互流程包括:
在401部分:控制器201的处理器1接收(来自应用***的)读数据指令。
上述读数据指令包括目标数据的逻辑地址。
更具体的,处理器1可通过通信接口3的前端接口卡接收上述读数据指令。
在一个示例中,该逻辑地址为LBA(Logical Block Address,逻辑区块地址)。如无特别声明,本文后续均将以LBA为例进行描述。
在402部分:控制器201的处理器1根据上述逻辑地址在(内存2维护的)索引数据中查找,以获取该逻辑地址对应的目标数据区域和该目标数据区域的初始生命周期号。
在控制器201的内存2中维护着各逻辑地址LBA对应的索引数据。请参见图5,任一索引数据包括逻辑地址与数据区域的初始生命周期号之间的对应关系,以及逻辑地址与物理地址之间的对应关系。
索引数据是在向SSD中写入数据后建立的。假定,LBA a对应的数据写入了segmentr的block x中,并且,segment r的初始生命周期号为h,则LBA a对应的索引数据可为a--->(r,x,h)或a--->(h,r,x)。
若读数据指令中包括的是LBA a,则LBA a对应的segment r为目标数据区域,索引数据a--->(r,x,h)或a--->(h,r,x)中记录的h则为目标数据区域的初始生命周期号。
本文后续将介绍如何建立索引数据。
在403部分:控制器201的处理器1获取目标数据区域当前的生命周期号;
除索引数据外,在控制器201的内存2中还维护着数据区域与当前的生命周期号的对应关系。
在首次初始化SSD过程中,存储设备可将SSD的存储空间划为若干个数据区域(其大小大致是几十MB),并按照SSD的存储地址从低到高的顺序对数据区域加以编号,并维护每个数据区域与生命周期号的对应关系。由于数据区域较大(相对于block),所以维护数据区域与生命周期号的对应关系消耗的内存量很小。
在一个示例中,假定共有100个数据区域,数据区域与当前的生命周期号的对应关系可如下表1所示:
数据区域标识 生命周期号
1 10
2 20
……
100 3
表1
在一个示例中,控制器201的处理器1可查找上述表1,获取目标数据区域当前的生命周期号。
数据区域的生命周期号是会变化的,例如在释放某数据区域后,该数据区域的生命周期号会发生变化,本文后续将对其进行介绍。
在404部分:在确定获取的目标数据区域的生命周期号与初始生命周期号不一致时,控制器201的处理器1不执行上述读数据指令。
举例来讲,若初始生命周期号为h,而获取的目标数据区域的当前生命周期号为h+m,则二者不一致,则将不执行读数据指令。
此外,若获取的目标数据区域当前的生命周期号与初始生命周期号不一致,则可确认该索引数据无效,那么将无法从SSD上读取到数据。此时,可从其他存储介质读取数据。如何从其他存储介质读取数据,可参照现有方式,在此不作赘述。
当然,若获取的目标数据区域的生命周期号与初始生命周期号一致,则执行上述读数据指令。
可见,在本实施例的读取过程中,若索引数据记录的目标数据区域的初始生命周期号与目标数据区域当前的生命周期号不同时,会不执行读数据指令。也即,在本发明读取过程中,会通过生命周期号去识别索引数据是否无效,若无效,则不执行读数据指令,从而可避免读取到错误的数据。
此外,在本发明其他实施例中,仍请参见图4,上述交互过程还可包括:
在405部分:控制器201的处理器1删除上述读数据指令中逻辑地址对应的索引数据。
这样可避免后续处理器1读到无效的索引数据,提高读取效率。
图6为本发明实施例提供的存储管理方法的另一种交互式示例性流程。本实施例重点在于介绍上述目标数据的写入过程。
图6所示的方法可应用在图2a所示的应用场景中,主要由图3所示的存储设备中的控制器201的处理器1与其他部件交互完成。
该交互流程包括:
在601部分:控制器201的处理器1接收(来自应用***的)写数据指令。
该写数据指令包括了上述目标数据以及逻辑地址。
更具体的,处理器1可通过通信接口3的前端接口卡接收上述写数据指令。
在602部分:固态硬盘21从空闲数据区域上顺序为目标数据分配block(一般是几KB到几十KB),将目标数据写入分配的block中。
更具体的,控制器201的处理器1可以通过后端接口卡将数据发送给固态硬盘21存储。固态硬盘21中的SSD控制器则从空闲数据区域上顺序为目标数据分配block(一般是几KB到几十KB),将目标数据写入分配的block中。
在603部分:控制器201的处理器1确定目标数据对应的目标数据区域及该目标数据区域的初始生命周期号。
在写入目标数据后,可以使用目标数据区域当时的生命周期号作为初始生命周期号。
举例来讲,假定在T0时刻,将目标数据写入segment r的block x中,则目标数据区域为segment r,可通过查询上述表1,获取segment r当时(T0时刻)的生命周期号h作为初始生命周期号。
在另一个示例中,可在写入目标数据后,为目标数据区域分配一个初始生命周期号,并存入上述表1。
在另一个示例中,在出厂时,或首次初始化SSD时,为每一数据区域分配一个原始生命周期号(一般为0)。在使用SSD过程中,会在原始生命周期号的基础上,进行累加或累减(本文后续介绍),将累加或累减的结果存入上述表1。
在604部分:控制器201的处理器1保存上述逻辑地址与目标数据区域的初始生命周期号之间的对应关系至上述索引数据。
在604部分中,假定将LBA a对应的目标数据写入segment r的block x中,并且segment r当前的生命周期号为h,则创建出的索引数据为a--->(r,x,h)或a--->(h,r,x)。
与现有存储管理方式不同的是,现有存储管理方式建立了正向索引和反向索引。而在本实施例中,存储设备在写入目标数据后,建立了包含目标数据区域的初始生命周期号的索引数据,本实施例中的索引数据类似于现有的正向索引,但与之相比,又增加了逻辑地址与初始生命周期号之间的对应关系。同时,在本实施例中,不再维护反向索引,也减少了内存消耗并降低了管理复杂度。
需要说明的是,在某些现有存储管理方式中,当需要将SSD上的segment释放时需要使用反向索引:假定需要释放segment r,此时需要根据反向索引找到segment r上各block对应的LBA,再根据搜索到的LBA,将segment为r所对应的正向索引都无效掉(删除),最后再将segment r标记为空闲。
但是,维护从segment上各block到LBA的反向索引,需要消耗大量内存,此外,空间管理复杂度也较高。
图7所示的本发明实施例,提供了涉及释放数据区域的交互式示例性流程。
图7所示的方法应用在图2a所示的应用场景中,由图3所示的存储设备中的控制器201的处理器1与其他部件交互。
该交互流程包括:
在700部分:控制器201的处理器1接收释放目标数据区域的指令;
释放目标数据区域的指令是存储设备内部触发的。在实际中,存储设备会检测到数据区域已用完,就会选择将某些已用的segment释放,后续以接受新的数据写入。
在701部分:控制器201的处理器1修改初始生命周期号。
在一个示例中,可将初始生命周期号增加m,得到新的生命周期号。m可为正整数或负整数。更具体的,m可取+1。
沿用上述表1的例子,假定释放的是数据区域1,则将数据区域1的初始生命周期号10加m,再将(10+m)保存至表1。
前述提及了,在出厂时或首次初始化SSD时,为每一数据区域分配一个原始生命周期号(一般为0)。在使用SSD过程中,会在原始生命周期号的基础上,进行单调递增或单调递减。则在另一示例中,可在原始生命周期号的基础上,每释放一次数据区域,则单调递增m。
700部分执行于在保存所述逻辑地址与目标数据区域的初始生命周期号之间的对应关系至所述索引数据之后(也即604部分之后),接收读数据指令之前(也即601部分之前)。
与现有释放方式相比,本发明实施例所提供的释放方式只需要修改初始生命周期号即可,避免了复杂的操作,提高了处理效率。
除读/写数据、释放数据区域外,存储设备还可能进行删除目标数据、重写入目标数据等操作。
基于本发明实施例提供的索引数据,图8示出了涉及删除目标数据的交互式示例性流程。
图8所示的方法应用在图2a所示的应用场景中,由图3所示的存储设备中的控制器201的处理器1与其他部件交互。
该交互流程包括:
在801部分:控制器201的处理器1接收(来自应用***的)删除数据指令。
该删除数据指令包括上述目标数据的逻辑地址。
更具体的,处理器1可通过通信接口3的前端接口卡接收上述删除数据指令。
在802部分:控制器201的处理器1将上述逻辑地址对应的索引数据设置为无效。
在一个示例中,可删除上述逻辑地址对应的索引数据。
需要说明的是,在现有的存储方式中,当需要删除LBAa对应的目标数据时,假定LBAa对应的正向索引为a--->(r,x),反向索引为(r,x)--->a,则需要先从正向索引找到(r,x),再无效掉反向索引(r,x)--->a,最后无效掉正向索引a--->(r,x)。
与之相比,在本实施例中,直接将逻辑地址对应的索引数据设置为无效即可,从而可大大减少操作步骤。
假定LBA a的数据因为被更新需要再次写入SSD,基于本发明实施例提供的索引数据,图9示出了涉及重复写入目标数据的交互式示例性流程。
图9所示的方法应用在图2a所示的应用场景中,由图3所示的存储设备中的控制器201的处理器1与其他部件交互。
该交互流程包括:
在901部分:控制器201的处理器1接收(来自应用***的)写数据指令。
该写数据指令包括了上述目标数据以及逻辑地址。
901部分与601部分相同,在此不作赘述。
在902部分:固态硬盘21中SSD控制器从空闲数据区域上顺序为目标数据分配block(一般是几KB到几十KB),将目标数据写入分配的block中。
假定之前LBA a对应的目标数据写入到segment r上的block x,在重复写入过程中,为目标数据分配的是segment s上的block y,则会将LBA a对应的目标数据写入到segment s上的blocky。
需要说明的是,为提升SSD性能和寿命,写入都是顺序进行的。因此,若需要重复写入目标数据,则需要重新分配存储空间。
在903部分:存控制器201的处理器1确定目标数据对应的新目标数据区域及该新目标数据区域的初始生命周期号。
沿用前例,假定将LBA a对应的目标数据写入到segment s上的block y,则segment s为新目标数据区域,查找表1,可获取segment s对应的生命周期号作为初始生命周期号,可假定segment s的初始生命周期号为i。
在904部分:控制器201的处理器1保存上述逻辑地址与新目标数据区域的初始生命周期号之间的对应关系至上述索引数据。
仍沿用前例,则将LBA a对应的索引数据由a--->(r,x,h)或a--->(h,r,x),更新为a--->(i,s,y)或a--->(s,y,i)。
需要说明的是,在现有的存储方式中,当需要重复写入时,在将目标数据写入分配的block中后,需要先从老的正向索引a找到(r,x),再无效掉反向索引(r,x)--->a。最后,更新正向索引为a--->(s,y),并建立新的反向索引(s,y)--->a。
与之相比,本实施例所提供的重复写入方式直接更新逻辑地址对应的索引数据即可,从而可大大减少操作步骤。
综上,本发明核心思想是:为对象(例如存储盘、数据区域)赋予生命周期号来标志其生命期,在一些情况下,生命期结束或一个新的生命期开始时,赋予其新的生命周期号。所有使用该对象的客体需记录该对象初始的生命周期号,在使用该对象前,需要比较初始的生命周期号与当前的生命周期号是否一致。如果不一致,说明对象无效,不能继续使用。
除上述所有实施例所提供的技术方案外,本发明的思想还可应用于例如存储盘的存储管理上。若存储盘被释放或损坏,可在存储盘的初始生命周期号上累加m,得到新的生命周期号。访问该存储盘时,可比较其初始生命周期号与当前生命周期号是否一致,如不一致,说明存储盘无效,不可访问。
上述主要从各个装置之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个装置,例如存储设备、存储装置等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
图10示出了上述实施例中所涉及的存储设备的一种可能的结构示意图,包括:
接收模块101,用于接收读数据指令(包括目标数据的逻辑地址);
查找模块102,用于根据上述逻辑地址在索引数据中查找,以获取上述逻辑地址对应的目标数据区域和上述目标数据区域的初始生命周期号。
其中,上述索引数据包括上述逻辑地址与上述目标数据区域的初始生命周期号之间的对应关系;
获取模块103,用于获取上述目标数据区域的生命周期号;
读取模块104,用于在确定上述生命周期号与上述初始生命周期号不一致时,不执行上述读数据指令。
相关细节请参见本文前述记载,在此不作赘述。
在本发明其他实施例中,仍请参见图10,上述存储设备还可包括写入模块105,用于:
接收写数据指令(可通过接收模块101接收),上述写数据指令包括上述目标数据以及上述目标数据的逻辑地址;其中,上述写数据指令是在上述接收模块101接收读数据指令之前接收到的;
确定上述目标数据对应的目标数据区域及上述目标数据区域的初始生命周期号(可通过获取模块103确定目标数据区域及初始生命周期号);
以及,保存上述逻辑地址与上述目标数据区域的初始生命周期号之间的对应关系至上述索引数据。
此外,写入模块105还可执行前述的重复写入目标数据的操作。
在本发明其他实施例中,仍请参见图10,上述存储设备还可包括释放模块106,用于在接收释放目标数据区域的指令后,将上述初始生命周期号修改为上述生命周期号。
其中,释放目标数据区域的指令是在写入模块105保存逻辑地址与目标数据区域的初始生命周期号之间的对应关系至索引数据之后,接收模块101接收读数据指令之前接收的。
在本发明其他实施例中,仍请参见图10,上述存储设备还可包括删除模块107,用于接收(来自应用***的)删除数据指令(包括目标数据的逻辑地址),将上述逻辑地址对应的索引数据设置为无效。
其中,接收模块101可用于支持存储设备与其他装置进行通信,例如,用于支持存储设备与图4、图6、图7、图8、图9中示出的与其他装置进行通信,例如接收指令。
查找模块102可执行图4所示的402部分,图6所示的603部分(查找初始生命周期号),图7所示的402部分、603部分,或者,可执行图9所示的903部分(查找初始生命周期号)。
获取模块103可执行图4或7所示的403部分。
读取模块104可执行图4或7所示的404部分和405部分。
写入模块105可直接执行图6或7所示的601-604部分,或可通过与其他模块交互执行图6或7所示的601-604部分。此外,写入模块可直接或通过与其他模块交互执行图9所示的901-904部分。
释放模块106可直接或通过与其他模块交互执行图7所示的700-701部分。
删除模块107可直接或通过与其他模块交互执行图7所示的801-802部分。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (12)

1.一种存储管理方法,其特征在于,所述方法应用于存储设备中,所述存储设备包括处理器和固态硬盘,所述固态硬盘包括多个数据区域,每个数据区域包括一个或多个块(block),所述方法由所述处理器执行,包括以下步骤:
接收读数据指令,所述读数据指令包括目标数据的逻辑地址;
根据所述逻辑地址在索引数据中查找,以获取所述逻辑地址对应的目标数据区域和所述目标数据区域的初始生命周期号,所述索引数据包括所述逻辑地址与所述目标数据区域的初始生命周期号之间的对应关系;
获取所述目标数据区域的生命周期号;
在确定所述生命周期号与所述初始生命周期号不一致时,不执行所述读数据指令。
2.根据权利要求1所述的方法,其特征在于,还包括:
在确定所述生命周期号与所述初始生命周期号不一致时,删除所述逻辑地址对应的索引数据。
3.根据权利要求1或2所述的方法,其特征在于,在所述接收读数据指令之前还包括:
接收写数据指令,所述写数据指令包括所述目标数据以及所述目标数据的逻辑地址;
确定所述目标数据对应的目标数据区域及所述目标数据区域的初始生命周期号;
保存所述逻辑地址与所述目标数据区域的初始生命周期号之间的对应关系至所述索引数据。
4.根据权利要求3所述的方法,其特征在于,在所述保存所述逻辑地址与所述目标数据区域的初始生命周期号之间的对应关系至所述索引数据之后,所述接收读数据指令之前还包括:
接收释放所述目标数据区域的指令;
将所述初始生命周期号修改为所述生命周期号。
5.如权利要求4所述的方法,其特征在于,所述将所述初始生命周期号修改为所述生命周期号包括:
将所述初始生命周期号增加m,得到所述生命周期号;所述m为正整数或负整数。
6.如权利要求1所述的方法,其特征在于,还包括:
接收删除数据指令,所述删除数据指令包括所述目标数据的逻辑地址;
将所述逻辑地址对应的索引数据设置为无效。
7.如权利要求1所述的方法,其特征在于,还包括:
在确定所述生命周期号与所述初始生命周期号相同时,读取所述目标数据区域中存储的目标数据。
8.一种存储设备,其特征在于,包括固态硬盘,所述固态硬盘包括多个数据区域,每个数据区域包括一个或多个块(block);
所述存储设备还包括:
接收模块,用于接收读数据指令,所述读数据指令包括目标数据的逻辑地址;
查找模块,用于根据所述逻辑地址在索引数据中查找,以获取所述逻辑地址对应的目标数据区域和所述目标数据区域的初始生命周期号,所述索引数据包括所述逻辑地址与所述目标数据区域的初始生命周期号之间的对应关系;
获取模块,用于获取所述目标数据区域的生命周期号;
读取模块,用于在确定所述生命周期号与所述初始生命周期号不一致时,不执行所述读数据指令。
9.如权利要求8所述的设备,其特征在于,所述读取模块还用于:在确定所述生命周期号与所述初始生命周期号不一致时,删除所述逻辑地址对应的索引数据。
10.如权利要求8或9所述的设备,其特征在于,还包括写入模块,用于:
接收写数据指令,所述写数据指令包括所述目标数据以及所述目标数据的逻辑地址;确定所述目标数据对应的目标数据区域及所述目标数据区域的初始生命周期号;以及,保存所述逻辑地址与所述目标数据区域的初始生命周期号之间的对应关系至所述索引数据;其中,所述写数据指令是在所述接收模块接收读数据指令之前接收到的。
11.如权利要求10所述的设备,其特征在于,还包括:
释放模块,用于在接收释放所述目标数据区域的指令后,将所述初始生命周期号修改为所述生命周期号;其中,所述释放所述目标数据区域的指令是在所述写入模块保存所述逻辑地址与所述目标数据区域的初始生命周期号之间的对应关系至所述索引数据之后,所述接收模块接收读数据指令之前接收的。
12.如权利要求10所述的设备,其特征在于,在将所述初始生命周期号修改为所述生命周期号的方面,所述释放模块用于:
将所述初始生命周期号增加m,得到所述生命周期号;所述m为正整数或负整数。
CN201610913693.2A 2016-10-20 2016-10-20 存储管理方法及存储设备 Active CN106569742B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610913693.2A CN106569742B (zh) 2016-10-20 2016-10-20 存储管理方法及存储设备
PCT/CN2017/081335 WO2018072420A1 (zh) 2016-10-20 2017-04-21 存储管理方法及存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610913693.2A CN106569742B (zh) 2016-10-20 2016-10-20 存储管理方法及存储设备

Publications (2)

Publication Number Publication Date
CN106569742A true CN106569742A (zh) 2017-04-19
CN106569742B CN106569742B (zh) 2019-07-23

Family

ID=58534053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610913693.2A Active CN106569742B (zh) 2016-10-20 2016-10-20 存储管理方法及存储设备

Country Status (2)

Country Link
CN (1) CN106569742B (zh)
WO (1) WO2018072420A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018072420A1 (zh) * 2016-10-20 2018-04-26 华为技术有限公司 存储管理方法及存储设备
CN108196980A (zh) * 2017-12-28 2018-06-22 深圳市得微电子有限责任公司 误删除数据恢复方法、闪存设备及计算机可读存储介质
CN110703992A (zh) * 2019-09-20 2020-01-17 上海新储集成电路有限公司 一种加快机械硬盘读写速度的方法及***
CN110928495A (zh) * 2019-11-12 2020-03-27 杭州宏杉科技股份有限公司 一种在多控存储***上的数据处理方法及装置
CN113312443A (zh) * 2021-05-06 2021-08-27 天津大学深圳研究院 一种基于新型存储器的存储内检索与查表构建方法
WO2021196623A1 (zh) * 2020-04-01 2021-10-07 长鑫存储技术有限公司 读写方法及存储器装置
US11527301B2 (en) 2020-04-01 2022-12-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11869615B2 (en) 2020-04-01 2024-01-09 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11881240B2 (en) 2020-04-01 2024-01-23 Changxin Memory Technologies, Inc. Systems and methods for read/write of memory devices and error correction
US11886287B2 (en) 2020-04-01 2024-01-30 Changxin Memory Technologies, Inc. Read and write methods and memory devices
US11894088B2 (en) 2020-04-01 2024-02-06 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11899971B2 (en) 2020-04-01 2024-02-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11914479B2 (en) 2020-04-01 2024-02-27 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11922023B2 (en) 2020-04-01 2024-03-05 Changxin Memory Technologies, Inc. Read/write method and memory device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127376B (zh) * 2019-12-30 2024-02-27 阿里巴巴集团控股有限公司 固态驱动器的控制方法、装置及设备
CN113688062B (zh) * 2020-05-18 2022-08-26 北京市商汤科技开发有限公司 用于存储数据的方法和相关产品
CN112000591B (zh) * 2020-08-24 2023-12-05 深圳忆联信息***有限公司 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930404A (zh) * 2010-08-27 2010-12-29 威盛电子股份有限公司 存储装置及其操作方法
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN103514249A (zh) * 2013-06-20 2014-01-15 易乐天 一种数据自精简方法和***及存储装置
JP2014006807A (ja) * 2012-06-26 2014-01-16 Fujitsu Ltd 演算処理装置、キャッシュメモリ制御装置及びキャッシュメモリの制御方法
CN104094351A (zh) * 2012-01-31 2014-10-08 惠普发展公司,有限责任合伙企业 内存模块缓冲器数据存储
CN105845161A (zh) * 2015-02-04 2016-08-10 Hgst荷兰公司 用于减少数据存储***中的相邻轨道干扰效应的方法
CN106030501A (zh) * 2014-09-30 2016-10-12 株式会社日立制作所 分布式存储***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069299B2 (en) * 2008-06-30 2011-11-29 Intel Corporation Banded indirection for nonvolatile memory devices
CN106569742B (zh) * 2016-10-20 2019-07-23 华为技术有限公司 存储管理方法及存储设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN101930404A (zh) * 2010-08-27 2010-12-29 威盛电子股份有限公司 存储装置及其操作方法
CN104094351A (zh) * 2012-01-31 2014-10-08 惠普发展公司,有限责任合伙企业 内存模块缓冲器数据存储
JP2014006807A (ja) * 2012-06-26 2014-01-16 Fujitsu Ltd 演算処理装置、キャッシュメモリ制御装置及びキャッシュメモリの制御方法
CN103514249A (zh) * 2013-06-20 2014-01-15 易乐天 一种数据自精简方法和***及存储装置
CN106030501A (zh) * 2014-09-30 2016-10-12 株式会社日立制作所 分布式存储***
CN105845161A (zh) * 2015-02-04 2016-08-10 Hgst荷兰公司 用于减少数据存储***中的相邻轨道干扰效应的方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018072420A1 (zh) * 2016-10-20 2018-04-26 华为技术有限公司 存储管理方法及存储设备
CN108196980A (zh) * 2017-12-28 2018-06-22 深圳市得微电子有限责任公司 误删除数据恢复方法、闪存设备及计算机可读存储介质
CN110703992A (zh) * 2019-09-20 2020-01-17 上海新储集成电路有限公司 一种加快机械硬盘读写速度的方法及***
CN110928495A (zh) * 2019-11-12 2020-03-27 杭州宏杉科技股份有限公司 一种在多控存储***上的数据处理方法及装置
CN110928495B (zh) * 2019-11-12 2023-09-22 杭州宏杉科技股份有限公司 一种在多控存储***上的数据处理方法及装置
US11527301B2 (en) 2020-04-01 2022-12-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
WO2021196623A1 (zh) * 2020-04-01 2021-10-07 长鑫存储技术有限公司 读写方法及存储器装置
US11869615B2 (en) 2020-04-01 2024-01-09 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11881240B2 (en) 2020-04-01 2024-01-23 Changxin Memory Technologies, Inc. Systems and methods for read/write of memory devices and error correction
US11886287B2 (en) 2020-04-01 2024-01-30 Changxin Memory Technologies, Inc. Read and write methods and memory devices
US11894088B2 (en) 2020-04-01 2024-02-06 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11899971B2 (en) 2020-04-01 2024-02-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11914479B2 (en) 2020-04-01 2024-02-27 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11922023B2 (en) 2020-04-01 2024-03-05 Changxin Memory Technologies, Inc. Read/write method and memory device
CN113312443A (zh) * 2021-05-06 2021-08-27 天津大学深圳研究院 一种基于新型存储器的存储内检索与查表构建方法

Also Published As

Publication number Publication date
WO2018072420A1 (zh) 2018-04-26
CN106569742B (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
CN106569742A (zh) 存储管理方法及存储设备
US11169745B1 (en) Exporting an address space in a thin-provisioned storage device
CN108572792B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
US20140122781A1 (en) Hierarchical flash translation layer
US20130124785A1 (en) Data deleting method and apparatus
AU2016394896B2 (en) Method for deduplication in storage system, storage system, and controller
CN104484283B (zh) 一种降低固态硬盘写放大的方法
US10303374B2 (en) Data check method and storage system
US10621085B2 (en) Storage system and system garbage collection method
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
CN103744611A (zh) 基于固态硬盘为缓存的计算机***及缓存加速方法
CN102591790B (zh) 基于固态硬盘的数据存储快照实现方法及固态硬盘
US9983826B2 (en) Data storage device deferred secure delete
CN103543955A (zh) 利用固态硬盘作为设备读缓存的方法、***及固态硬盘
CN103677670A (zh) 读数据的方法及装置
CN105335308A (zh) 对存储设备的访问信息处理方法和装置、***
WO2020192710A1 (zh) 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
US8549223B1 (en) Systems and methods for reclaiming storage space on striped volumes
KR20210076828A (ko) 키-값 장치 및 이의 블록 인터페이스 에뮬레이션 방법
CN104408126B (zh) 一种数据库的持久化写入方法、装置和***
CN104050014A (zh) 基于虚拟化平台的高效存储管理方法
CN107273306A (zh) 一种固态硬盘的数据读取、数据写入方法及固态硬盘
CN103064926B (zh) 数据处理方法和装置
CN103744718A (zh) 实现虚拟桌面的方法及其***
US20210081126A1 (en) Method and apparatus for performing data-accessing management in a storage server

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