CN107526548A - 多namespace的固态硬盘及数据删除方法与装置 - Google Patents
多namespace的固态硬盘及数据删除方法与装置 Download PDFInfo
- Publication number
- CN107526548A CN107526548A CN201710770900.8A CN201710770900A CN107526548A CN 107526548 A CN107526548 A CN 107526548A CN 201710770900 A CN201710770900 A CN 201710770900A CN 107526548 A CN107526548 A CN 107526548A
- Authority
- CN
- China
- Prior art keywords
- storage unit
- logic storage
- namespace
- solid state
- state hard
- 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
Links
- 239000007787 solid Substances 0.000 title claims abstract description 137
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012217 deletion Methods 0.000 claims abstract description 30
- 230000037430 deletion Effects 0.000 claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 4
- 239000010813 municipal solid waste Substances 0.000 description 4
- 238000011084 recovery Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多namespace的固态硬盘及数据删除方法与装置,固态硬盘的每个namespace包括若干逻辑存储单元集合,各个逻辑存储单元集合包括数目相同且地址连续的逻辑存储单元,每个namespace中的主机端逻辑存储单元的高地址对应固态硬盘逻辑存储单元的高地址。数据删除方法包括解析主机下发的删除指令,获得要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID;依据上述地址区间得到ID对应的namespace中的固态硬盘逻辑存储单元地址区间;对固态硬盘逻辑存储单元地址区间对应的逻辑存储单元执行数据删除流程。本发明提供的方案,可以解决传统数据删除方法无法对多namespace的固态硬盘进行数据删除的问题,从而提高固态硬盘的空间利用率与读写效率。
Description
技术领域
本发明涉及固态硬盘领域,特别是涉及一种多namespace的固态硬盘及数据删除方法与装置。
背景技术
固态硬盘在长期或大量的读写后,会产生磁盘碎片,影响固态硬盘的读写效率,因此需要对固态硬盘进行整理。然而主机的磁盘整理对固态硬盘并不适用,故只能通过trim指令通知固态硬盘某一段数据无效,固态硬盘会在闲时启动垃圾回收机制,回收这段数据所在的空间,这样,用户在向固态硬盘写入数据时,不用提前擦除固态硬盘上已保存的无效内容,从而提高固态硬盘的空间利用率与读写速度。
然而随着固态硬盘的容量越来越大、人们对读写速度的要求越来越高,技术人员为了提高固态硬盘的性能,如存储空间利用率与读写效率等,以LBA(Logical BlockAddress,逻辑区块地址)为单位,将固态硬盘的内存空间划分成若干个独立的逻辑空间,每个逻辑空间称为一个namespace,对于用户或主机端而言,每个namespace相当于一个独立的硬盘,其逻辑地址为从零开始的一段连续的范围。但在固态硬盘的内部实现中,每个namespace内包含若干LBA,这些LBA之间可能是连续的,也可能是不连续的。
在单个namespace的情况下,主机下发的trim指令中的LBA段与固态硬盘中的LBA段之间可以简单对应,通过偏移固态硬盘预留的LBA个数,将主机下发的删除指令中的LBA段转化为固态硬盘的LBA段,从而将主机下发的删除指令解析为固态硬盘可以执行的trim命令。但在多namespace的情况下,每个namespace内的LBA之间可能不是连续的,这导致单个namespace下的删除方式在多个namespace的情况下不再适用。
因此,如何提供一种能够解决上述技术问题的多namespace的固态硬盘及数据删除方法与装置是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种多namespace的固态硬盘及数据删除方法与装置,能够实现多个namespace的固态硬盘以及多namespace固态硬盘上的数据删除,提高固态硬盘的空间利用率及其读写效率。
为解决上述技术问题,本发明提供了一种多namespace的固态硬盘,每个namespace包括若干逻辑存储单元集合,各个所述逻辑存储单元集合分别包括数目相同且地址连续的若干逻辑存储单元,每个所述namespace中的主机端逻辑存储单元的高地址对应固态硬盘逻辑存储单元的高地址。
为解决上述技术问题,本发明还提供了一种多namespace固态硬盘的数据删除方法,基于上述多namespace的固态硬盘,包括:
收到主机下发的删除指令;
解析所述删除指令,获得要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID;
依据所述ID与所述主机端逻辑存储单元的地址区间得到所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
对所述固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程。
优选的,所述主机端逻辑存储单元的地址区间由主机端起始逻辑存储单元的单元号与逻辑存储单元数目表示。
优选的,所述依据所述ID与所述主机端逻辑存储单元的地址区间得到所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间的具体过程为:
以unit_num除start,所得的商表示所述起始逻辑存储单元所在的逻辑存储单元集合在所述namespace中的位置,所得的余数表示所述起始逻辑存储单元在所述逻辑存储单元集合中的位置,依据所述商和所述余数确定所述主机端起始逻辑存储单元在所述ID对应的namespace中的位置;所述主机端起始逻辑存储单元在所述ID对应的namespace中的位置之后的N个逻辑存储单元即为待删除的逻辑存储单元在所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
其中,所述unit_num表示逻辑存储单元集合中逻辑存储单元的数目,所述start表示主机端起始逻辑存储单元的单元号,所述N表示要删除的逻辑存储单元数目。
优选的,所述对所述固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程的具体过程为:
将所述主机端起始逻辑存储单元的单元号与所述逻辑存储单元数目代入连续段数计算关系式,得到所述固态硬盘上待删除的连续逻辑存储单元段的个数,每个所述连续逻辑存储单元段包括对应的一个逻辑存储单元集合中待删除的全部逻辑存储单元;其中,所述连续段数计算关系式为:
n=(N–start%unit_num+unit_num)/unit_num+1,
其中,n表示连续逻辑存储单元段的数目;
以所述连续逻辑存储单元段为单位对待删除的逻辑存储单元进行n次数据删除。
为解决上述技术问题,本发明还提供了一种多namespace固态硬盘的数据删除装置,基于上述多namespace的固态硬盘,包括:
指令接收模块,用于收到主机下发的删除指令;
指令解析模块,用于解析所述删除指令,获得要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID;
地址转换模块,用于依据所述ID与所述主机端逻辑存储单元的地址区间得到所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
指令执行模块,用于对所述固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程。
优选的,所述指令执行模块包括:
连续段数计算单元,用于将所述主机端起始逻辑存储单元的单元号与所述逻辑存储单元数目代入连续段数计算关系式,得到所述固态硬盘上待删除的连续逻辑存储单元段的个数,每个所述连续逻辑存储单元段包括对应的一个逻辑存储单元集合中待删除的全部逻辑存储单元;其中,所述连续段数计算关系式为:
n=(N–start%unit_num+unit_num)/unit_num+1,
其中,n表示连续逻辑存储单元段的数目;
数据删除单元,用于以所述连续逻辑存储单元段为单位对待删除的逻辑存储单元进行n次数据删除。
本发明提供了一种多namespace的固态硬盘及其数据删除方法,固态硬盘包括多个namespace,每个namespace包括若干逻辑存储单元集合,每个逻辑存储单元集合包括数目相同且地址连续的逻辑存储单元,每个namespace中的主机端逻辑存储单元的高地址对应固态硬盘逻辑存储单元的高地址,在对这种固态硬盘进行删除时,需将主机下发的删除指令进行解析,得到要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID,并将主机端逻辑存储单元的地址区间转化成namespace ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;对每个逻辑存储单元分别进行删除即可。因此,本发明提供的固态硬盘与数据删除方法,可以对多namespace的固态硬盘进行数据删除,使用户在向数据已经被删除的无效数据区写入数据时,不用先将无效数据区的无效数据删除,可以直接向该区域写入数据,从而解决传统单namespace的数据删除方法无法对多namespace的固态硬盘进行删除的问题,提高固态硬盘的空间利用率与读写效率。本发明还提供一种多namespace的固态硬盘的数据删除装置,具有同样的技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种多namespace的固态硬盘的一种具体实施方式中的结构示意图;
图2为本发明提供的一种多namespace固态硬盘的数据删除方法的流程图;
图3为本发明提供的一种多namespace固态硬盘的数据删除方法的一种具体实施方式的流程图;
图4为本发明提供的一种多namespace固态硬盘的数据删除装置的结构示意图。
具体实施方式
本发明的核心是提供一种多namespace的固态硬盘及数据删除方法与装置,能够实现多个namespace的固态硬盘以及多namespace固态硬盘上的数据删除,提高固态硬盘的空间利用率及其读写速度。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种多namespace的固态硬盘,每个namespace包括若干逻辑存储单元集合,各个逻辑存储单元集合分别包括数目相同且地址连续的若干逻辑存储单元,每个namespace中的主机端逻辑存储单元的高地址对应固态硬盘逻辑存储单元的高地址。
请结合图1,图1所示为本发明提供的一种多namespace的固态硬盘的一种具体实施方式中的结构示意图。在这种实施方式中,固态硬盘中包括二十个逻辑存储单元LBA0~LBA19,其中逻辑存储单元LBA0~LBA4为第一逻辑存储单元集合LBA unit0,逻辑存储单元LBA5~LBA9为第二逻辑存储单元集合LBA unit1,逻辑存储单元LBA10~LBA14为第三逻辑存储单元集合LBA unit2,逻辑存储单元LBA15~LBA19为第四逻辑存储单元集合LBAunit3;LBA unit0与LBA unit2为namespace0,LBA unit1与LBA unit3为namespace1。上述固态硬盘在保存主机写入到一个namespace的数据时,主机端保存数据的高地址也对应固态硬盘上对应namespace中保存数据的高地址,比如,主机将数据写入固态硬盘中的namespace0,主机端逻辑存储单元为LBA4~LBA7,对应的固态硬盘逻辑存储单元为LBA4、LBA10~LBA12,不会出现对应固态硬盘逻辑存储单元LBA4、LBA12~LBA14的情况,否则必然会出现一段主机端的高地址对应固态硬盘中的低地址的情况。这可以保证固态硬盘上每个namespace中的LBA unit顺序使用,不会出现一段连续数据存储在namespace中非连续的几个逻辑存储单元内的情况。
需要注意的是,上述具体实施方式仅用于提供一种实现方式,并不用于限定仅有这一种固态硬盘组织形式,每个namespace中包含的LBA unit在固态硬盘上的位置可以是连续的,也可以是不连续的,但对一个namespace而言,其中的各个LBA unit之间总是按顺序排列的。图1所示的方式即为不连续的一种情况,也可以设置为连续的,比如,可以将LBAunit0与LBA unit1设置为namespace0,LBA unit2与LBA unit3为namespace1,也可以将LBAunit1与LBAunit2设置为namespace0,LBA unit0与LBA unit3为namespace1,这并不影响本发明的实现,在本发明的其他具体实施方式中,固态硬盘也可以采用其他的组织形式。
本发明提供的多namespace的固态硬盘,各个namespace之间是互相独立的逻辑存储空间,即对用户而言,相当于存在多个固态硬盘可供使用,虽然这些固态硬盘的容量之和与固态硬盘的整体容量相同,但由于各个namespace之间逻辑独立,不会互相影响,便于数据的分类管理;同时还可以减少磁盘的空间浪费,提高磁盘的空间利用率;此外,本发明提供的固态硬盘中,每个namespace中的高地址与主机端的高地址对应,进行主机端与固态硬盘端的地址映射时,操作简单,易于实现。
本发明还提供了一种多namespace固态硬盘的数据删除方法,基于上述多namespace的固态硬盘,请结合图2,图2所示为本发明提供的一种多namespace固态硬盘的数据删除方法的流程图,该方法具体包括:
步骤s1:收到主机下发的删除指令;
需要注意的是,对固态硬盘上的数据进行删除时,主机需要发出trim指令,trim指令也叫disable delete notify(禁用删除通知),即主机通过trim指令通知固态硬盘,一段数据无效,固态硬盘在适当时机,比如闲时,通过固态硬盘的GC(Garbage Collection,垃圾回收)机制进行垃圾回收,删除指定数据,回收对应的存储空间。
步骤s2:解析删除指令,获得要删除的主机端逻辑存储单元的地址区间以及主机端逻辑存储单元的地址区间对应的namespace的ID;
步骤s3:依据ID与主机端逻辑存储单元的地址区间得到ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
步骤s4:对固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程。
在本发明提供的一种具体实现方式中,主机端逻辑存储单元的地址区间由主机端起始逻辑存储单元的单元号与逻辑存储单元数目表示。
需要注意的是,在本发明的其他实施方式中,上述地址区间还可以用其他方式表示,比如以要删除的逻辑存储单元段的起止地址或起止逻辑存储单元的单元号表示,这并不影响本发明的实现。
进一步的,依据ID与主机端逻辑存储单元的地址区间得到ID对应的namespace中的固态硬盘逻辑存储单元的地址区间的具体过程为:
步骤s31:以unit_num除start,所得的商表示起始逻辑存储单元所在的逻辑存储单元集合在namespace中的位置,所得的余数表示起始逻辑存储单元在逻辑存储单元集合中的位置,依据所得的商和余数确定主机端起始逻辑存储单元在ID对应的namespace中的位置;所述主机端起始逻辑存储单元在所述ID对应的namespace中的位置之后的N个逻辑存储单元即为待删除的逻辑存储单元在所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
其中,unit_num表示逻辑存储单元集合中逻辑存储单元的数目,start表示主机端起始逻辑存储单元的单元号,N表示要删除的逻辑存储单元数目。
请结合图3,图3所示为本发明提供的一种多namespace固态硬盘的数据删除方法的一种具体实施方式的流程图,在这种具体实施方式中,对固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程的具体过程为:
步骤s41:将主机端起始逻辑存储单元的单元号与逻辑存储单元数目代入连续段数计算关系式,得到固态硬盘上待删除的连续逻辑存储单元段的个数,每个连续逻辑存储单元段包括对应的一个逻辑存储单元集合中待删除的全部逻辑存储单元;其中,连续段数计算关系式为:
n=(N–start%unit_num+unit_num)/unit_num+1,
其中,n表示连续逻辑存储单元段的数目;
需要注意的是,上述连续段数计算公式的本质是计算待删除数据在namespace中所分布的逻辑存储单元集合的个数,在本实施例中,待删除数据在namespace中所分布的逻辑存储单元集合的个数逻辑存储单元集合的个数与连续逻辑存储单元段的个数恰好相同,可以直接用于计算连续逻辑存储单元段的个数。
步骤s42:以连续逻辑存储单元段为单位对待删除的逻辑存储单元进行n次数据删除。
以图1所示的固态硬盘结构图为例,对主机端而言,若要删除固态硬盘上namespace0中的第4至第9个逻辑存储单元,主机端发送的删除指令中包括namespace ID:namespace0、起始逻辑存储单元号:3、要删除的逻辑存储单元数目:6,即N的值为6,start的值为3,unit_num的值为5。在namespace0中,用unit_num除start,所得到的商和余数分别为主机端起始逻辑存储单元在该namespace中所在的逻辑存储单元集合序号与在该逻辑存储单元集合中的位置,在上述例子中,unit_num除start的商为0,余为3,故起始逻辑存储单元在namespace0中的序号为0的逻辑存储单元集合中的序号为3的逻辑存储单元,反应在图1中即为第四逻辑存储单元LBA3,即需要对namespace0中LBA3及其之后的逻辑存储单元,共计6个逻辑存储单元进行删除。
将N、start、unit_num三个值代入上述段号转换关系式,可以得到n的值为2,即要删除的逻辑存储单元分布在namespace0中的两个逻辑存储单元中,故包含两个连续逻辑存储单元段,这两个连续逻辑存储单元段各包括一个逻辑存储单元集合中待删除的全部逻辑存储单元,分别为LBA3~LBA4与LBA10~LBA13。
当然,在本发明的其他实施方式中,一个连续存储单元段也可以包括一个逻辑存储单元集合中待删除逻辑存储单元中的一半或其他比例的逻辑存储单元,此时,上述公式用于计算待删除数据在namespace中所分布的逻辑存储单元集合的个数。具体如何设置连续逻辑存储单元段并不影响本发明的实现。
结合上述计算结果,即要对namespace0中两个连续的逻辑存储单元段LBA3~LBA4与LBA10~LBA13进行删除,即从LBA3开始删除,第一个连续的逻辑存储单元段长度为2,具体包括LBA_unit0中的LBA3~LBA4,第二个连续的逻辑存储单元段长度为4,具体包括namespace0中的第二个逻辑存储单元集合LBA_unit2中的前四个逻辑存储单元,即LBA10~LBA13,分别对这两段LBA进行数据删除即可。
当然还可以采用其他方式将待删除的逻辑存储单元删除,比如将待删除的逻辑存储单元逐个删除、两个一组进行删除等,这并不影响本发明的实现。
本发明提供的一种多namespace的固态硬盘的数据删除方法,固态硬盘包括多个namespace,每个namespace包括若干逻辑存储单元集合,每个逻辑存储单元集合包括数目相同且地址连续的逻辑存储单元,每个namespace中的主机端逻辑存储单元的高地址对应固态硬盘逻辑存储单元的高地址,在对这种固态硬盘进行删除时,需将主机下发的删除指令进行解析,得到要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID,并将主机端逻辑存储单元的地址区间转化成namespaceID对应的namespace中的固态硬盘逻辑存储单元的地址区间;对每个逻辑存储单元分别进行删除即可。因此,本发明提供的固态硬盘数据删除方法,可以对多namespace的固态硬盘进行数据删除,使用户在向数据已经被删除的无效数据区写入数据时,不用先将无效数据区的无效数据删除,可以直接向该区域写入数据,从而解决传统单namespace的数据删除方法无法对多namespace的固态硬盘进行删除的问题,提高固态硬盘的空间利用率与读写效率。
本发明还提供了一种多namespace固态硬盘的数据删除装置,基于上述多namespace的固态硬盘,请结合图4,图4所示为本发明提供的一种多namespace固态硬盘的数据删除装置的结构示意图,该装置具体包括:
指令接收模块41,用于收到主机下发的删除指令;
指令解析模块42,用于解析删除指令,获得要删除的主机端逻辑存储单元的地址区间以及主机端逻辑存储单元的地址区间对应的namespace的ID;
地址转换模块43,用于依据ID与主机端逻辑存储单元的地址区间得到ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
指令执行模块44,用于对固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程。
在本发明的一种具体实施方式中,指令执行模块44包括:
连续段数计算单元,用于将主机端起始逻辑存储单元的单元号与逻辑存储单元数目代入连续段数计算关系式,得到固态硬盘上待删除的连续逻辑存储单元段的个数,每个连续逻辑存储单元段包括对应的一个逻辑存储单元集合中待删除的全部逻辑存储单元;其中,连续段数计算关系式为:
n=(N–start%unit_num+unit_num)/unit_num+1,
其中,n表示连续逻辑存储单元段的数目;
数据删除单元,用于以连续逻辑存储单元段为单位对待删除的逻辑存储单元进行n次数据删除。
本发明提供了一种多namespace的固态硬盘的数据删除装置,固态硬盘包括多个namespace,每个namespace包括若干逻辑存储单元集合,每个逻辑存储单元集合包括数目相同且地址连续的逻辑存储单元,每个namespace中的主机端逻辑存储单元的高地址对应固态硬盘逻辑存储单元的高地址,在对这种固态硬盘进行删除时,需将主机下发的删除指令进行解析,得到要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID,并将主机端逻辑存储单元的地址区间转化成namespaceID对应的namespace中的固态硬盘逻辑存储单元的地址区间;对每个逻辑存储单元分别进行删除即可。因此,本发明提供的数据删除装置,可以对多namespace的固态硬盘进行数据删除,使用户在向数据已经被删除的无效数据区写入数据时,不用先将无效数据区的无效数据删除,可以直接向该区域写入数据,从而解决传统单namespace的数据删除方法无法对多namespace的固态硬盘进行删除的问题,提高固态硬盘的空间利用率与读写效率。
以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种多namespace的固态硬盘,其特征在于,每个namespace包括若干逻辑存储单元集合,各个所述逻辑存储单元集合分别包括数目相同且地址连续的若干逻辑存储单元,每个所述namespace中的主机端逻辑存储单元的高地址对应固态硬盘逻辑存储单元的高地址。
2.一种多namespace固态硬盘的数据删除方法,其特征在于,基于权利要求1所述的多namespace的固态硬盘,包括:
收到主机下发的删除指令;
解析所述删除指令,获得要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID;
依据所述ID与所述主机端逻辑存储单元的地址区间得到所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
对所述固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程。
3.根据权利要求2所述的方法,其特征在于,所述主机端逻辑存储单元的地址区间由主机端起始逻辑存储单元的单元号与逻辑存储单元数目表示。
4.根据权利要求3所述的方法,其特征在于,所述依据所述ID与所述主机端逻辑存储单元的地址区间得到所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间的具体过程为:
以unit_num除start,所得的商表示所述起始逻辑存储单元所在的逻辑存储单元集合在所述namespace中的位置,所得的余数表示所述起始逻辑存储单元在所述逻辑存储单元集合中的位置,依据所述商和所述余数确定所述主机端起始逻辑存储单元在所述ID对应的namespace中的位置;所述主机端起始逻辑存储单元在所述ID对应的namespace中的位置之后的N个逻辑存储单元即为待删除的逻辑存储单元在所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
其中,所述unit_num表示逻辑存储单元集合中逻辑存储单元的数目,所述start表示主机端起始逻辑存储单元的单元号,所述N表示要删除的逻辑存储单元数目。
5.根据权利要求3所述的方法,其特征在于,所述对所述固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程的具体过程为:
将所述主机端起始逻辑存储单元的单元号与所述逻辑存储单元数目代入连续段数计算关系式,得到所述固态硬盘上待删除的连续逻辑存储单元段的个数,每个所述连续逻辑存储单元段包括对应的一个逻辑存储单元集合中待删除的全部逻辑存储单元;其中,所述连续段数计算关系式为:
n=(N–start%unit_num+unit_num)/unit_num+1,
其中,n表示连续逻辑存储单元段的数目;
以所述连续逻辑存储单元段为单位对待删除的逻辑存储单元进行n次数据删除。
6.一种多namespace固态硬盘的数据删除装置,其特征在于,基于权利要求1所述的多namespace的固态硬盘,包括:
指令接收模块,用于收到主机下发的删除指令;
指令解析模块,用于解析所述删除指令,获得要删除的主机端逻辑存储单元的地址区间以及所述主机端逻辑存储单元的地址区间对应的namespace的ID;
地址转换模块,用于依据所述ID与所述主机端逻辑存储单元的地址区间得到所述ID对应的namespace中的固态硬盘逻辑存储单元的地址区间;
指令执行模块,用于对所述固态硬盘逻辑存储单元的地址区间对应的逻辑存储单元执行数据删除流程。
7.根据权利要求6所述的装置,其特征在于,所述指令执行模块包括:
连续段数计算单元,用于将所述主机端起始逻辑存储单元的单元号与所述逻辑存储单元数目代入连续段数计算关系式,得到所述固态硬盘上待删除的连续逻辑存储单元段的个数,每个所述连续逻辑存储单元段包括对应的一个逻辑存储单元集合中待删除的全部逻辑存储单元;其中,所述连续段数计算关系式为:
n=(N–start%unit_num+unit_num)/unit_num+1,
其中,n表示连续逻辑存储单元段的数目;
数据删除单元,用于以所述连续逻辑存储单元段为单位对待删除的逻辑存储单元进行n次数据删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710770900.8A CN107526548B (zh) | 2017-08-31 | 2017-08-31 | 多namespace的固态硬盘及数据删除方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710770900.8A CN107526548B (zh) | 2017-08-31 | 2017-08-31 | 多namespace的固态硬盘及数据删除方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107526548A true CN107526548A (zh) | 2017-12-29 |
CN107526548B CN107526548B (zh) | 2020-09-25 |
Family
ID=60683000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710770900.8A Active CN107526548B (zh) | 2017-08-31 | 2017-08-31 | 多namespace的固态硬盘及数据删除方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107526548B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902033A (zh) * | 2019-02-13 | 2019-06-18 | 山东华芯半导体有限公司 | 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662606A (zh) * | 2012-03-12 | 2012-09-12 | 记忆科技(深圳)有限公司 | Raid配置信息的处理方法和raid控制器 |
CN105892955A (zh) * | 2016-04-29 | 2016-08-24 | 华为技术有限公司 | 一种管理存储系统的方法及设备 |
US20170139591A1 (en) * | 2015-11-13 | 2017-05-18 | Samsung Electronics Co., Ltd. | Multimode storage device |
-
2017
- 2017-08-31 CN CN201710770900.8A patent/CN107526548B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662606A (zh) * | 2012-03-12 | 2012-09-12 | 记忆科技(深圳)有限公司 | Raid配置信息的处理方法和raid控制器 |
US20170139591A1 (en) * | 2015-11-13 | 2017-05-18 | Samsung Electronics Co., Ltd. | Multimode storage device |
CN105892955A (zh) * | 2016-04-29 | 2016-08-24 | 华为技术有限公司 | 一种管理存储系统的方法及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902033A (zh) * | 2019-02-13 | 2019-06-18 | 山东华芯半导体有限公司 | 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 |
CN109902033B (zh) * | 2019-02-13 | 2023-03-14 | 山东华芯半导体有限公司 | 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107526548B (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731717B (zh) | 存储器装置及存储器管理方法 | |
CN104461390B (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN106708427B (zh) | 一种适用于键值对数据的存储方法 | |
CN102819496B (zh) | 闪存ftl的地址转换方法 | |
CN102663086B (zh) | 一种数据块索引的检索方法 | |
CN109445713A (zh) | 一种元数据卷的存储状态记录方法、系统及相关组件 | |
CN104090730B (zh) | 一种对存储设备进行数据读写的方法及装置 | |
CN103186919B (zh) | 一种文字渲染方法及装置 | |
CN105930097B (zh) | 一种消除局部并行中小写操作的分布校验式磁盘阵列 | |
CN103488709B (zh) | 一种索引建立方法及系统、检索方法及系统 | |
CN103514249B (zh) | 一种数据自精简方法和系统及存储装置 | |
CN104331478B (zh) | 一种自精简存储系统数据一致性管理方法 | |
CN107015763A (zh) | 混合存储系统中ssd管理方法及装置 | |
JP2017091545A (ja) | 多重モード格納管理装置、多重モード格納装置、及びその選別潜在露出(sue)マッピング動作方法 | |
CN109542358A (zh) | 一种固态硬盘冷热数据分离方法、装置及设备 | |
CN103140840B (zh) | 数据管理的方法及装置 | |
CN106201355A (zh) | 数据处理方法和装置以及存储系统 | |
CN103270499B (zh) | 日志存储方法及系统 | |
CN103823865A (zh) | 一种数据库主存索引方法 | |
CN105159915A (zh) | 可动态适应的lsm树合并方法及系统 | |
CN104156317A (zh) | 一种非易失性闪存的擦写管理方法及系统 | |
CN109558084A (zh) | 一种数据处理方法以及相关设备 | |
CN105159616A (zh) | 一种磁盘空间管理方法及装置 | |
CN103218305B (zh) | 存储空间的分配方法 | |
CN109918318A (zh) | Ssd元数据管理方法、装置、设备及可读存储介质 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200828 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |