CN114661238B - 带缓存的存储系统空间回收的方法及应用 - Google Patents

带缓存的存储系统空间回收的方法及应用 Download PDF

Info

Publication number
CN114661238B
CN114661238B CN202210320425.5A CN202210320425A CN114661238B CN 114661238 B CN114661238 B CN 114661238B CN 202210320425 A CN202210320425 A CN 202210320425A CN 114661238 B CN114661238 B CN 114661238B
Authority
CN
China
Prior art keywords
node
file
data
request
data area
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
Application number
CN202210320425.5A
Other languages
English (en)
Other versions
CN114661238A (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.)
Jiangsu Anchao Cloud Software Co Ltd
Original Assignee
Jiangsu Anchao Cloud Software 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 Jiangsu Anchao Cloud Software Co Ltd filed Critical Jiangsu Anchao Cloud Software Co Ltd
Priority to CN202210320425.5A priority Critical patent/CN114661238B/zh
Publication of CN114661238A publication Critical patent/CN114661238A/zh
Application granted granted Critical
Publication of CN114661238B publication Critical patent/CN114661238B/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/0608Saving storage space on storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0656Data buffering 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种带缓存的存储系统空间回收的方法及应用,该方法包括以下步骤:存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域;若是,删除所述IndexAVL树中本次取消映射数据区域覆盖的所有节点;以及建立所述取消映射请求类型的检查点,并在文件对应的UnmapAVL树中插入本次取消映射的数据区域的节点。该方法能够通过IndexAVL树和UnmapAVL树实现取消映射异步执行,避免阻塞上层的取消映射请求的调用;还能够在存储系统收到对文件的读请求时,确保取消映射后未再重新写入的区域不会返回脏数据。

Description

带缓存的存储系统空间回收的方法及应用
技术领域
本发明是关于存储系统领域,特别是关于一种带缓存的存储系统空间回收的方法及应用。
背景技术
存储系统能够以文件、块等方式提供存储给主机使用。操作系统在新建文件的时候向存储系统申请对应的存储空间,随着文件写入数据量的增大,其使用的存储空间也逐渐变大。操作系统在删除文件的时候只是删除文件的索引,文件占用的空间不会真正释放。这使得操作系统已经不再使用的存储空间在存储系统上还是分配的,对于存储系统来说是不清楚操作系统是否还在使用该段空间,这就导致了存储空间的利用率低。
随着存储系统和操作系统的发展,现在操作系统能够发送unmap,trim,discard等请求给存储系统,告知存储系统哪段存储空间可以回收,然后存储系统如果支持unmap,trim,discard等命令则回收该空间,回收后的空间可以再次被分配。
目前大多数存储系统都会利用容量较小但是性能高的SSD(如NVMe SSD)来做缓存,后端使用容量大但是性能较弱的HDD或者STATA SSD,这样整个系统就既能提供很好的性能和存储容量。数据在写入缓存后即可返回给主机,存储系统在后台再把数据写到更慢的存储介质。为了系统的高效性,存储系统在缓存的实现会比后端存储更高效,大部分是直接写存储介质。目前大部分存储系统在收到操作系统的unmap请求后,一般需要先把缓存的数据写入到后端存储,然后再在后端存储系统上回收空间。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种带缓存的存储系统空间回收的方法及应用,解决取消映射前需将缓存数据写入后端存储导致的时间长的问题。
为实现上述目的,本发明的实施例提供了一种带缓存的存储系统空间回收的方法。
在本发明的一个或多个实施方式中,所述方法包括:存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域;若是,删除所述IndexAVL树中本次取消映射数据区域覆盖的所有节点;以及建立所述取消映射请求类型的检查点,并在文件对应的UnmapAVL树中插入本次取消映射的数据区域的节点。
在本发明的一个或多个实施方式中,所述方法还包括:查询所述Index AVL树中是否存在本次写请求数据区域的节点;若是,根据本次写请求更新所述节点;若否,在所述IndexAVL树中插入新节点,并将本次写请求数据写入缓存SSD设备。
在本发明的一个或多个实施方式中,所述方法还包括:查询所述Unmap AVL树中是否存在本次写请求数据区域的节点;若是,删除所述Unmap AVL树中本次写请求数据区域的节点。
在本发明的一个或多个实施方式中,所述方法还包括:缓存系统在收到对文件的读请求后,查询所述文件对应的所述IndexAVL树中是否存在本次读请求数据区域的节点;若是,根据所述节点记录的写操作信息从缓存SSD设备中读取数据;若否,查询所述UnmapAVL树中是否存在本次读请求数据区域的节点;若是,返回预设值;若否,从后端存储读取数据。
在本发明的一个或多个实施方式中,所述方法还包括:将文件的写操作信息记录至对应AVL树的叶子节点,并将所述文件的数据写入缓存SSD设备中,其中,所述写操作信息至少包括:所述缓存SSD设备的ID,所述缓存SSD设备的偏移位置以及对应后端文件的偏移位置。
在本发明的一个或多个实施方式中,所述方法还包括:在存储系统将所述检查点刷到后端存储后,存储系统给后端存储发送取消映射请求,并将所述UnmapAVL树中本次取消映射数据区域的节点删除。
在本发明的一个或多个实施方式中,所述方法还包括:建立创建快照的请求;将数据从缓存系统刷到后端存储,并将所述数据对应的节点从所述Index AVL树中删除;以及后端存储执行快照请求。
在本发明的另一个方面当中,提供了一种带缓存的存储系统空间回收的装置,其包括查询模块、删除模块和建立模块。
查询模块,用于供存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域。
删除模块,用于删除所述IndexAVL树中本次取消映射数据区域覆盖的所有节点。
建立模块,用于建立所述取消映射请求类型的检查点,并在文件对应的UnmapAVL树中插入本次取消映射的数据区域的节点。
在本发明的一个或多个实施方式中,所述查询模块还用于:查询所述Index AVL树中是否存在本次写请求数据区域的节点;若是,根据本次写请求更新所述节点;若否,在所述IndexAVL树中插入新节点,并将本次写请求数据写入缓存SSD设备。
在本发明的一个或多个实施方式中,所述查询模块还用于:查询所述UnmapAVL树中是否存在本次写请求数据区域的节点;若是,删除所述Unmap AVL树中本次写请求数据区域的节点。
在本发明的一个或多个实施方式中,所述查询模块还用于:缓存系统在收到对文件的读请求后,查询所述文件对应的所述IndexAVL树中是否存在本次读请求数据区域的节点;若是,根据所述节点记录的写操作信息从缓存SSD设备中读取数据;若否,查询所述UnmapAVL树中是否存在本次读请求数据区域的节点;若是,返回预设值;若否,从后端存储读取数据。
在本发明的一个或多个实施方式中,所述建立模块还用于:将文件的写操作信息记录至对应AVL树的叶子节点,并将所述文件的数据写入缓存SSD设备中,其中,所述写操作信息至少包括:所述缓存SSD设备的ID,所述缓存SSD设备的偏移位置以及对应后端文件的偏移位置。
在本发明的一个或多个实施方式中,所述删除模块还用于:在存储系统将所述检查点刷到后端存储后,存储系统给后端存储发送取消映射请求,并将所述UnmapAVL树中本次取消映射数据区域的节点删除。
在本发明的一个或多个实施方式中,所述删除模块还用于:建立创建快照的请求;将数据从缓存系统刷到后端存储,并将所述数据对应的节点从所述IndexAVL树中删除;以及后端存储执行快照请求。
在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的带缓存的存储系统空间回收的方法。
在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的带缓存的存储系统空间回收的方法的步骤。
与现有技术相比,根据本发明实施方式的带缓存的存储系统空间回收的方法及应用,其能够通过IndexAVL树和UnmapAVL树实现取消映射异步执行,避免阻塞上层的取消映射请求的调用;还能够在存储系统收到对文件的读请求时,确保取消映射后未再重新写入的区域不会返回脏数据。
附图说明
图1是根据本发明一实施方式的带缓存的存储系统空间回收的方法的总流程图;
图2是根据本发明一实施方式的带缓存的存储系统空间回收的方法的取消映射流程图;
图3是根据本发明一实施方式的带缓存的存储系统空间回收的方法的后端流程图;
图4是根据本发明一实施方式的带缓存的存储系统空间回收的方法的存储系统以及使用存储系统提供存储的主机架构图;
图5是根据本发明一实施方式的带缓存的存储系统空间回收的方法的IndexAVL树示意图;
图6是根据本发明一实施方式的带缓存的存储系统空间回收的方法的UnmapAVL树示意图;
图7是根据本发明一实施方式的带缓存的存储系统空间回收的方法的数据写入流程图;
图8是根据本发明一实施方式的带缓存的存储系统空间回收的方法的数据读取流程图;
图9是根据本发明一实施方式的带缓存的存储系统空间回收的装置的结构图;
图10是根据本发明一实施方式的带缓存的存储系统空间回收的计算设备的硬件结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
如图1至图6所示,介绍本发明的一个实施例中带缓存的存储系统空间回收的方法,该方法包括如下步骤。
在步骤S101中,存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域。
如图4所示是一个存储系统以及使用存储系统提供存储的主机架构图,主机1,主机2等是运行用户应用的主机节点,它们使用存储系统提供的存储来保存用户的数据。存储系统是一个由多个存储节点组成的分布式系统,每个存储节点都有性能好的SSD设备作为缓存,大容量型的HDD或者SSD作为数据的存储池。主机通过调用相应的接口向存储系统申请创建文件,读写数据,以及删除文件。
缓存系统为缓存中的每个文件创建一棵AVL树,AVL树中的节点记录每次对该文件的写操作信息。写操作信息至少包括:DEV-ID:写入的缓存SSD设备的ID,DEV-OFFSET:写入的缓存SSD设备的偏移位置,FILE-OFFSET:对应被写入文件的偏移位置。缓存SSD设备在逻辑上分成多个连续且固定大小的块,如4KB,每次数据写入的大小都是块大小的整数倍,AVL树中的每个节点都包含数据块的信息。
如图5所示是存储系统中一个文件在高速SSD写缓存中的AVL树,AVL树中每个节点包含3个(不固定,可以是其他数值)数据块信息,高速SSD缓存逻辑上划分为多个固定大小的数据块,比如4K。图5是根据缓存数据块对应的文件逻辑地址组成一棵AVL树,如根节点中的‘1024’代表文件的逻辑地址第1024K位置的数据块缓存在SSD设备中,‘2048’表示文件的第2048K的数据块缓存在SSD设备中。
一般的存储系统中,逻辑区块(logical block)和物理区块(physical block)之间存在一种映射(mapping)关系。当索取磁盘空间(例如产生一个文件)或归还磁盘空间(例如删除一个文件)时,都需透过这种映射关系,对物理区块进行操作。此外,当需要实际地释放物理区块的空间时,取消映射(unmap)指令就会传送至存储系统中,以将逻辑区块和物理区块之间的映射关系取消,并对物理区块进行解除分配,以释放物理区块的空间。例如当对存储系统进行删除文件等动作时,会触发送出取消映射指令的机制。当存储系统接受到取消映射指令后,就会根据取消映射的范围,判断需要被取消的映射关系,并一一地对所对应的物理区块进行解除分配,以实际地释放其空间。当存储系统完成对应物理区块的解除分配后,会回复此次取消映射的动作已完成的回应。
在本实施例中,存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域,若IndexAVL树中存在覆盖本次取消映射的数据区域的节点,则代表存储系统的SSD设备中存在需要取消映射的数据,需要取消映射,以释放SSD设备中的该部分空间。
在步骤S102中,删除IndexAVL树中本次取消映射数据区域覆盖的所有节点。
将覆盖本次取消映射的数据区域的节点从IndexAVL树中删除,使得缓存设备的空间可以被循环覆盖写,表示该数据已经不在缓存系统中。
在步骤S103中,建立取消映射请求类型的检查点,并在文件对应的Unmap AVL树中插入本次取消映射的数据区域的节点。
存储系统在收到操作系统的取消映射请求后,删除IndexAVL树中覆盖本次取消映射数据区域的所有节点,存储系统建立一个取消映射请求类型的检查点,并在文件对应的UnmapAVL树中插入覆盖本次取消映射的数据区域的节点。UnmapAVL树用来记录在SSD设备被取消映射,但是在后端存储中还没有取消映射的区域。存储系统把取消映射请求类型的检查点刷到后端存储后,给后端存储发送取消映射请求,将UnmapAVL树中对应数据区域的节点删除,此时,存储系统和后端存储皆完成取消映射。
如图6所示,是一个文件的UnmapAVL树,用来记录这个文件被取消映射的区域,并且此时对应的取消映射请求类型检查点还未刷到后端的大容量数据存储。UmmapAVL树中的每个节点包含多个(在本实施例中是3个)取消映射的区域,每个取消映射区域记录取消映射的起始位置以及长度,如根节点中的(1024,100)表示该取消映射的起始位置为文件的第1024KB,长度为100KB。当有新的取消映射区域需要加入UnmapAVL树中时,需要根据已有的节点做合并,或者删除,或者插入新节点,如在树中加入新的节点(700,200),则左边子节点的(600,100),(800,120),可以合并为新的取消映射区域(600,320)。在取消映射请求类型检查点刷到后端存储后,也需要将该取消映射的区域从UnmapAVL树中删除。
实施例2
如图7所示,介绍本发明的一个实施例中带缓存的存储系统空间回收的方法,该方法包括如下步骤。
在步骤S201中,存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域。
缓存系统为缓存中的每个文件创建一棵AVL树,AVL树中的节点记录每次对该文件的写操作信息。写操作信息至少包括:DEV-ID:写入的缓存SSD设备的ID,DEV-OFFSET:写入的缓存SSD设备的偏移位置,FILE-OFFSET:对应被写入文件的偏移位置。缓存SSD设备在逻辑上分成多个连续且固定大小的块,如4KB,每次数据写入的大小都是块大小的整数倍,AVL树中的每个节点都包含数据块的信息。
在本实施例中,存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域,若IndexAVL树中存在覆盖本次取消映射的数据区域的节点,则代表存储系统的SSD设备中存在需要取消映射的数据,需要取消映射,以释放SSD设备中的该部分空间。
在步骤S202中,删除IndexAVL树中本次取消映射数据区域覆盖的所有节点。
将覆盖本次取消映射的数据区域的节点从IndexAVL树中删除,使得缓存设备的空间可以被循环覆盖写,表示该数据已经不在缓存系统中。
在步骤S203中,建立取消映射请求类型的检查点,并在文件对应的Unmap AVL树中插入本次取消映射的数据区域的节点。
存储系统在收到操作系统的取消映射请求后,删除IndexAVL树中覆盖本次取消映射数据区域的所有节点,存储系统建立一个取消映射请求类型的检查点,并在文件对应的UnmapAVL树中插入覆盖本次取消映射的数据区域的节点。UnmapAVL树用来记录在SSD设备被取消映射,但是在后端存储中还没有取消映射的区域。存储系统把取消映射请求类型的检查点刷到后端存储后,给后端存储发送取消映射请求,将UnmapAVL树中对应数据区域的节点删除,此时,存储系统和后端存储皆完成取消映射。
在步骤S204中,存储系统在收到对文件的写操作时,根据对应的Index AVL树和UnmapAVL树写入数据。
如图7所示,存储系统在收到对文件的写操作后,需要更新IndexAVL树。具体的,查询IndexAVL树中是否存在覆盖写入数据区域的节点,若存在则更新该节点,若不存在则将数据写入缓存SSD设备,记录该次写操作信息,将该写操作信息插入到IndexAVL树的节点中。同时如果本次写操作的数据区域在UnmapAVL树中也有覆盖,则从UnmapAVL树中删除相应的节点,即取消映射的区域被重新写入新数据。
实施例3
如图8所示,介绍本发明的一个实施例中带缓存的存储系统空间回收的方法,该方法包括如下步骤。
在步骤S301中,存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域。
缓存系统为缓存中的每个文件创建一棵AVL树,AVL树中的节点记录每次对该文件的写操作信息。写操作信息至少包括:DEV-ID:写入的缓存SSD设备的ID,DEV-OFFSET:写入的缓存SSD设备的偏移位置,FILE-OFFSET:对应被写入文件的偏移位置。缓存SSD设备在逻辑上分成多个连续且固定大小的块,如4KB,每次数据写入的大小都是块大小的整数倍,AVL树中的每个节点都包含数据块的信息。
在本实施例中,存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域,若IndexAVL树中存在覆盖本次取消映射的数据区域的节点,则代表存储系统的SSD设备中存在需要取消映射的数据,需要取消映射,以释放SSD设备中的该部分空间。
在步骤S302中,删除IndexAVL树中本次取消映射数据区域覆盖的所有节点。
将覆盖本次取消映射的数据区域的节点从IndexAVL树中删除,使得缓存设备的空间可以被循环覆盖写,表示该数据已经不在缓存系统中。
在步骤S303中,建立取消映射请求类型的检查点,并在文件对应的Unmap AVL树中插入本次取消映射的数据区域的节点。
存储系统在收到操作系统的取消映射请求后,删除IndexAVL树中覆盖本次取消映射数据区域的所有节点,存储系统建立一个取消映射请求类型的检查点,并在文件对应的UnmapAVL树中插入覆盖本次取消映射的数据区域的节点。UnmapAVL树用来记录在SSD设备被取消映射,但是在后端存储中还没有取消映射的区域。存储系统把取消映射请求类型的检查点刷到后端存储后,给后端存储发送取消映射请求,将UnmapAVL树中对应数据区域的节点删除,此时,存储系统和后端存储皆完成取消映射。
在步骤S304中,存储系统在收到对文件的读请求时,根据对应的Index AVL树和UnmapAVL树读取数据。
如图8所示,存储系统在收到对文件的读请求后,查询该文件对应的Index AVL树,如果在IndexAVL树中找到覆盖本次读请求数据区域的节点,则表明该数据在缓存系统中,可以根据IndexAVL树中节点信息从缓存SSD设备中直接读取;如果IndexAVL树中查询不到覆盖本次读请求数据区域的节点,则表明该数据不在存储系统中,已经取消映射,进而查询UnmapAVL树中是否存在本次读请求数据区域的节点,若存在则返回预设值给上层,即该段数据已经被取消映射,但是还未刷到后端存储,该数据区域为取消映射后未再重新写入的区域;否则从后端存储系统读取数据。
根据本发明实施方式的带缓存的存储系统空间回收的方法及应用,其能够在存储系统收到对文件的读请求时,确保取消映射后未再重新写入的区域不会返回脏数据。
如图9所示,介绍根据本发明具体实施方式的带缓存的存储系统空间回收的装置。
在本发明的实施方式中,带缓存的存储系统空间回收的装置包括查询模块901、删除模块902和建立模块903。
查询模块901,用于供存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域。
删除模块902,用于删除IndexAVL树中本次取消映射数据区域覆盖的所有节点。
建立模块903,用于建立取消映射请求类型的检查点,并在文件对应的UnmapAVL树中插入本次取消映射的数据区域的节点。
查询模块901还用于:查询IndexAVL树中是否存在本次写请求数据区域的节点;若是,根据本次写请求更新节点;若否,在IndexAVL树中插入新节点,并将本次写请求数据写入缓存SSD设备。
查询模块901还用于:查询UnmapAVL树中是否存在本次写请求数据区域的节点;若是,删除UnmapAVL树中本次写请求数据区域的节点。
查询模块901还用于:缓存系统在收到对文件的读请求后,查询文件对应的IndexAVL树中是否存在本次读请求数据区域的节点;若是,根据节点记录的写操作信息从缓存SSD设备中读取数据;若否,查询UnmapAVL树中是否存在本次读请求数据区域的节点;若是,返回预设值;若否,从后端存储读取数据。
建立模块903还用于:将文件的写操作信息记录至对应AVL树的叶子节点,并将文件的数据写入缓存SSD设备中,其中,写操作信息至少包括:缓存SSD设备的ID,缓存SSD设备的偏移位置以及对应后端文件的偏移位置。
删除模块902还用于:在存储系统将检查点刷到后端存储后,存储系统给后端存储发送取消映射请求,并将UnmapAVL树中本次取消映射数据区域的节点删除。
删除模块902还用于:建立创建快照的请求;将数据从缓存系统刷到后端存储,并将数据对应的节点从IndexAVL树中删除;以及后端存储执行快照请求。
图10示出了根据本说明书的实施例的用于带缓存的存储系统空间回收的计算设备100的硬件结构图。如图10所示,计算设备100可以包括至少一个处理器1001、存储器1002(例如非易失性存储器)、内存1003和通信接口1004,并且至少一个处理器1001、存储器1002、内存1003和通信接口1004经由总线1005连接在一起。至少一个处理器1001执行在存储器1002中存储或编码的至少一个计算机可读指令。
应该理解,在存储器1002中存储的计算机可执行指令当执行时使得至少一个处理器1001进行本说明书的各个实施例中以上结合图1-10描述的各种操作和功能。
在本说明书的实施例中,计算设备100可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-10描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据本发明实施方式的带缓存的存储系统空间回收的方法及应用,其能够通过IndexAVL树和UnmapAVL树实现取消映射异步执行,避免阻塞上层的取消映射请求的调用;还能够在存储系统收到对文件的读请求时,确保取消映射后未再重新写入的区域不会返回脏数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

Claims (9)

1.一种带缓存的存储系统空间回收的方法,其特征在于,所述方法包括:
存储系统在收到操作系统的取消映射请求后,查询文件对应的Index AVL树中是否存在本次取消映射的数据区域;若是,
删除所述Index AVL树中本次取消映射数据区域覆盖的所有节点;
建立所述取消映射请求类型的检查点,并在文件对应的Unmap AVL树中插入本次取消映射的数据区域的节点;
缓存系统在收到对文件的读请求后,查询所述文件对应的所述Index AVL树中是否存在本次读请求数据区域的节点;若是,
根据所述节点记录的写操作信息从缓存SSD设备中读取数据;若否,
查询所述Unmap AVL树中是否存在本次读请求数据区域的节点;若是,
返回预设值;若否,
从后端存储读取数据。
2.如权利要求1所述的带缓存的存储系统空间回收的方法,其特征在于,所述方法还包括:
查询所述Index AVL树中是否存在本次写请求数据区域的节点;若是,
根据本次写请求更新所述节点;若否,
在所述Index AVL树中插入新节点,并将本次写请求数据写入缓存SSD设备。
3.如权利要求2所述的带缓存的存储系统空间回收的方法,其特征在于,所述方法还包括:
查询所述Unmap AVL树中是否存在本次写请求数据区域的节点;若是,
删除所述Unmap AVL树中本次写请求数据区域的节点。
4.如权利要求1所述的带缓存的存储系统空间回收的方法,其特征在于,所述方法还包括:
将文件的写操作信息记录至对应AVL树的叶子节点,并将所述文件的数据写入缓存SSD设备中,其中,所述写操作信息至少包括:所述缓存SSD设备的ID,所述缓存SSD设备的偏移位置以及对应后端文件的偏移位置。
5.如权利要求1所述的带缓存的存储系统空间回收的方法,其特征在于,所述方法还包括:
在存储系统将所述检查点刷到后端存储后,存储系统给后端存储发送取消映射请求,并将所述Unmap AVL树中本次取消映射数据区域的节点删除。
6.如权利要求1所述的带缓存的存储系统空间回收的方法,其特征在于,所述方法还包括:
建立创建快照的请求;
将数据从缓存系统刷到后端存储,并将所述数据对应的节点从所述Index AVL树中删除;以及
后端存储执行快照请求。
7.一种带缓存的存储系统空间回收的装置,其特征在于,所述装置包括:
查询模块,用于供存储系统在收到操作系统的取消映射请求后,查询文件对应的IndexAVL树中是否存在本次取消映射的数据区域;若是,删除模块,用于删除所述Index AVL树中本次取消映射数据区域覆盖的所有节点;并用于缓存系统在收到对文件的读请求后,查询所述文件对应的所述Index AVL树中是否存在本次读请求数据区域的节点;若是,根据所述节点记录的写操作信息从缓存SSD设备中读取数据;若否,查询Unmap AVL树中是否存在本次读请求数据区域的节点;若是,返回预设值;若否,从后端存储读取数据;
建立模块,用于建立所述取消映射请求类型的检查点,并在文件对应的Unmap AVL树中插入本次取消映射的数据区域的节点。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至6中任一项所述的带缓存的存储系统空间回收的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的带缓存的存储系统空间回收的方法的步骤。
CN202210320425.5A 2022-03-29 2022-03-29 带缓存的存储系统空间回收的方法及应用 Active CN114661238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210320425.5A CN114661238B (zh) 2022-03-29 2022-03-29 带缓存的存储系统空间回收的方法及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210320425.5A CN114661238B (zh) 2022-03-29 2022-03-29 带缓存的存储系统空间回收的方法及应用

Publications (2)

Publication Number Publication Date
CN114661238A CN114661238A (zh) 2022-06-24
CN114661238B true CN114661238B (zh) 2024-01-02

Family

ID=82033980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210320425.5A Active CN114661238B (zh) 2022-03-29 2022-03-29 带缓存的存储系统空间回收的方法及应用

Country Status (1)

Country Link
CN (1) CN114661238B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679668A (zh) * 2013-11-26 2015-06-03 群晖科技股份有限公司 存储系统及其控制方法
CN106980541A (zh) * 2017-03-10 2017-07-25 浙江大学 一种大页内存压缩回收系统及方法
WO2019196224A1 (zh) * 2018-04-09 2019-10-17 平安科技(深圳)有限公司 制度信息处理方法、装置、计算机设备和存储介质
CN112799972A (zh) * 2021-01-27 2021-05-14 成都佰维存储科技有限公司 Ssd映射表的实现方法、装置、可读存储介质及电子设备
CN113805816A (zh) * 2021-09-27 2021-12-17 济南浪潮数据技术有限公司 一种磁盘空间管理方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10180901B2 (en) * 2012-10-19 2019-01-15 Oracle International Corporation Apparatus, system and method for managing space in a storage device
US9329792B2 (en) * 2014-01-14 2016-05-03 International Business Machines Corporation Storage thin provisioning and space reclamation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679668A (zh) * 2013-11-26 2015-06-03 群晖科技股份有限公司 存储系统及其控制方法
CN106980541A (zh) * 2017-03-10 2017-07-25 浙江大学 一种大页内存压缩回收系统及方法
WO2019196224A1 (zh) * 2018-04-09 2019-10-17 平安科技(深圳)有限公司 制度信息处理方法、装置、计算机设备和存储介质
CN112799972A (zh) * 2021-01-27 2021-05-14 成都佰维存储科技有限公司 Ssd映射表的实现方法、装置、可读存储介质及电子设备
CN113805816A (zh) * 2021-09-27 2021-12-17 济南浪潮数据技术有限公司 一种磁盘空间管理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114661238A (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
CN110678836B (zh) 用于键值存储的持久性存储器
US11301379B2 (en) Access request processing method and apparatus, and computer device
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
US9690694B2 (en) Apparatus, system, and method for an address translation layer
US7191306B2 (en) Flash memory, and flash memory access method and apparatus
US11782632B2 (en) Selective erasure of data in a SSD
CN108604165B (zh) 存储装置
US20170024140A1 (en) Storage system and method for metadata management in non-volatile memory
WO2009033419A1 (fr) Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données
US11030092B2 (en) Access request processing method and apparatus, and computer system
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
WO2012021847A2 (en) Apparatus, system and method for caching data
CN116069681A (zh) 一种磁盘空间回收方法、装置、电子设备以及存储介质
KR101077901B1 (ko) 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
US20240020014A1 (en) Method for Writing Data to Solid-State Drive
CN112035065B (zh) 一种数据写入方法、装置、设备及计算机可读存储介质
CN114661238B (zh) 带缓存的存储系统空间回收的方法及应用
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
CN108984432B (zh) 一种处理io请求的方法及装置
CN113254265A (zh) 基于固态硬盘的快照实现方法、存储系统
CN116368472A (zh) 数据处理方法及相关设备
CN117149076A (zh) Ssd控制器raid条带动态管理方法、装置和计算机设备

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