CN110399310B - 一种存储空间的回收方法及装置 - Google Patents
一种存储空间的回收方法及装置 Download PDFInfo
- Publication number
- CN110399310B CN110399310B CN201810346658.6A CN201810346658A CN110399310B CN 110399310 B CN110399310 B CN 110399310B CN 201810346658 A CN201810346658 A CN 201810346658A CN 110399310 B CN110399310 B CN 110399310B
- Authority
- CN
- China
- Prior art keywords
- physical address
- mapping table
- logical address
- space
- data block
- 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
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0647—Migration mechanisms
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
本申请提供一种存储空间的回收方法及装置,应用于存储设备,所述方法包括:将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址;查找所述存储设备的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址;回收无引用空间;其中,所述无引用空间为已写入数据块,且物理地址在所述逻辑地址映射表中无对应逻辑地址的存储空间。本申请在回收存储空间后,得到连续的空闲空间,减少了后续写入数据时产生的写入放大。
Description
技术领域
本申请涉及存储领域,特别涉及一种存储空间的回收方法及装置。
背景技术
互联网企业的业务发展壮大,其拥有的数据会急剧膨胀。若企业仅仅通过购置新的存储设备来满足存储数据的需求,并不能有效地利用存储容量,也会产生巨大的硬件成本。在这种情况下,缩减数据占用的空间和简化存储管理变得非常重要,随之出现了一系列为最大程度利用已有的存储资源的技术。常见的有重删技术和存储空间回收技术等。
存储设备通常会利用RAID(Redundant Arrays of Independent Disks,磁盘阵列)技术对磁盘空间进行组织,使得磁盘空间对数据具有一定的冗余保护能力。在这种情况下,存储设备在向磁盘空间写入数据时,顺序写和随机写而产生的写入放大(WriteAmplification,WA)是不同的。其中,写入放大包括写入数据的过程中更新校验数据。
参见图1,为本申请示出的一种基于RAID5的磁盘空间的存储示意图,该图表示随机写的磁盘空间使用情况;参见图2,为本申请示出的另一种基于RAID5的磁盘空间的存储示意图,该图表示顺序写的磁盘空间使用情况。
如图1和图2所示,标记数字的条块表示已写入数据,标记字母P的条块表示写入了该条块所在条带的校验数据。从图中可见,写入数据量一致时,随机写的方式会产生更多的写入放大。
如果存储设备采用随机写的方式写入数据,现有存储空间回收技术所回收的存储空间是随机零散的。在这种情况下,存储设备后续仍随机写入数据。比如,以图1为例,当标记数字1和数字2的条块被回收,后续要写入两个条块大小的数据时,可能会分别写在标记数字1和数字2的条块中。而随机写入数据,会产生更多的写入放大,使得存储设备不能充分利用存储空间;此外,对于SSD(Solid State Drives,固态硬盘)或闪存(Flash Memory)介质的存储空间而言,过多的写入放大会缩短使用寿命。
发明内容
有鉴于此,本申请提供一种存储空间的回收方法及装置,用以在回收存储空间的同时整理出连续的可用空间,使得后续以顺序写的方式写入数据,减少了写入放大。
具体地,本申请是通过如下技术方案实现的:
一种存储空间的回收方法,应用于存储设备,包括:
将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址;
查找所述存储设备的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址;
回收无引用空间;其中,所述无引用空间为已写入数据块,且物理地址在所述逻辑地址映射表中无对应逻辑地址的存储空间。
一种存储空间的回收装置,应用于存储设备,包括:
迁移单元,用于将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址;
更新单元,用于查找所述存储设备的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址;
回收单元,用于回收无引用空间;其中,所述无引用空间为已写入数据块,且物理地址在所述逻辑地址映射表中无对应逻辑地址的存储空间。
在本申请技术方案中,存储设备首先将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址;存储设备查找本地的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述第二物理地址替换所述逻辑地址映射表项中的所述第一物理地址,进一步地,回收无引用空间;
由于在本申请中,存储设备首先将候选迁移数据块集中的数据块迁移至连续的空闲空间,并在更新逻辑地址映射表后,回收无引用空间,因此,在回收过程中对不连续的存储空间进行了整理,回收后得到了连续的空闲空间。进一步地,后续存储设备可以以顺序写的方式在整理得到的空闲空间中写入数据,减少了写入放大,延长了SSD或闪存介质的存储空间的使用寿命。
附图说明
图1是本申请示出的一种基于RAID5的磁盘空间的存储示意图;
图2是本申请示出的另一种基于RAID5的磁盘空间的存储示意图;
图3是本申请示出的一种重删示意图;
图4是本申请示出的一种逻辑地址映射表;
图5是本申请示出的一种存储空间的回收方法的流程图;
图6是本申请示出的一种迁移示意图;
图7是本申请示出的一种存储空间的回收装置的实施例框图;
图8是本申请示出的一种存储空间的回收装置的硬件结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。
本申请技术方案可基于重删技术应用于存储设备,首先对重删技术进行介绍。参见图3,为本申请示出的一种重删示意图,如图3所示,存储设备的不同LUN(Logical UnitNumber,逻辑单元号)中可能写入相同的数据(图中字母表示数据块内容)。通过重删技术,删除重复写入的数据,只保留一份数据块副本。各数据块副本的唯一物理地址记录在重删副本池中。
参见图4,为本申请示出的一种逻辑地址映射表,如图4所示,逻辑地址映射表包括LBA(Logical Block Address,逻辑地址)和PBA(Physics Block Address,物理地址)的映射关系。在实施重删的情况下,逻辑地址映射表中不同逻辑地址可能对应同一物理地址。如图4所示,LUN-1的逻辑地址映射表中,逻辑地址LBA1-2和LBA1-3都对应PBA-2,说明写入LBA1-2和LBA1-3的数据块相同。
各个LUN都有一个逻辑地址映射表,本申请实施例中,存储空间的回收过程会更新逻辑地址映射表。
此外,本申请技术方案同样适用于未启用重删的存储设备,在这种情况下,存储设备的各个LUN的逻辑地址映射表中,各逻辑地址对应的物理地址都是不同的。
参见图5,为本申请示出的一种存储空间的回收方法,该方法应用于存储设备,包括以下步骤:
步骤501:将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址。
其中,上述存储设备搭载了若干LUN,并存有每一LUN的逻辑地址映射表。
存储设备首先可以基于预设的回收触发时机选择策略,启动回收流程。
在示出的一种实施方式中,存储设备可以检测本地的连续空闲空间单元的数量,确定连续空闲空间单元的数量是否小于预设的第一阈值。
其中,空间单元预先基于存储设备的全部存储空间划分得到,各空间单元包括一个条带或至少两个连续条带。以图1为例进行说明,若每个空间单元包括一个条带,则图1中存储空间被划分为6个空间单元;若每个空间单元包括两个连续条带,则标记数字1的条块所在条带和标记数字2的条块所在条带可为一个空间单元,图1中存储空间被换分为3个空间单元。具体划分方式可基于实际应用环境而定。
上述第一阈值可基于实际应用环境而定,比如,若存储设备处理的IO请求数量众多,则为保证能够以顺序写的方式写入数据,上述第一阈值可以设置较大;若存储设备处理的IO请求数量较少,为避免多次回收处理产生过多的开销,上述第一阈值可以设置较小。
一方面,连续空闲空间单元的数量不小于上述第一阈值,则暂不启动回收流程;
另一方面,连续空闲空间单元的数量小于上述第一阈值,则启动存储空间的回收流程。
在这种实施方式中,可以确保存储设备上有足够数量的连续空闲空间单元,使得存储设备可以始终顺序写入数据,保证了写入性能,减少了写入放大。
在示出的另一种实施方式中,存储设备可以检测在预设时长内接收到的IO请求的数量,确定IO请求的数量是否小于预设的第二阈值。
其中,上述第二阈值可以基于实际应用环境而定。
具体地,存储设备可以周期性检测在当前周期时长内所接收的IO请求的数量,然后比较该数量与上述第二阈值的大小。
一方面,如果IO请求的数量不小于上述第二阈值,则暂不启动回收流程;
另一方面,如果IO请求的数量小于上述第二阈值,则启动存储空间的回收流程。
在这种实施方式中,存储设备可以在接收到的IO请求的数量较少(低于第二阈值)时回收存储空间,减少因回收存储空间而对处理IO请求的性能造成影响。
在示出的又一种实施方式中,存储设备可以基于预设的周期时长,启动存储空间的回收流程。其中,上述周期时长可以基于实际应用环境而定。
这种实施方式适用于处理IO请求的数量有时间规律的存储设备。比如:若存储设备在凌晨1点需要处理的IO请求的数量最少,则可按照24小时的周期时长,在每天的凌晨1点回收存储空间。
当然,除上述三种实施方式以外,存储设备也可以基于其它的回收触发时机选择策略,启动回收流程,本申请在此不再赘述。
作为一种实施例,存储设备在启动回收流程后,可以基于预设策略选择上述候选迁移数据块集中的数据块。
存储设备可以检测预先划分的每一空间单元中指定数据块的数量;其中,上述指定数据块的物理地址在上述逻辑地址映射表中存在对应的逻辑地址。
存储设备可以基于每一空间单元中上述指定数据块的数量,确定数量最少或处于数量等级最低的空间单元;其中,各数量等级分别表征不同的数量范围。
在确定出空间单元后,将该空间单元中的上述指定数据块加入到上述候选迁移数据块集。
在示出的一种实施方式中,存储设备可以将依次检测每一空间单元中各存储空间的物理地址查找每个LUN的逻辑地址映射表,确定是否存在对应的逻辑地址映射表项。若存在,则写入该物理地址的数据块为指定数据块。
在将任一空间单元中各存储空间的物理地址查找上述逻辑地址映射表后,可确定该空间单元的指定数据块的数量。
(1)如果以指定数据块的数量最少为依据,可以首先检查是否存在指定数据块的数量为1的空间单元。
一方面,存在指定数据块的数量为1的空间单元,则将该空间单元中的指定数据块加入到候选迁移数据块集。
另一方面,在各空间单元的指定数据块的数量都不为1的情况下,则检查是否存在指定数据块的数量为2的空间单元。
一方面,存在指定数据块的数量为2的空间单元,则可将该空间单元中的指定数据块加入到候选迁移数据块;
另一方面,在各空间单元的指定数据块的数量都不为2的情况下,则检查是否存在指定数据块的数量为3的空间单元。
以此类推,直到找到满足条件的空间单元,该空间单元即为当前包含最少指定数据块的空间单元。
通过该措施,存储设备在后续迁移上述候选迁移数据块集中的数据块时,所需迁移的数据块数量最少,换而言之,在迁移工作量最少的情况下,可在迁移及回收存储空间后得到空闲的空间单元。
(2)如果以指定数据块的数量处于数量等级最低为依据,存储设备上需预配置若干表征不同的数量范围的数量等级。比如:数量等级1表示1到3;数量等级2表示4到8;数量等级3表示9到15;数量等级4表述16到30;数量等级5表示31以上的整数。
存储设备可以首先检查是否存在指定数据块的数量处于数量等级1的空间单元。
一方面,存在指定数据块的数量处于数量等级1的空间单元,则将该空间单元中的指定数据块加入到候选迁移数据块集。比如:若数量等级1表示1到3,则可以在检查到指定数据块的数量在1到3之间的空间单元时,将该空间单元中的指定数据块加入到候选迁移数据块集。
另一方面,不存在指定数据块的数量处于数量等级1的空间单元,则检查是否存在指定数据块的数量处于数量等级2的空间单元。
一方面,存在指定数据块的数量处于数量等级2的空间单元,则将该空间单元中的指定数据块加入到候选迁移数据块集。比如:若数量等级1表示1到3,数量等级2表示4到8,则可以在检查不到指定数据块的数量为1到3之间的空间单元时,继续检查,并在检查到指定数据块的数量在4到8之间的空间单元时,将该空间单元的指定数据块加入到候选迁移数据集。
另一方面,不存在指定数据块的数量处于数量等级2的空间单元,则继续检查是否存在指定数据块的数量处于数量等级3的空间单元。
以此类推,直到找到当前包含指定数据块的数量处于最低数量等级的空间单元。
通过该措施,存储设备在后续迁移上述候选迁移数据块集中的数据块时,所需迁移的数据块数量处于一个相对最少的范围,而相比以指定数据块的数量最少为依据,该措施示出的实施方式可减少查找次数,更快地确定出合适的空间单元。
需要指出的是,可以通过记录数据块的物理地址的形式,记录加入到上述候选迁移数据块集中的数据块。
在本申请实施例中,存储设备在选中上述候选迁移数据块集中的数据块之后,可以将上述数据块迁移至连续的空闲空间。
参见图6,为本申请示出的一种迁移示意图,如图6所示,存储空间的前两个条带上的数据块被加入到候选迁移数据块集,在迁移完成后,候选迁移数据块集中的数据块被迁移至第三个条带。
进一步地,存储设备可以记录第一物理地址和第二物理地址的映射关系。
步骤502:查找所述存储设备的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址。
存储设备可以基于上述第一物理地址,依次查找各个LUN的逻辑地址映射表,确定对应于上述第一物理地址的逻辑地址映射表项。进一步地,存储设备可以将上述第二物理地址替换上述逻辑地址映射表项中的上述第一物理地址。
通过该措施,存储设备可以在迁移数据块后,更新各个LUN的逻辑地址映射表,以便于后续基于更新后的逻辑地址映射表处理IO请求。此外,在更新各个LUN的逻辑地址映射表以后,上述第一物理地址对应的存储空间可被回收。
步骤503:回收无引用空间;其中,所述无引用空间为已写入数据块,且物理地址在所述逻辑地址映射表中无对应逻辑地址的存储空间。
在示出的一种实施方式中,存储设备可以回收上述第一物理地址对应的存储空间所在的条带。
仍以图6为例进行说明,在标记数字的3个条块中的数据块迁移后,这3个条块可被回收。然而,虚线框内的条带中可能还有其它数据块,由于其它数据块的物理地址在逻辑地址映射表中没有对应的逻辑地址,实际上这些数据块不会被读取,但是仍然占用了存储空间。如果仅仅回收标记数字的3个条块,还是无法得到连续的空闲空间。因此,存储设备需将标记数据的3个条块所在的条带整体回收。
存储设备回收上述第一物理地址对应的存储空间所在的条带后,即可获得连续的空闲空间,使得后续写入数据时可以在连续的空闲空间中顺序写,提高了写入性能,减少了写入放大。
在示出的另一种实施方式中,存储设备除了回收上述第一物理地址对应的存储空间所在的条带以外,还要回收其它物理地址没有对应的逻辑地址的存储空间。
存储设备上预配置物理地址表,其中,该物理地址表包括已写入数据块的存储空间的物理地址。存储设备可在每次写入数据块或迁移数据块后,更新该物理地址池中的物理地址。对于启用重删的存储设备而言,该物理地址表可以是重删副本池。
物理地址表中的物理地址可以添加引用标记,上述引用标记表征上述逻辑地址映射表中存在对应于该物理地址的逻辑地址,换而言之,写入该物理地址的数据块仍有可能被读取,因此,该物理地址对应的存储空间不能被回收。
具体实施方式(1):
存储设备可以基于上述逻辑地址映射表,确定上述物理地址表中每一物理地址是否存在对应的逻辑地址,若存在,为该物理地址添加引用标记。
需要指出的是,若上述物理地址表此前已有物理地址添加引用标记,在本次添加引用标记前,要清空所有物理地址的引用标记,从而使本次添加的引用标记能正确地表明当前各物理地址是否存在对应的逻辑地址。
具体地,存储设备可以遍历各个LUN的逻辑地址映射表,依次将各逻辑地址映射表项中的物理地址查找上述物理地址表,并为该物理地址表中查到的物理地址添加引用标记。
在遍历完成后,上述物理地址表中未携带引用标记的物理地址没有对应的逻辑地址,换而言之,写入上述物理地址的数据块不会被读取了,因此,上述物理地址可被回收。
有鉴于此,在为上述物理地址表中的物理地址添加引用标记后,存储设备可以回收上述物理地址表中未携带引用标记的物理地址对应的存储空间。
当然,在回收未携带引用标记的物理地址对应的存储空间后,存储设备可以将未携带引用标记的物理地址从上述物理地址表中删除。
具体实施方式(2):
存储设备在基于第一物理地址和第二物理地址的映射关系更新上述逻辑地址映射表时,可以同时为上述物理地址表中的物理地址添加引用标记。
具体地,存储设备可以依次确定各个LUN的逻辑地址映射表中的每一逻辑地址映射表项中的物理地址是否为任一第一物理地址。
一方面,如果是,则将该逻辑地址映射表项中的该第一物理地址替换为对应的第二物理地址,然后在上述物理地址表中为该第二物理地址添加引用标记。
另一方面,如果否,在上述物理地址表中为该逻辑地址表项中的物理地址添加引用标记。
在具体实施方式(2)中,存储设备可以在一次遍历逻辑地址映射表之后,就完成更新逻辑地址映射表和添加引用标记两项工作。而具体实施方式(1)在更新逻辑地址映射表和添加引用标记时,需两次遍历逻辑地址映射表。具体实施方式(2)相比具体实施方式(1)减少了开销。
在根据引用标记回收存储空间的实施方式中,存储设备除了回收上述第一物理地址对应的存储空间所在的条带,得到了连续的空闲空间,还回收其它物理地址没有对应的逻辑地址的存储空间,从而得到更多的空闲空间。
此外,存储设备可以根据回收过程更新的物理地址表,确定各空间单元中指定数据块的数量,从而作为下次启动回收流程前选择候选迁移数据块集中的数据块的依据。
作为一种实施例,存储设备在回收流程结束后,可以基于预设策略选择上述候选迁移数据块集中的数据块。在这种情况下,存储设备在启动回收流程后无需再次选择候选迁移数据块集中的数据块。
在这种实施方式中,存储设备可以基于回收后更新的物理地址表,确定每一空间单元中指定数据块的数量,进而选中数量最少或处于数量等级最低的空间单元中的指定数据块。具体实现方式参照前文,在此不再赘述。
综上所述,在本申请实施方式中,存储设备首先将候选迁移数据块集中的数据块迁移至连续的空闲空间,并在更新逻辑地址映射表后,回收无引用空间,因此,在回收过程中对不连续的存储空间进行了整理,回收后得到了连续的空闲空间。进一步地,后续存储设备可以以顺序写的方式在整理得到的空闲空间中写入数据,减少了写入放大,延长了SSD或闪存介质的存储空间的使用寿命;
本申请可应用于启用重删的存储设备,也可应用于未启用重删的存储设备,均能实现良好的回收效果,提高存储空间的利用率;
本申请可通过多种策略选择候选迁移数据块集中的数据块,也可以通过多种策略确定启动回收流程的时机,实现方式非常灵活,适用于多种应用场景;
本申请可通过一次遍历各个LUN的逻辑地址映射表,完成逻辑地址映射表的更新和添加引用标记的工作,系统开销小,不会对存储设备的性能造成过大的影响。
与前述存储空间的回收方法的实施例相对应,本申请还提供了存储空间的回收装置的实施例。
如图7所示,该存储空间的回收装置70,包括:
迁移单元710,用于将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址。
更新单元720,用于查找所述存储设备的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址。
回收单元730,用于回收无引用空间;其中,所述无引用空间为已写入数据块,且物理地址在所述逻辑地址映射表中无对应逻辑地址的存储空间。
在本例中,所述装置还包括选择单元740(图中未示出),用于:
检测所述存储设备的每一空间单元中指定数据块的数量;其中,所述空间单元预先基于所述存储设备的全部存储空间划分得到,各空间单元包括一个条带或至少两个连续的条带,所述指定数据块的物理地址在所述逻辑地址映射表中存在对应的逻辑地址;
基于每一空间单元中所述指定数据块的数量,确定数量最少或处于数量等级最低的空间单元;其中,各数量等级分别表征不同的数量范围;
将该空间单元中的所述指定数据块加入到所述候选迁移数据块集。
在本例中,所述回收单元730,进一步用于:
回收所述第一物理地址对应的存储空间所在的条带。
在本例中,所述更新单元720,进一步用于:
基于所述逻辑地址映射表,确定物理地址表中每一物理地址是否存在对应的逻辑地址,若存在,为该物理地址添加引用标记;其中,所述物理地址表包括已写入数据块的存储空间的物理地址,所述引用标记表征所述逻辑地址映射表中存在对应于该物理地址的逻辑地址;
所述回收单元730,进一步用于:
回收所述物理地址表中未携带引用标记的物理地址对应的存储空间。
在本例中,所述更新单元720,进一步用于:
依次确定所述逻辑地址映射表中的每一逻辑地址映射表项中的物理地址是否为任一第一物理地址;
如果是,将该逻辑地址映射表项中的该第一物理地址替换为对应的第二物理地址,并在预设的物理地址表中为该第二物理地址添加引用标记;其中,所述物理地址表包括已写入数据块的存储空间的物理地址,所述引用标记表征所述逻辑地址映射表中存在对应于该物理地址的逻辑地址;
如果否,在所述物理地址表中为该逻辑地址映射表项中的物理地址添加引用标记;
所述回收单元730,进一步用于:
回收所述物理地址表中未携带引用标记的物理地址对应的存储空间。
在本例中,所述装置还包括启动单元750(图中未示出),用于:
检测所述存储设备的连续空闲空间单元的数量,确定连续空闲空间单元的数量是否小于预设的第一阈值,如果是,启动存储空间的回收流程;或,
检测所述存储设备在预设时长内接收到的IO请求的数量,确定IO请求的数量是否小于预设的第二阈值,如果是,启动存储空间的回收流程;或,
基于预设的周期时长,启动存储空间的回收流程。
本申请存储空间的回收装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在存储设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图8所示,为本申请存储空间的回收装置所在存储设备的一种硬件结构图,除了图8所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的存储设备通常根据该存储空间的回收装置的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (9)
1.一种存储空间的回收方法,应用于存储设备,其特征在于,包括:
将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址;
查找所述存储设备的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址;
回收无引用空间;其中,所述无引用空间为已写入数据块,且物理地址在所述逻辑地址映射表中无对应逻辑地址的存储空间;
所述候选迁移数据块集中的数据块基于预设策略选择,所述策略包括:
检测所述存储设备的每一空间单元中指定数据块的数量;其中,所述空间单元预先基于所述存储设备的全部存储空间划分得到,各空间单元包括一个条带或至少两个连续的条带,所述指定数据块的物理地址在所述逻辑地址映射表中存在对应的逻辑地址;
基于每一空间单元中所述指定数据块的数量,确定数量最少或处于数量等级最低的空间单元;其中,各数量等级分别表征不同的数量范围;
将该空间单元中的所述指定数据块加入到所述候选迁移数据块集。
2.根据权利要求1所述的方法,其特征在于,所述回收无引用空间,包括:
回收所述第一物理地址对应的存储空间所在的条带。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述逻辑地址映射表,确定物理地址表中每一物理地址是否存在对应的逻辑地址,若存在,为该物理地址添加引用标记;其中,所述物理地址表包括已写入数据块的存储空间的物理地址,所述引用标记表征所述逻辑地址映射表中存在对应于该物理地址的逻辑地址;
所述回收无引用空间,包括:
回收所述物理地址表中未携带引用标记的物理地址对应的存储空间。
4.根据权利要求1所述的方法,其特征在于,所述查找所述存储设备的逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址,包括:
依次确定所述逻辑地址映射表中的每一逻辑地址映射表项中的物理地址是否为任一第一物理地址;
如果是,将该逻辑地址映射表项中的该第一物理地址替换为对应的第二物理地址,并在预设的物理地址表中为该第二物理地址添加引用标记;其中,所述物理地址表包括已写入数据块的存储空间的物理地址,所述引用标记表征所述逻辑地址映射表中存在对应于该物理地址的逻辑地址;
如果否,在所述物理地址表中为该逻辑地址映射表项中的物理地址添加引用标记;
所述回收无引用空间,包括:
回收所述物理地址表中未携带引用标记的物理地址对应的存储空间。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述存储设备的连续空闲空间单元的数量,确定连续空闲空间单元的数量是否小于预设的第一阈值,如果是,启动存储空间的回收流程;或,
检测所述存储设备在预设时长内接收到的IO请求的数量,确定IO请求的数量是否小于预设的第二阈值,如果是,启动存储空间的回收流程;或,
基于预设的周期时长,启动存储空间的回收流程。
6.一种存储空间的回收装置,应用于存储设备,其特征在于,包括:
迁移单元,用于将候选迁移数据块集中的数据块迁移至连续的空闲空间,并记录第一物理地址和第二物理地址的映射关系;其中,所述第一物理地址为所述数据块迁移前的物理地址,所述第二物理地址为所述数据块迁移后的物理地址;所述候选迁移数据块集中的数据块基于预设策略选择,所述策略包括:检测所述存储设备的每一空间单元中指定数据块的数量;其中,所述空间单元预先基于所述存储设备的全部存储空间划分得到,各空间单元包括一个条带或至少两个连续的条带,所述指定数据块的物理地址在所述存储设备的逻辑地址映射表中存在对应的逻辑地址;基于每一空间单元中所述指定数据块的数量,确定数量最少或处于数量等级最低的空间单元;其中,各数量等级分别表征不同的数量范围;将该空间单元中的所述指定数据块加入到所述候选迁移数据块集;
更新单元,用于查找所述逻辑地址映射表中与所述第一物理地址对应的逻辑地址映射表项,并将所述逻辑地址映射表项中的所述第一物理地址替换为所述第二物理地址;
回收单元,用于回收无引用空间;其中,所述无引用空间为已写入数据块,且物理地址在所述逻辑地址映射表中无对应逻辑地址的存储空间。
7.根据权利要求6所述的装置,其特征在于,所述回收单元,进一步用于:
回收所述第一物理地址对应的存储空间所在的条带。
8.根据权利要求6所述的装置,其特征在于,所述更新单元,进一步用于:
基于所述逻辑地址映射表,确定物理地址表中每一物理地址是否存在对应的逻辑地址,若存在,为该物理地址添加引用标记;其中,所述物理地址表包括已写入数据块的存储空间的物理地址,所述引用标记表征所述逻辑地址映射表中存在对应于该物理地址的逻辑地址;
所述回收单元,进一步用于:
回收所述物理地址表中未携带引用标记的物理地址对应的存储空间。
9.根据权利要求6所述的装置,其特征在于,所述更新单元,进一步用于:
依次确定所述逻辑地址映射表中的每一逻辑地址映射表项中的物理地址是否为任一第一物理地址;
如果是,将该逻辑地址映射表项中的该第一物理地址替换为对应的第二物理地址,并在预设的物理地址表中为该第二物理地址添加引用标记;其中,所述物理地址表包括已写入数据块的存储空间的物理地址,所述引用标记表征所述逻辑地址映射表中存在对应于该物理地址的逻辑地址;
如果否,在所述物理地址表中为该逻辑地址映射表项中的物理地址添加引用标记;
所述回收单元,进一步用于:
回收所述物理地址表中未携带引用标记的物理地址对应的存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810346658.6A CN110399310B (zh) | 2018-04-18 | 2018-04-18 | 一种存储空间的回收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810346658.6A CN110399310B (zh) | 2018-04-18 | 2018-04-18 | 一种存储空间的回收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399310A CN110399310A (zh) | 2019-11-01 |
CN110399310B true CN110399310B (zh) | 2021-08-31 |
Family
ID=68319493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810346658.6A Active CN110399310B (zh) | 2018-04-18 | 2018-04-18 | 一种存储空间的回收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399310B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813710B (zh) * | 2020-09-11 | 2021-02-05 | 鹏城实验室 | 避免Linux内核内存碎片方法、设备及计算机存储介质 |
CN112052193B (zh) * | 2020-09-28 | 2023-04-07 | 成都佰维存储科技有限公司 | 一种垃圾回收方法、装置、可读存储介质及电子设备 |
CN112667148A (zh) * | 2020-11-30 | 2021-04-16 | 上海七牛信息技术有限公司 | 一种集群存储数据在线迁移的方法及系统 |
CN112463077B (zh) * | 2020-12-16 | 2021-11-12 | 北京云宽志业网络技术有限公司 | 数据块处理方法、装置、设备及存储介质 |
CN113176858B (zh) * | 2021-05-07 | 2022-12-13 | 锐捷网络股份有限公司 | 数据处理方法、存储系统及存储设备 |
CN113568581B (zh) * | 2021-07-29 | 2023-08-01 | 武汉天喻信息产业股份有限公司 | 一种嵌入式设备的多应用资源回收方法及系统 |
CN113625973B (zh) * | 2021-08-30 | 2024-01-16 | 得一微电子股份有限公司 | 数据写入方法、装置、电子设备及计算机可读存储介质 |
CN115729846A (zh) * | 2021-08-31 | 2023-03-03 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN115757192A (zh) * | 2021-09-03 | 2023-03-07 | 华为技术有限公司 | 一种存储块的回收方法以及相关装置 |
CN114265670B (zh) * | 2022-03-02 | 2022-09-23 | 阿里云计算有限公司 | 一种内存块整理方法、介质及计算设备 |
CN116775506B (zh) * | 2023-08-22 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 内存回收方法、装置、设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660941B2 (en) * | 2003-09-10 | 2010-02-09 | Super Talent Electronics, Inc. | Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories |
CN102185929A (zh) * | 2011-06-02 | 2011-09-14 | 杭州华三通信技术有限公司 | 一种基于san资源的视频监控数据存储方法及其装置 |
CN102521160A (zh) * | 2011-12-22 | 2012-06-27 | 上海交通大学 | 写缓冲检测器、写入数据的寻址方法、并行通道写入方法 |
CN102819494A (zh) * | 2012-07-18 | 2012-12-12 | 山东华芯半导体有限公司 | 一种闪存顺序写入时的优化方法 |
CN102999428A (zh) * | 2012-11-01 | 2013-03-27 | 华中科技大学 | 一种瓦记录磁盘的四级编址方法 |
CN103049222A (zh) * | 2012-12-28 | 2013-04-17 | 中国船舶重工集团公司第七0九研究所 | 一种raid5的写io优化处理方法 |
CN103942292A (zh) * | 2014-04-11 | 2014-07-23 | 华为技术有限公司 | 虚拟机镜像文件处理方法、装置及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032828A1 (en) * | 2000-05-10 | 2002-03-14 | Seagate Technology, Llc | Seamless defect management conversion |
TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
CN101587425B (zh) * | 2009-06-16 | 2010-12-08 | 杭州华三通信技术有限公司 | 一种增加独立磁盘冗余阵列冗余性的方法及装置 |
EP2467783B1 (en) * | 2009-10-09 | 2020-05-27 | Violin Systems LLC | Memory system with multiple striping of raid groups and method for performing the same |
CN103577338B (zh) * | 2013-11-14 | 2016-06-29 | 华为技术有限公司 | 一种回收垃圾数据的方法及存储设备 |
US20170010810A1 (en) * | 2015-07-06 | 2017-01-12 | CNEXLABS, Inc. a Delaware Corporation | Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer |
KR102580123B1 (ko) * | 2016-05-03 | 2023-09-20 | 삼성전자주식회사 | Raid 스토리지 장치 및 그것의 관리 방법 |
-
2018
- 2018-04-18 CN CN201810346658.6A patent/CN110399310B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660941B2 (en) * | 2003-09-10 | 2010-02-09 | Super Talent Electronics, Inc. | Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories |
CN102185929A (zh) * | 2011-06-02 | 2011-09-14 | 杭州华三通信技术有限公司 | 一种基于san资源的视频监控数据存储方法及其装置 |
CN102521160A (zh) * | 2011-12-22 | 2012-06-27 | 上海交通大学 | 写缓冲检测器、写入数据的寻址方法、并行通道写入方法 |
CN102819494A (zh) * | 2012-07-18 | 2012-12-12 | 山东华芯半导体有限公司 | 一种闪存顺序写入时的优化方法 |
CN102999428A (zh) * | 2012-11-01 | 2013-03-27 | 华中科技大学 | 一种瓦记录磁盘的四级编址方法 |
CN103049222A (zh) * | 2012-12-28 | 2013-04-17 | 中国船舶重工集团公司第七0九研究所 | 一种raid5的写io优化处理方法 |
CN103942292A (zh) * | 2014-04-11 | 2014-07-23 | 华为技术有限公司 | 虚拟机镜像文件处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110399310A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399310B (zh) | 一种存储空间的回收方法及装置 | |
EP3617867B1 (en) | Fragment management method and fragment management apparatus | |
CN107818269B (zh) | 一种基于Flash的文件保存方法及系统 | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
CN111026329B (zh) | 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法 | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
KR20090012821A (ko) | 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 | |
CN103761190A (zh) | 数据处理方法及装置 | |
US10572335B2 (en) | Metadata recovery method and apparatus | |
EP3598290B1 (en) | Solid-state disk access | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
US20140365824A1 (en) | Method for recovering hard disk data, server and distributed storage system | |
CN113254365A (zh) | 存储空间的管理方法、装置、设备、介质和程序产品 | |
CN100478865C (zh) | 虚拟磁盘驱动系统和方法 | |
KR101114125B1 (ko) | 낸드 플래시 파일 시스템 및 그의 초기화 및 크래시 복구 방법 | |
KR100954603B1 (ko) | 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 | |
CN118051179A (zh) | 用于使用多个分区的分区命名空间存储的技术 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
CN109344011B (zh) | 一种数据备份方法及装置 | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN114185849A (zh) | 文件操作方法、文件操作系统、电子设备及存储介质 | |
CN112416811A (zh) | 基于数据关联度的垃圾回收方法、闪存及装置 | |
CN105892935A (zh) | 磁盘装置以及转移保存管理信息的方法 | |
CN110688257A (zh) | 一种全闪存阵列的局部元数据修复方法、装置及设备 |
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 |