CN110018966A - 一种存储器、存储***、主机及数据操作、垃圾回收方法 - Google Patents
一种存储器、存储***、主机及数据操作、垃圾回收方法 Download PDFInfo
- Publication number
- CN110018966A CN110018966A CN201810020423.8A CN201810020423A CN110018966A CN 110018966 A CN110018966 A CN 110018966A CN 201810020423 A CN201810020423 A CN 201810020423A CN 110018966 A CN110018966 A CN 110018966A
- Authority
- CN
- China
- Prior art keywords
- memory
- host
- data
- storage
- logic
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 177
- 238000003860 storage Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000010813 municipal solid waste Substances 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000013507 mapping Methods 0.000 claims description 22
- 238000005299 abrasion Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 8
- 239000007787 solid Substances 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000011067 equilibration Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000007789 sealing Methods 0.000 claims description 2
- 238000002955 isolation Methods 0.000 abstract description 3
- 230000001151 other effect Effects 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000003321 amplification Effects 0.000 description 5
- 238000003199 nucleic acid amplification method Methods 0.000 description 5
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002224 dissection Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
一种存储器、存储***、主机及数据操作、垃圾回收方法,所述存储***包括存储器和主机,所述存储器包括:管理单元,用于实现与存储介质相关的处理逻辑;基于对象的访问接口,供主机通过所述访问接口对所述存储器执行对象操作;所述主机包括:存储控制单元,用于实现与数据布局相关的存储逻辑,通过所述基于对象的访问接口执行对象操作。本申请还提供了相应的数据操作和垃圾回收方法,本申请可以达到降低成本,保证性能的一致性,隔离IO资源等效果,适合于在数据中心等应用场景使用。
Description
技术领域
本申请涉及但不限于存储技术,更具体地,涉及一种存储器、存储***、主机及数据操作、垃圾回收方法。
背景技术
固态硬盘(SSD:Solid State Drives)是用固态电子存储芯片阵列而制成的硬盘,主要由控制器和闪存(Flash)芯片组成,控制器运行固件(Firmware)实现各种处理逻辑。NVMe SSD是一种标准SSD产品形态,NVMe(Non-volatile Memory Express)是一种为非易失介质定义的接口技术。Flash分NAND Flash和NOR Flash,NOR Flash的存储内容以编码为主,NAND Flash主要功能是存储资料。在大容量存储领域,SSD一般选择NAND Flash。NANDFlash以物理页(page)为单位写入,以擦除块(erase Block)为单位擦除。
NVMe SSD对外体现逻辑块设备接口,NVMe SSD内部维护大量的内存数据,以实现复杂的映射操作逻辑,该逻辑称之为闪存映射表(FTL)。FTL用于将NAND Flash的物理页地址(PPA:Pphysical Page Address)转换成存储***使用的逻辑区块地址(LBA,LogicalBlock Address),以与传统的磁盘接口兼容。所有数据在SSD内部采用追加写(AppendWrite)的方式在NAND Flash中进行记录,不能在Page内部实现原地写(overwrite),因此NVMe SSD内部通过log-structured的方式对数据进行组织。
追加写带来了垃圾回收(Garbage Collection)问题,该垃圾回收机制由SSD内部控制器上运行的固件控制,对上层应用透明。另外,Flash具有一定的擦写次数限制,因此通过内部的磨损平衡(Wear leveling)方式均衡使用寿命,最大化Flash的使用年限。除了上述NVMe SSD要实现的处理逻辑还包括坏块管理(Bad block mgnr)、命令处理(Commander)、日志管理(Journal)、非易失性内存(NVRAM:Non-Volatile RAM)管理、闪存通道控制器(FCC:Flash Channel Controller)、独立磁盘冗余阵列(RAIN:Redundant Array ofIndependent NAND)、IO调度(IO Scheduler)、资源分配(Allocator)、磨损均衡、低密度奇偶校验码(LDPC:Low Density Parity Check Code)编解码等等,而与数据布局相关的存储逻辑包括地址映射和垃圾回收。NVMe SSD的内部逻辑如图1所示,存储***采用LBA的接口方式对SSD进行访问。
SSD内部的复杂处理逻辑导致其至少存在如下几个方面的问题:
成本高:SSD内部采用大量内存存放映射表,增加了成本。另外,垃圾回收的前提是要提供空闲区域来拷贝,很多SSD内部有大量的预留存储空间(OP,Over Provisioning),通常OP在20%以上。OP越大,垃圾回收就会越快,相应写放大会变小。但OP过大浪费成本。
性能一致性差:由于SSD内部存在复杂的垃圾回收机制,在内部形成了IO背景噪声,对正常的业务IO流造成影响,导致性能抖动,一致性变差。
IO隔离性差:写入SSD的数据流需要在内部缓存进行聚合,聚合完成之后写入NANDFlash,采用这种方式导致不同业务的IO流混合存储在Flash Page页中。不同业务的数据具有不同的生命周期,混合存储的方式直接导致垃圾回收过程写放大(WA:Writeamplification)增大,并且很难做到针对不同类型IO的服务质量(QoS)。
以SSD在大规模数据中心的应用为例,SSD的成本、性能一致性、IO隔离性是重要的需求,标准NVMe SSD很难满足这方面的要求。
在相关技术中,提出了一种开放通道SSD(Open Channel SSD),其思路是将SSD内部的大量处理逻辑放置到存储软件层来实现,如磨损平衡(Wear level)、IO调度、物理资源分配(Allocator)等。Open Channel SSD将SSD内部的erase Block、Page等暴露给了存储***,存储***使用软件的手段直接操作这些硬件资源,并以PPA的接口方式对SSD进行访问。这增加了存储软件的开发以及后期维护的复杂度,甚至软件需要适配不同的NAND Flash介质。Open-Channel SSD及存储***的内部逻辑如图2所示。
发明内容
本发明实施例提供了一种存储器,包括:
存储介质,包括多个物理存储单元;
管理单元,用于实现与所述存储介质相关的处理逻辑;
基于对象的访问接口,供主机通过所述访问接口对所述存储器执行对象操作。
本发明实施例还提供了一种存储***,包括存储器和主机,其中:
所述存储器包括:
存储介质,包括多个物理存储单元;
管理单元,用于实现与所述存储介质相关的处理逻辑;
基于对象的访问接口,供主机通过所述访问接口对所述存储器执行对象操作;
所述主机包括:
存储控制单元,用于实现与数据布局相关的存储逻辑,通过所述基于对象的访问接口执行对象操作。
本发明实施例还提供了一种主机,包括:
存储控制单元,用于实现与数据布局相关的存储逻辑,通过存储器提供的基于对象的访问接口执行对象操作;
驱动单元,用于实现存储器驱动功能。
上述实施例方案将存储器与主机存储软件的特性充分结合,通过软硬件协同,在不给主机增加过多负担的情况下,可以达到降低成本,保证性能的一致性,隔离IO资源中的至少一种效果,适合于在数据中心等应用场景,满足这些应用场景对新型存储介质的需求。
本发明实施例还提供了一种数据操作方法,包括以下的写数据过程:
主机根据逻辑地址与对象空间之间的映射关系,将写数据的逻辑地址转换为对象空间,所述对象空间用包括对象标识的信息表示,所述对象是存储器对外提供的逻辑存储单元;
所述主机通过基于对象的访问接口向存储器发送对象写指令以实现以追加写的方式向所述对象写数据,所述对象写指令携带所述对象标识。
本发明实施例还提供了一种垃圾回收方法,包括:
主机通过基于对象的访问接口向存储器发送对象读指令,将待回收的对象中的有效数据读入所述主机的内存;
所述主机通过所述基于对象的访问接口向所述存储器发送对象写指令,将读入内存的所述有效数据写入到新的对象中;
其中,所述对象是存储器对外提供的逻辑存储单元,所述对象读指令和对象写指令中携带要操作的对象的对象标识。
本发明实施例还提供了一种数据操作方法,包括以下的写数据过程:
存储器接收主机发送的写对象指令,所述写对象指令包含数据要写入的对象的对象标识,所述对象是存储器对外提供的逻辑存储单元;
所述存储器查找对象与物理存储单元之间的对应关系,在所述对象对应的物理存储单元写入数据。
上述实施例中,主机对存储器提供的对象进行操作,且数据操作的地址映射和垃圾回收在主机侧实现,可以达到降低成本,保证性能的一致性,隔离IO资源中的至少一种效果。
附图说明
图1是标准NVMe SSD内部逻辑及接口的示意图;
图2是Open Channel SSD和主机存储软件之间的界面划分和接口的示意图;
图3是本发明实施例一存储***架构的示意图;
图4是本发明实施例二一个示例性的Object SSD和主机存储软件之间的界面划分和接口的示意图;
图5是Object与Object SSD之间的关系的示意图;
图6是Object、chunk和erase Block之间的关系的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
本实施例对主机和存储器的访问界面重新进行了定义,将存储器内部与数据布局相关的存储逻辑从存储器固件转移至主机的软件协议栈中。存储器中不存在复杂的FTL映射表,也不存在与此相关的垃圾回收(Garbage Collection)过程。在这种软硬件分层的接口中,对象(Object)是存储器的基本操作单元。本实施例的存储器以SSD为例,可以是对标准NVMe SSD进行改进得到的基于对象的SSD,且在本文中,将本申请的SSD称之为ObjectSSD。
本实施例提出了一种新的存储***,包括存储器10和主机20,如图3所示,
所述存储器10包括:
存储介质105,包括多个物理存储单元;
管理单元103,用于实现与所述存储介质相关的处理逻辑;
基于对象的访问接口101,供主机通过所述访问接口对所述存储器执行对象操作;
所述主机20包括:
存储控制单元201,用于实现与数据布局相关的存储逻辑,通过所述基于对象的访问接口执行对象操作;
驱动单元203,用于实现存储器驱动功能。
本申请中,数据布局是在理解数据语义的前提下选择数据放置方式的过程。
本实施例的存储器中,存储介质可以是NAND Flash,管理单元可以用SSD中的控制芯片运行固件来实现。主机中的存储控制单元可以用CPU运行相应的存储软件来实现。存储软件可以是文件***的软件,也可以是应用层软件。应用层软件可以利用上述访问接口实现对对象的数据操作和管理。
本实施例中,
所述管理单元实现的处理逻辑包括以下一种或多种:磨损平衡、IO调度、IO控制器、坏块管理、日志管理、非易失性内存管理、独立磁盘冗余阵列、编解码、闪存通道控制器。
本实施例中,
所述对象是所述存储器对外提供的逻辑存储单元,一个对象对应于一个或多个物理存储单元。
本实施例中,
所述管理单元实现的处理逻辑包括:管理对象,维护对象与物理存储单元之间的对应关系以实现逻辑存储空间与物理存储空间之间的映射,所述逻辑存储空间使用包括对象标识的信息表示,所述物理存储空间使用包括物理存储单元标识的信息表示。
本实施例中,
所述管理单元实现的处理逻辑包括:
解析和处理主机发送的读对象指令,查找所述对象读指令中指定对象对应的物理存储单元,从查找到的物理存储单元上读取数据;
解析和处理主机发送的对象写指令,查找所述对象写指令中指定对象对应的物理存储单元,向查找到的物理存储单元写入数据。
上述指定对象可以通过指令中的对象标识来确定,在需要确定在对象内部读、写数据的具***置时,可以使用偏移量来指示。
本实施例中,
所述管理单元实现的处理逻辑包括以下至少一种:
解析和处理主机发送的创建对象指令,创建对象,为创建的对象分配物理存储单元,记录创建的对象与分配的物理存储单元之间的对应关系;
解析和处理主机的删除对象指令,删除所述删除对象指令中的指定对象;
解析和处理主机的封存对象指令,将所述封存对象指令中指定对象的数据设置成只读模式;
解析和处理主机的对象查询指令,查询所述对象查询指令中指定对象的信息并返回给所述主机。
本实施例中,
所述存储器为固态硬盘,一个物理存储单元包括多个擦除块。
本实施例中,
所述存储控制单元实现的存储逻辑包括以下一种或多种:
地址映射,用于维护存储***的逻辑地址与对象空间之间的映射关系,实现所述逻辑地址与对象空间之间的转换;
垃圾回收,用于通过对对象的读操作和写操作,将待回收的对象上的有效数据迁移到新的对象上,再对所述待回收的对象进行资源回收。
本实施例中,
所述对象操作包括以下至少一种:
对象写,用于以追加写的方式向指定对象写入数据;
对象读,用于读取指定对象中的数据;
封存对象,用于将指定对象的数据设置成只读模式;
创建对象,用于创建新的对象;
删除对象,用于删除指定对象;
对象查询,用于查询指定对象的信息。
传统NVMe SSD基于FTL构造独立于物理擦除块(erase Block)的逻辑区块(BLOCK),存储***是以原地写的方式对BLOCK进行写操作。而本实施例的Object SSD将底层的物理资源以对象的方式对外进行了暴露,存储***是以追加写的方式对对象进行写操作。在垃圾回收的时候,可以以Object为单位进行回收,但本申请不局限于此。
上述实施例将Object提供给主机之后,数据在Object中的布局交由上层软件处理,Object SSD无需实现LBA与PPA的映射和转换,去除了标准NVMe SSD中复杂的FTL映射表,减少了Object SSD中的内存占用量,简化了SSD的设计,降低了成本。同样,SSD内部的垃圾回收机制也将不复存在,无需进行后台的垃圾数据整理与回收。另外,由于Object SSD不存在垃圾回收过程,不需在内部进行数据迁移,因而不需要预留大量的存储空间,从而降低了OP,提升了SSD的空间利用率,降低了SSD的成本。
本实施例中,由于与对象上数据布局相关的存储逻辑由上层存储***来实现,在Object SSD上可以达到最佳数据布局,例如可以通过数据调度,将不同类型的数据(如分为冷数据、热数据)分别存储到不同的Object中,最大程度的优化垃圾回收机制。并且垃圾回收过程通过存储***来完成。避免了标准NVMe SSD中不同业务数据在存储介质中混布,引入写放大以及IO质量问题。Object SSD这种软硬件分层以及接口方式,天然为应用提供了最佳的数据布局方式,减小写放大,提升IO质量。
和Open-Channel SSD相比,Object SSD没有将与NAND Flash相关的属性暴露给存储软件***。存储软件使用Object SSD时无需关心具体的存储介质,大大降低了主机端软件的复杂度。Object SSD将与NAND Flash介质相关的处理逻辑通过固件完成,将与对象上数据布局相关的存储逻辑在存储***的软件协议栈中实现。使得软硬件即协同配合,又互相独立,并且也能起到存储软件直接控制底层物理资源的目的。
实施例二
本实施例提供了一种更为合理的SSD固件与主机端存储软件之间的界面切分方式,SSD固件与存储软件之间的接口与NVMe标准兼容,可以作为NVMe标准接口的一种扩展形式。
本实施例一个示例性的Object SSD和存储软件之间的界面划分和接口的示意图如图4所示,存储软件实现与数据布局相关的存储逻辑,包括但不限于地址映射和垃圾回收。在Object SSD上实现与存储介质(NAND flash)相关的处理逻辑,Object SSD提供基于对象的访问接口,该接口对外暴露的是对象,并提供使用操作对象的方法,如可以进行对象读、对象写、创建对象、删除对象、封存对象,进行对象信息的查询等等,以实现对象的能力即物理资源管理。
如图4所示,Object SSD实现的处理逻辑包括:
NVMe命令解析处理,解析处理标准的NVMe命令,存储软件通过标准的NVMe驱动命令对Object SSD进行操作;同时可以解析和处理对象操作的指令。
坏块管理,维护与管理***中的Bad Block。
资源分配与管理,为对象分配物理存储单元,管理对象及对象与物理存储单元之间的对应关系。
RAIN,在NAND Flash颗粒之间建立数据冗余,保证数据在NAND Flash中存储的可靠性。
磨损均衡机制,通过磨损均衡的方式平衡NAND Flash的使用寿命,磨损均衡分为静态磨损均衡和动态磨损均衡两种。
LDPC编解码,数据通过LDPC编码的方式存储到NAND Flash中,数据的译码分为硬件LDPC和软件LDPC两种方式。
温度控制,通过温度负反馈的方式对SSD的温度进行动态调整,确保温度不会超过阈值。
NVRAM管理。为了降低写延迟,数据写至SSD内部的NVRAM,另外,NVMe SSD内部的元数据需要在NVRAM中聚合,而Object SSD因为需要使用的元数据很少,NVRAM可以很小,在有些应用场景下可以不需要非易失内存的支持。
Journal,SSD内部元数据的更新采用日志(Journal)更新的方式。
IO调度,通过调度保证IO的质量,采用Erase Suspend等命令最优化NAND Flash的访问延迟。该IO调度机制可以通过Tag等方式与主机端存储软件进行互动,确保IO请求的质量。
其他的还包括FCC等,不再一一说明。
本示例中,一个Object SSD可以看成是Object的集合,存储***通过操作Object的方式实现数据读写。Object与Object SSD之间的关系如图5所示,Object SSD将NANDFlash的物理空间以对象方式暴露给存储***。对外呈现为一系列的Object,每个Object是一个只能进行Append Write的物理空间。在SSD内部,一个Object对应到一个或多个物理存储单元,本申请也将该物理存储单元称为chunk,chunk是SSD内部实际的物理资源。一个chunk通常由多个NAND Flash的erase Block构成。如图6所示,一个Object对应一个或多个chunk,而一个chunk包括多个erase Block,在创建新的Object时,要为该新的Object分配一个或多个chunk,并且记录该新的Object与分配的chunk之间的对应关系,这种对象关系体现了对象空间与物理空间的映射关系。本示例Object对应的chunk的大小和/或数量可以变化的,例如,在NAND Flash中坏块出现的情况下,chunk的大小可变,此时Object的大小会出现有规则的变化。
本实施例中,在Object SSD中,Object的大小在128MB以上。由于Object的容量比较大,因此面向Object的映射表占据的内存容量比较小。也可以将大块的数据块向下写,数据不需要在内存中聚合,减少了对SSD内部内存的需求。本实施例的存储软件直接架构在对象之上,在对象内部实现LBA至PPA的映射,即映射关系由Host来决定与维护。GC等垃圾回收逻辑同样在Host端实现。
本示例中,可以对对象执行读、写、创建、删除、封存和查询等操作,这些操作的命令接口可以通过对目前标准的NVMe进行扩展(如由厂商自定义),定义相应的对象接口函数而得到支持。而Object SSD固件内部需要支持所述命令(文中也称为指令)。
本实施例基于对象的访问接口可以实现的对象操作包括:
对象读,对指定对象进行数据读操作,输入参数可以包括对象标识(ID)、对象内偏移量、读内存地址以及数据长度。
对象写,对指定对象进行数据写操作,输入参数可以包括对象ID、对象内偏移量、写内存地址以及数据长度。
创建对象,创建一个对象,SSD针对该操作返回的响应中可包含成功创建的对象的Object ID。
删除对象指令,删除一个指定对象,输入参数可以包括对象ID。
封存对象指令,将指定对象内部的数据设置成只读模式,输入参数可以包括对象ID。
对象查询指令。获取指定对象的信息如属性,在不指定对象时,获得Object SSD内部已创建的对象的汇总信息。
上述指令中的指定对象通过Object标识指示。
本实施例将SSD与存储***的特性充分结合,通过软硬件协同降低成本,保证性能的一致性,隔离IO资源。特别适合于作为一种新型的存储部件应用到数据中心等应用场景,通过这种SSD降低数据中心的存储成本,并且优化IO质量。
实施例三
本实施例基于实施例一的存储***,提出该存储***上实现的相应方法,包括数据操作方法、垃圾回收方法和对象管理方法。在没有相反说明的情况下,本实施例的SSD指Object SSD。
本实施例主机侧的数据操作方法,包括以下的写数据过程:
主机根据逻辑地址与对象空间之间的映射关系,将写数据的逻辑地址转换为对象空间,所述对象空间用包括对象标识的信息表示,所述对象是存储器对外提供的逻辑存储单元;
所述主机通过基于对象的访问接口向存储器发送对象写指令以实现以追加写的方式向所述对象写数据,所述对象写指令携带所述对象标识。
本实施例中,
所述数据操作方法还包括以下的读数据过程:
主机根据逻辑地址与对象空间之间的映射关系,将读数据的逻辑地址转换为对象空间;
所述主机通过基于对象的访问接口向存储器发送对象读指令,所述对象读指令携带所述对象标识。
本实施例中,
所述数据操作方法还包括以下的封存数据过程:
所述主机通过基于对象的访问接口向存储器发送封存对象指令,指示存储器将指定对象的数据设置为只读模式。
本实施例还提供了一种主机侧实现的垃圾回收方法,包括:
主机通过基于对象的访问接口向存储器发送对象读指令,将待回收的对象中的有效数据读入所述主机的内存,所述对象是存储器对外提供的逻辑存储单元;
所述主机通过所述基于对象的访问接口向所述存储器发送对象写指令,将读入内存的所述有效数据写入到新的对象中;
其中,所述对象是存储器对外提供的逻辑存储单元,所述对象读指令和对象写指令中携带要操作的对象的对象标识。
本实施例中,
所述主机向所述存储器发送对象写指令之后,所述方法还包括:
所述主机在写入完成后,通过所述基于对象的访问接口向所述存储器发送删除对象指令,指示所述存储器删除所述待回收的对象。
在删除成功后,所述主机可以更新维护的逻辑地址与对象空间之间的映射关系,将与所述待回收的对象相关的映射关系删除。
本实施例还提供了一种主机侧的对象管理方法,包括以下的对象创建过程:
主机通过基于对象的访问接口向存储器发送创建对象指令,所述对象是存储器对外提供的逻辑存储单元;
所述主机接收所述存储器返回的创建成功响应,所述创建成功响应中包含创建成功的对象的标识信息。
本实施例中,
所述主机接收到创建成功响应后,还添加与所述创建成功的对象相关的对象空间与逻辑地址之间的映射关系。
本实施例中,
所述方法还包括以下的对象删除过程:
所述主机通过所述基于对象的访问接口向存储器发送删除对象指令,指示存储器删除指定对象;
所述主机接收所述存储器返回的删除成功响应后,删除与所述指定对象相关的对象空间与逻辑区块地址之间的映射关系。
本实施例中,
所述方法还包括以下的对象查询过程:
所述主机通过基于对象的访问接口向存储器发送对象查询指令,指示所述存储器查询指定对象的信息;
所述主机接收所述存储器返回的对象查询响应,获取所述指定对象的信息,所述对象的信息可以包括对象属性,如对象的大小等。
本实施例还提供了一种存储器侧的数据操作方法,包括以下的写数据过程:
存储器接收主机发送的写对象指令,所述写对象指令包含数据要写入的对象的对象标识,所述对象是存储器对外提供的逻辑存储单元;
所述存储器查找对象与物理存储单元之间的对应关系,在所述对象对应的物理存储单元写入数据。
本实施例中,
所述方法还包括以下的读数据过程:
所述存储器接收主机发送的读对象指令,所述读对象指令包含待读取数据所在对象的对象标识;
所述存储器查找对象与物理存储单元之间的对应关系,从所述对象对应的物理存储单元读取数据。
本实施例中,
所述方法还包括以下的封存数据过程:
所述存储器接收主机发送的对象封存指令,所述对象封存指令包含指定对象的对象标识;
所述存储器将所述指定对象的数据设置为只读模式。
本实施例还提供了一种存储器侧的对象管理方法,包括以下的对象创建过程:
存储器接收主机发送的创建对象指令,所述对象是存储器对外提供的逻辑存储单元;
所述存储器创建对象,为创建的对象分配物理存储单元,并记录所述创建的对象与分配的物理存储单元之间的对应关系;
所述存储器将所述创建的对象的信息返回给所述主机。
本实施例中,
所述方法还包括以下的对象删除过程:
所述存储器接收主机发送的删除对象指令,所述删除对象指令包含指定对象的对象标识;
所述存储器删除所述指定对象,
删除对象后,还可进一步删除所述指定对象与物理存储单元之间的对应关系,但也可以集中对已删除对象相关的对应关系进行清理。
本实施例中,
所述方法还包括以下对象查询过程:
所述存储器接收主机发送的对象查询指令,所述对象查询指令包含指定对象的标识信息;
所述存储器获取所述指定对象的信息并返回给所述主机;或者
所述存储器接收主机发送的对象查询指令,所述存储器获取已创建的对象的信息并返回给所述主机。
本实施例还提供了一种主机,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本实施例主机侧的方法的处理。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (24)
1.一种存储器,包括:
存储介质,包括多个物理存储单元;
管理单元,用于实现与所述存储介质相关的处理逻辑;
基于对象的访问接口,供主机通过所述访问接口对所述存储器执行对象操作。
2.如权利要求1所述的存储器,其特征在于:
所述管理单元实现的处理逻辑包括以下一种或多种:磨损平衡、IO调度、IO控制器、坏块管理、日志管理、非易失性内存管理、独立磁盘冗余阵列、编解码、闪存通道控制器。
3.如权利要求1所述的存储器,其特征在于:
所述对象是所述存储器对外提供的逻辑存储单元,一个对象对应于一个或多个物理存储单元。
4.如权利要求3所述的存储器,其特征在于:
所述管理单元实现的处理逻辑包括:管理对象,维护对象与物理存储单元之间的对应关系以实现逻辑存储空间与物理存储空间之间的映射,所述逻辑存储空间使用包括对象标识的信息表示,所述物理存储空间使用包括物理存储单元标识的信息表示。
5.如权利要求4所述的存储器,其特征在于:
所述管理单元实现的处理逻辑包括:
解析和处理主机发送的读对象指令,查找所述对象读指令中指定对象对应的物理存储单元,从查找到的物理存储单元上读取数据;
解析和处理主机发送的对象写指令,查找所述对象写指令中指定对象对应的物理存储单元,向查找到的物理存储单元写入数据。
6.如权利要求4所述的存储器,其特征在于:
所述管理单元实现的处理逻辑包括以下至少一种:
解析和处理主机发送的创建对象指令,创建对象,为创建的对象分配物理存储单元,记录创建的对象与分配的物理存储单元之间的对应关系;
解析和处理主机的删除对象指令,删除所述删除对象指令中的指定对象;
解析和处理主机的封存对象指令,将所述封存对象指令中指定对象的数据设置成只读模式;
解析和处理主机的对象查询指令,查询所述对象查询指令中指定对象的信息并返回给所述主机。
7.如权利要求1-6中任一所述的存储器,其特征在于:
所述存储器为固态硬盘,一个物理存储单元包括多个擦除块。
8.一种存储***,包括存储器和主机,其特征在于:
所述存储器包括:
存储介质,包括多个物理存储单元;
管理单元,用于实现与所述存储介质相关的处理逻辑;
基于对象的访问接口,供主机通过所述访问接口对所述存储器执行对象操作;
所述主机包括:
存储控制单元,用于实现与数据布局相关的存储逻辑,通过所述基于对象的访问接口执行对象操作。
9.如权利要求8所述的存储***,其特征在于:
所述存储控制单元实现的存储逻辑包括以下一种或多种:
地址映射,用于维护存储***的逻辑地址与对象空间之间的映射关系,实现所述逻辑地址与对象空间之间的转换;
垃圾回收,用于通过对对象的读操作和写操作,将待回收的对象上的有效数据迁移到新的对象上,再对所述待回收的对象进行资源回收。
10.如权利要求8所述的存储***,其特征在于:
所述对象是所述存储器对外提供的逻辑存储单元,一个对象对应于一个或多个物理存储单元。
11.如权利要求8所述的存储***,其特征在于:
所述管理单元实现的所述处理逻辑包括:管理对象,维护对象与物理存储单元之间的对应关系以实现逻辑存储空间与物理存储空间之间的映射,所述逻辑存储空间使用包括对象标识的信息表示,所述物理存储空间使用包括物理存储单元标识的信息表示。
12.如权利要求8所述的存储***,其特征在于:
所述管理单元实现的所述处理逻辑包括以下一种或多种:磨损平衡、IO调度、IO控制器、坏块管理、日志管理、非易失性内存管理、独立磁盘冗余阵列、编解码、闪存通道控制器。
13.如权利要求8-12中任一所述的存储***,其特征在于:
所述对象操作包括以下至少一种:
对象写,用于以追加写的方式向指定对象写入数据;
对象读,用于读取指定对象中的数据;
封存对象,用于将指定对象的数据设置成只读模式;
创建对象,用于创建新的对象;
删除对象,用于删除指定对象;
对象查询,用于查询指定对象的信息。
14.如权利要求8-12中任一所述的存储***,其特征在于:
所述存储器为固态硬盘,一个物理存储单元包括多个擦除块。
15.一种主机,包括:
存储控制单元,用于实现与数据布局相关的存储逻辑,通过存储器提供的基于对象的访问接口执行对象操作;
驱动单元,用于实现存储器驱动功能。
16.如权利要求15所述的主机,其特征在于:
所述存储控制单元实现的存储逻辑包括以下至少一种:
地址映射,用于维护存储***的逻辑地址与对象空间之间的映射关系,实现所述逻辑地址与对象空间之间的转换;
垃圾回收,用于通过对对象的读操作和写操作,将待回收的对象上的有效数据迁移到新的对象上,再对所述待回收的对象进行资源回收。
17.如权利要求15所述的主机,其特征在于:
所述对象是所述存储器对外提供的逻辑存储单元,一个对象对应于一个或多个物理存储单元。
18.如权利要求17所述的主机,其特征在于:
所述存储器为固态硬盘,一个物理存储单元包括多个擦除块。
19.如权利要求15-18中任一所述的主机,其特征在于:
所述对象操作包括以下至少一种:
对象写,用于以追加写的方式向指定对象写入数据;
对象读,用于读取指定对象中的数据;
封存对象,用于将指定对象的数据设置成只读模式;
创建对象,用于创建新的对象;
删除对象,用于删除指定对象;
对象查询,用于查询指定对象的信息。
20.一种数据操作方法,包括以下的写数据过程:
主机根据逻辑地址与对象空间之间的映射关系,将写数据的逻辑地址转换为对象空间,所述对象空间用包括对象标识的信息表示,所述对象是存储器对外提供的逻辑存储单元;
所述主机通过基于对象的访问接口向存储器发送对象写指令以实现以追加写的方式向所述对象写数据,所述对象写指令携带所述对象标识。
21.如权利要求18所述的数据操作方法,其特征在于:
所述数据操作方法还包括以下的读数据过程:
主机根据逻辑地址与对象空间之间的映射关系,将读数据的逻辑地址转换为对象空间;
所述主机通过基于对象的访问接口向存储器发送对象读指令,所述对象读指令携带所述对象标识。
22.一种垃圾回收方法,包括:
主机通过基于对象的访问接口向存储器发送对象读指令,将待回收的对象中的有效数据读入所述主机的内存;
所述主机通过所述基于对象的访问接口向所述存储器发送对象写指令,将读入内存的所述有效数据写入到新的对象中;
其中,所述对象是存储器对外提供的逻辑存储单元,所述对象读指令和对象写指令中携带要操作的对象的对象标识。
23.一种数据操作方法,包括以下的写数据过程:
存储器接收主机发送的写对象指令,所述写对象指令包含数据要写入的对象的对象标识,所述对象是存储器对外提供的逻辑存储单元;
所述存储器查找对象与物理存储单元之间的对应关系,在所述对象对应的物理存储单元写入数据。
24.如权利要求27所述的数据操作方法,其特征在于:
所述方法还包括以下的读数据过程:
所述存储器接收主机发送的读对象指令,所述读对象指令包含待读取数据所在的对象的对象标识;
所述存储器查找对象与物理存储单元之间的对应关系,从所述对象对应的物理存储单元读取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810020423.8A CN110018966A (zh) | 2018-01-09 | 2018-01-09 | 一种存储器、存储***、主机及数据操作、垃圾回收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810020423.8A CN110018966A (zh) | 2018-01-09 | 2018-01-09 | 一种存储器、存储***、主机及数据操作、垃圾回收方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110018966A true CN110018966A (zh) | 2019-07-16 |
Family
ID=67187859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810020423.8A Pending CN110018966A (zh) | 2018-01-09 | 2018-01-09 | 一种存储器、存储***、主机及数据操作、垃圾回收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110018966A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309645A (zh) * | 2020-03-12 | 2020-06-19 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及*** |
CN111930517A (zh) * | 2020-09-18 | 2020-11-13 | 北京中科立维科技有限公司 | 一种高性能自适应垃圾收集方法和计算机*** |
CN112333283A (zh) * | 2020-11-20 | 2021-02-05 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 自主高端存储阵列***架构 |
TWI718642B (zh) * | 2019-08-27 | 2021-02-11 | 點序科技股份有限公司 | 記憶體裝置管理方法及記憶體裝置管理系統 |
WO2021088587A1 (zh) * | 2019-11-08 | 2021-05-14 | 华为技术有限公司 | 数据访问方法、装置及存储介质 |
CN113076056A (zh) * | 2020-01-06 | 2021-07-06 | 华为技术有限公司 | 数据访问方法、硬盘和存储设备 |
CN113076264A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 一种内存管理方法及装置 |
CN113535092A (zh) * | 2021-07-20 | 2021-10-22 | 阿里巴巴新加坡控股有限公司 | 用于减少内存元数据的存储引擎、方法和可读介质 |
CN114237518A (zh) * | 2022-02-22 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、***、装置及终端 |
US12050539B2 (en) | 2019-11-08 | 2024-07-30 | Huawei Technologies Co., Ltd. | Data access method and apparatus and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104054071A (zh) * | 2012-12-14 | 2014-09-17 | 华为技术有限公司 | 访问存储设备的方法和存储设备 |
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid***及方法 |
CN105224474A (zh) * | 2014-06-03 | 2016-01-06 | 深圳市腾讯计算机***有限公司 | 固态硬盘闪存转换层的实现***和闪存转换层的实现装置 |
-
2018
- 2018-01-09 CN CN201810020423.8A patent/CN110018966A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104054071A (zh) * | 2012-12-14 | 2014-09-17 | 华为技术有限公司 | 访问存储设备的方法和存储设备 |
CN105224474A (zh) * | 2014-06-03 | 2016-01-06 | 深圳市腾讯计算机***有限公司 | 固态硬盘闪存转换层的实现***和闪存转换层的实现装置 |
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid***及方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI718642B (zh) * | 2019-08-27 | 2021-02-11 | 點序科技股份有限公司 | 記憶體裝置管理方法及記憶體裝置管理系統 |
WO2021088587A1 (zh) * | 2019-11-08 | 2021-05-14 | 华为技术有限公司 | 数据访问方法、装置及存储介质 |
US12050539B2 (en) | 2019-11-08 | 2024-07-30 | Huawei Technologies Co., Ltd. | Data access method and apparatus and storage medium |
CN113076264A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 一种内存管理方法及装置 |
CN113076056B (zh) * | 2020-01-06 | 2023-06-27 | 华为技术有限公司 | 数据访问方法、硬盘和存储设备 |
CN113076056A (zh) * | 2020-01-06 | 2021-07-06 | 华为技术有限公司 | 数据访问方法、硬盘和存储设备 |
WO2021139199A1 (zh) * | 2020-01-06 | 2021-07-15 | 华为技术有限公司 | 数据访问方法、硬盘和存储设备 |
CN111309645B (zh) * | 2020-03-12 | 2023-06-27 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及*** |
CN111309645A (zh) * | 2020-03-12 | 2020-06-19 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及*** |
CN111930517B (zh) * | 2020-09-18 | 2023-07-14 | 北京中科立维科技有限公司 | 一种高性能自适应垃圾收集方法和计算机*** |
CN111930517A (zh) * | 2020-09-18 | 2020-11-13 | 北京中科立维科技有限公司 | 一种高性能自适应垃圾收集方法和计算机*** |
CN112333283A (zh) * | 2020-11-20 | 2021-02-05 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 自主高端存储阵列***架构 |
CN113535092A (zh) * | 2021-07-20 | 2021-10-22 | 阿里巴巴新加坡控股有限公司 | 用于减少内存元数据的存储引擎、方法和可读介质 |
CN113535092B (zh) * | 2021-07-20 | 2024-05-17 | 阿里巴巴创新公司 | 用于减少内存元数据的存储引擎、方法和可读介质 |
CN114237518A (zh) * | 2022-02-22 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、***、装置及终端 |
CN114237518B (zh) * | 2022-02-22 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、***、装置及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110018966A (zh) | 一种存储器、存储***、主机及数据操作、垃圾回收方法 | |
US11989160B2 (en) | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device | |
US10474397B2 (en) | Unified indirection in a multi-device hybrid storage unit | |
US11573701B2 (en) | Memory device and host device | |
CN107787489B (zh) | 包括层级的文件存储*** | |
WO2017000658A1 (zh) | 存储***、存储管理装置、存储器、混合存储装置及存储管理方法 | |
KR102541492B1 (ko) | 다중 모드 동작들을 위해 다중 파티션을 포함하는 저장 장치, 및 그것의 동작 방법 | |
US8521949B2 (en) | Data deleting method and apparatus | |
CN103777905B (zh) | 一种软件定义的固态盘融合存储方法 | |
US8645614B2 (en) | Method and apparatus for managing data of flash memory via address mapping | |
KR102586805B1 (ko) | 저장 매체를 다중 모드로 동작시키는 관리 시스템, 그것을 포함하는 저장 시스템, 및 그것을 이용하여 저장 매체를 관리하는 방법 | |
US8589617B2 (en) | Write once recording device | |
US20170139838A1 (en) | Selective underlying exposure storage mapping | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件*** | |
CN112771493B (zh) | 将写入流分离到多个分区中 | |
JP2018041245A (ja) | ストレージ装置、及びストレージ制御装置 | |
CN104969170A (zh) | 层次化存储***、存储控制器以及代替层次间的数据移动的方法 | |
US11119912B2 (en) | Ordering data updates for improving garbage collection being performed while performing the set of data updates | |
CN107239526A (zh) | 文件***实现方法、碎片整理方法、操作位置定位方法 | |
KR20110005817A (ko) | 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법 | |
US8046391B2 (en) | Storage apparatus and its file control method and storage system | |
CN110312986A (zh) | 用于在固态设备上存储数据的流的机会性使用 | |
US20100131469A1 (en) | Storage management device and file deletion control method | |
KR101465426B1 (ko) | 익스텐트 매핑 플래시 디바이스 | |
KR100638638B1 (ko) | 플래시 메모리의 제어 방법 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010965 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |