掌桥专利:专业的专利平台
掌桥专利
首页

文件系统的垃圾回收方法以及相关装置

文献发布时间:2023-06-19 18:53:06


文件系统的垃圾回收方法以及相关装置

技术领域

本申请涉及文件系统技术领域,特别是涉及文件系统的垃圾回收方法以及相关装置。

背景技术

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

文件系统使用的异地更新的方式,会导致存储设备里面产生垃圾逻辑块,随着数据的不断写入,整个存储设备空间的逻辑块会被写满,为进一步写入更多数据,因此需要垃圾回收来释放垃圾逻辑块以供新文件数据的写入。

发明内容

本申请主要解决的技术问题是提供文件系统的垃圾回收方法以及相关装置,提升了文件系统垃圾回收的性能,同时能够减小存储设备的写放大,提升存储器的寿命。

为了解决上述问题,本申请采用的一种技术方案是提供一种文件系统的垃圾回收方法,该方法应用于存储器,该方法包括:获取垃圾回收命令;基于垃圾回收命令,获取垃圾回收命令中的有效逻辑块和目标逻辑块;将有效逻辑块与物理块的映射关系更换为目标逻辑块与物理块的映射关系。

其中,将有效逻辑块与物理块的映射关系更换为目标逻辑块与物理块的映射关系,包括:从映射表中查找有效逻辑块对应的第一映射关系;获取映射关系中的物理块;建立目标逻辑块与物理块的第二映射关系,清除第一映射关系。

其中,获取垃圾回收命令,包括:获取外部控制设备发送的垃圾回收命令,垃圾回收命令是基于外部控制设备和存储器之间的接口协议自定义确定的。

为了解决上述问题,本申请采用的另一种技术方案是提供一种文件系统的垃圾回收方法,该方法应用于外部控制设备,该方法包括:生成垃圾回收命令;将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令,获取垃圾回收命令中的有效逻辑块和目标逻辑块;将有效逻辑块与物理块的映射关系更换为目标逻辑块与物理块的映射关系。

其中,生成垃圾回收命令之前,包括:确定第一目标逻辑段;对文件系统中的逻辑段进行处理,确定第二目标逻辑段;确定第二目标逻辑段中的有效逻辑块,以及第一目标逻辑段中的目标逻辑块;基于有效逻辑块和目标逻辑块生成垃圾回收命令。

其中,对文件系统中的逻辑段进行处理,确定第二目标逻辑段,包括:获取文件系统中的每个逻辑段中无效逻辑块或有效逻辑块的数量;将无效逻辑块或有效逻辑块的数量满足预设条件的逻辑段确定为第二目标逻辑段;其中,第二目标逻辑段位于第一目标逻辑段前。

其中,将无效逻辑块或有效逻辑块的数量满足预设条件的逻辑段确定为第二目标逻辑段,包括:将无效逻辑块数量最多的逻辑段确定为第二目标逻辑段或将有效逻辑块数量最少的逻辑段确定为第二目标逻辑段;其中,有效逻辑块的数量至少为1。

其中,对文件系统中的逻辑段进行处理,确定第二目标逻辑段,包括:获取文件系统中的每个逻辑段中对应的回收消耗;将回收消耗最小的逻辑段确定为第二目标逻辑段。

其中,垃圾回收命令是基于外部控制设备和存储器之间的接口协议自定义确定的。

为了解决上述问题,本申请采用的另一种技术方案是提供一种存储器,该存储器包括处理器以及与处理器耦接的存储阵列;其中,存储阵列用于存储计算机程序,处理器用于执行计算机程序,以实现如上述任一技术方案提供的方法。

为了解决上述问题,本申请采用的另一种技术方案是提供一种外部控制设备,该外部控制设备包括处理器以及与处理器耦接的存储器;其中,存储器用于存储计算机程序,处理器用于执行计算机程序,以实现如上述任一技术方案提供的方法。

为了解决上述问题,本申请采用的另一种技术方案是提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序在被处理器执行时,用于实现如上述任一技术方案提供的方法。

本申请的有益效果是:区别于现有技术的情况,本申请提供的文件系统的垃圾回收方法、外部控制设备、存储器及存储介质。该方法通过获取垃圾回收命令;基于垃圾回收命令,获取垃圾回收命令中的有效逻辑块和目标逻辑块;将有效逻辑块与物理块的映射关系更换为目标逻辑块与物理块的映射关系方式进行垃圾回收,无需外部控制设备和存储器对逻辑块的数据进行读取再写入,减少外部控制设备和存储器之间的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能,以及文件系统垃圾回收的性能,且存储器内部也无需进行数据的读取和写入,能够减小存储器的写放大,提升存储器的寿命。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请提供的文件系统的垃圾回收方法一实施例的流程示意图;

图2是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图;

图3是本申请提供的文件系统的垃圾回收方法一应用场景示意图;

图4是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图;

图5是本申请提供的步骤42一实施例的流程示意图;

图6是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图;

图7是本申请提供的步骤62一实施例的流程示意图;

图8是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图;

图9是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图。

图10是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图;

图11和图12是本申请提供的文件系统的垃圾回收方法另一应用场景示意图;

图13是本申请提供的外部控制设备一实施例的结构示意图;

图14是本申请提供的存储器一实施例的结构示意图;

图15是本申请提供计算机可读存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

参阅图1,图1是本申请提供的文件系统的垃圾回收方法一实施例的流程示意图。该方法包括:

步骤111:终端设备生成数据读取命令,将数据读取命令发送给存储器。

其中,存储器可以设置于终端设备内部,也可以设置于终端设备外部,用于存储终端设备的数据、系统、程序等信息。

在数据写入时,文件系统会对应的将数据的逻辑地址写入目标逻辑段的逻辑块中。当该数据更新后,会产生新的逻辑地址,新的逻辑地址将写入另一目标逻辑段的逻辑块中,此时,原逻辑块就没有用了。而按照文件系统的特性,在数据写入读取的过程中,会产生很多这样的无效逻辑块,这些逻辑块对应的逻辑段可以进行回收,以节省空间。

终端设备会确定逻辑段和该逻辑段上的有效逻辑块,然后基于有效逻辑块生成数据读取命令。即,数据读取命令的读取目标为该有效逻辑块。

步骤112:存储器基于数据读取命令确定第一逻辑段上需要回收的逻辑块,并将逻辑块的数据发送至终端设备。

存储器在接收到数据读取命令后,根据数据读取命令确定需要回收的逻辑块,即有效逻辑块,然后通过与终端设备连接的主机接口将该逻辑块的数据发送至终端设备。

步骤113:终端设备接收逻辑块的数据,基于逻辑块的数据生成数据写入命令,将逻辑块的数据和数据写入命令发送给存储器。

终端设备会确定数据写入的目标逻辑段中的逻辑块,基于这些信息生成数据写入命令。

步骤114:存储器基于数据写入命令将逻辑块的数据存储至第二逻辑段上的逻辑块,对第一逻辑段进行回收。

存储器将逻辑块的数据存储至第二逻辑段上的逻辑块,此时第一逻辑段上的逻辑块均是可回收的,然后对第一逻辑段进行回收。此时,该第一逻辑段可再次进行逻辑块数据写入。

在本实施例中,提供上述的方式进行文件系统的垃圾回收,以保证文件系统的性能。

申请人研究发现,在上述实施例中,通过终端设备和存储器对逻辑块的数据进行读取再写入的方式,会占用了终端设备与存储器之间的接口带宽,影响终端设备与存储器之间的读写性能。基于此,提出以下技术方案进行解决。

参阅图2,图2是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图。本实施例应用于外部控制设备。该方法包括:

步骤21:生成垃圾回收命令。

本申请中提及的文件系统是以log-structured(日志结构)建立的。如该文件系统可以是F2FS文件系统、LFS文件系统等。

外部控制设备可以按照设定间隔时间生成垃圾回收命令,以对存储器中对应的文件系统的无效逻辑块进行回收,以增加数据可写入的空间。

外部控制设备还可以检测到存储器中对应的文件系统的可用逻辑块空间低于阈值时,进行垃圾回收,从而生成垃圾回收命令。

垃圾回收命令是基于外部控制设备和存储器之间的接口协议自定义确定的。

如,外部控制设备与存储器之间的接口协议为NVMe(Non-Volatile MemoryExpress,非易失性存储器标准)协议,则根据NVMe协议的命令要求来自定义垃圾回收命令。如按照NVMe协议中命令的规范,定义垃圾回收命令的命令头,以使存储器能够在获取到该命令时,能够进行解析。

如,外部控制设备与存储器之间的接口协议为UFS(Universal Flash Storage,通用闪存存储)协议,则根据UFS协议的命令要求来自定义垃圾回收命令。如按照UFS协议中命令的规范,定义垃圾回收命令的命令头,以使存储器能够在获取到该命令时,能够进行解析。

在其他实施例中,外部控制设备与存储器之间的接口协议可以是其他协议,这里不再一一列举。

步骤22:将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收。

其中,文件系统至少包括第一目标逻辑块和第二目标逻辑块,第一目标逻辑块和第二目标逻辑块位于不同的逻辑段,第一目标逻辑块包括无效逻辑块和有效逻辑块,有效逻辑块的数据将转移至第二目标逻辑块上,无效逻辑块和有效逻辑块被回收。

结合图3进行说明:

在图3中,逻辑块8、逻辑块9、逻辑块10、逻辑块11、逻辑块12、逻辑块13、逻辑块14和逻辑块15为同一逻辑段,逻辑块32、逻辑块33、逻辑块34、逻辑块35、逻辑块36、逻辑块37、逻辑块38和逻辑块39为同一逻辑段。

其中,逻辑块8、逻辑块9、逻辑块10、逻辑块12和逻辑块13为有效逻辑块,逻辑块11、逻辑块14和逻辑块15为无效逻辑块。经过确认,逻辑块8、逻辑块9、逻辑块10、逻辑块11、逻辑块12、逻辑块13、逻辑块14和逻辑块15这个逻辑段需要被回收,也就是说逻辑块8、逻辑块9、逻辑块10、逻辑块12和逻辑块13需要数据搬移。

此时,确定逻辑块8、逻辑块9、逻辑块10、逻辑块12和逻辑块13可以搬移至逻辑块32、逻辑块33、逻辑块34、逻辑块35、逻辑块36中。因此,基于这些信息生成垃圾回收命令,该命令为逻辑块8搬移至逻辑块32、逻辑块9搬移至逻辑块33、逻辑块10搬移至逻辑块34、逻辑块12搬移至逻辑块35和逻辑块13搬移至逻辑块36。

存储器基于垃圾回收命令在存储器内部对文件系统进行逻辑块的搬移,搬移后将逻辑块8、逻辑块9、逻辑块10、逻辑块11、逻辑块12、逻辑块13、逻辑块14和逻辑块15这一段进行回收。

在本实施例中,通过将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收的方式,无需外部控制设备和存储器对逻辑块的数据进行读取再写入,减少外部控制设备和存储器之间的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能。

参阅图4,图4是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图。本实施例应用于外部控制设备。该方法包括:

步骤41:确定第一目标逻辑段。

在步骤41之前,可以获取文件系统的可用逻辑段数量;若可用逻辑段数量小于预设数量,则确定第一目标逻辑段。

如,文件系统中的总的逻辑段数量为1000,此时可用的逻辑段为200,即已经用了800个逻辑段,预设数量可以设置为300,可用逻辑段数量小于预设数量,则可以从可用逻辑段中确定第一目标逻辑段,以配合垃圾回收。

步骤42:对文件系统中的逻辑段进行处理,确定第二目标逻辑段。

步骤42主要是从已经用过的逻辑段中确定可以回收的第二目标逻辑段。

在一些实施例中,参阅图5,步骤42可以是如下流程:

步骤421:获取文件系统中的每个逻辑段中无效逻辑块或有效逻辑块的数量。

在本实施例中,将存在逻辑地址的逻辑块称为有效逻辑块,没有逻辑地址的逻辑块称为无效逻辑块。在进行无效逻辑块或有效逻辑块确定时,主要是针对已经使用的逻辑段。已经使用的逻辑段上的有效逻辑块的数据被修改后,修改后的数据会存储至其余逻辑段的逻辑块上,该逻辑块就会变为无效逻辑块。

步骤422:将无效逻辑块或有效逻辑块的数量满足预设条件的逻辑段确定为第二目标逻辑段。

其中,第二目标逻辑段位于第一目标逻辑段前。

具体地,可以将无效逻辑块数量最多的逻辑段确定为第二目标逻辑段。

具体地,可以将有效逻辑块数量最少的逻辑段确定为第二目标逻辑段。

具体地,可以将无效逻辑块数量最多的逻辑段和有效逻辑块数量最少的逻辑段确定为第二目标逻辑段。

其中,有效逻辑块的数量至少为1。

举例说明:

每一逻辑段的容量有2MB,每一逻辑块的容量为4KB,则每一逻辑段有512个逻辑块。可以将预设条件设置为逻辑段中无效逻辑块的数量大于200,或者逻辑段中有效逻辑块的数量小于312。将满足这些条件的逻辑段确定为待回收的逻辑段,即第二目标逻辑段。

步骤43:确定第二目标逻辑段中的有效逻辑块,以及第一目标逻辑段中的第二目标逻辑块。

此时,确定第二目标逻辑段后,就可以确定需要搬移的有效逻辑块,以及有效逻辑块对应的第一目标逻辑块中的第二目标逻辑块。

如,确定第二目标逻辑段A中的逻辑块1、逻辑块2、逻辑块3和逻辑块4需要搬移,则这些逻辑块为有效逻辑块,则对应的寻找第一目标逻辑段中的空闲的第二目标逻辑块,以便数据存储。如,两个需要回收的第二目标逻辑段中的有效逻辑块的数据搬移至一个第一目标逻辑段中。这样便能够空闲出一个逻辑段。

步骤44:基于有效逻辑块和第二目标逻辑块生成垃圾回收命令。

如,逻辑块1、逻辑块2和逻辑块3需要数据搬移;第二目标逻辑块中的空闲逻辑块为逻辑块32、逻辑块33、逻辑块34。则垃圾回收命令可以是逻辑块1的数据映射到逻辑块32、逻辑块2的数据映射到逻辑块33、逻辑块3的数据映射到逻辑块34。

步骤45:将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收。

存储器接收到该垃圾回收命令后,在存储器内部将有效逻辑块8的数据映射到逻辑块32、有效逻辑块9的数据映射到逻辑块33、有效逻辑块10的数据映射到逻辑块34,此时,有效逻辑块8对应的逻辑段可被回收。

在本实施例中,通过确定文件系统中的可以被回收的逻辑段的方式,减少对所有逻辑段的垃圾回收,避免过度的占用存储器,同时将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收的方式,无需外部控制设备和存储器对逻辑块的数据进行读取再写入,减少外部控制设备和存储器之间的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能。

参阅图6,图6是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图。本实施例应用于外部控制设备。该方法包括:

步骤61:确定第一目标逻辑段。

步骤62:获取文件系统中的每个逻辑段中对应的回收消耗。

回收消耗表示每个逻辑段回收所带来的影响。回收消耗越小,则该逻辑段越值得回收。

具体的,可以计算每一逻辑段所带来的回收消耗,如考虑逻辑段中的有效逻辑块数量、每一有效逻辑块的数据修改时间等。

在一些实施例中,参阅图7,步骤62可以是以下流程:

步骤621:获取每个逻辑段中的无效逻辑块或有效逻辑块的数量以及有效逻辑块对应的数据修改时间。

步骤622:根据无效逻辑块或有效逻辑块的数量以及有效逻辑块对应的数据修改时间计算得到每个逻辑段中对应的回收消耗。

其中,数据修改时间在计算是的权重要高于无效逻辑块或有效逻辑块的数量的权重,因数据修改时间意味着该数据是否经常被修改,若该数据经常被修改,实质上其每次修改就已经搬移了,成为了无效数据块,成为无效逻辑块后就不需要进行数据搬移。因此,在其未被修改前就在垃圾回收时被搬移,回收该逻辑块的消耗就变大了。

步骤63:将回收消耗最小的逻辑段确定为第二目标逻辑段。

在一些实施例中,可以将回收消耗满足阈值的逻辑段确定为第二目标逻辑段对文件系统中的逻辑段进行处理,确定第二目标逻辑段。

步骤64:确定第二目标逻辑段中的有效逻辑块,以及第一目标逻辑段中的第二目标逻辑块。

步骤65:基于有效逻辑块和第二目标逻辑块生成垃圾回收命令。

步骤66:将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收。

在本实施例中,通过回收消耗来确定文件系统中的可以被回收的逻辑段,能够提升垃圾回收的性能,减少不必要的回收,同时将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收的方式,无需外部控制设备和存储器对逻辑块的数据进行读取再写入,减少外部控制设备和存储器之间的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能。

参阅图8,图8是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图。本实施例用于表示外部控制设备与存储器之间的交互。该方法包括:

步骤81:外部控制设备生成垃圾回收命令。

步骤81与上述任一实施例具有相同或相似的技术方案,这里不做赘述。

步骤82:将垃圾回收命令发送给存储器。

步骤83:存储器获取垃圾回收命令中的有效逻辑块对应的数据,并将数据存储于存储器内部的缓存中。

存储器在接收到垃圾回收命令后,因垃圾回收命令中对应有需要数据搬移的有效逻辑块。则存储器可以获取该有效逻辑块的数据,然后将其存储于内部的缓存中,无需发送至外部控制设备。

步骤84:存储器将有效逻辑块的数据将转移至第二目标逻辑块上。

因垃圾回收命令中对应有第二目标逻辑块,即数据搬移的目标逻辑块。则存储器将缓存的有效逻辑块的数据转移至第二目标逻辑块上。通过缓存的方式能够加快对数据的转移。通常垃圾回收时,需要搬移的有效逻辑块的数据较多,若直接将有效逻辑块的数据转移至第二目标逻辑块,不通过缓存,则需要在每一次转移完成后,则继续下一个有效逻辑块的转移,这样会消耗很多时间,而将数据转移至缓存中,再从缓存转移至第二目标逻辑块的方式,两个流程可以同时进行,在从缓存转移至第二目标逻辑块时,可以将下一有效逻辑块的数据存进缓存中,如此可以提高垃圾回收的效率。

步骤85:存储器清除有效逻辑块与物理块的映射关系。

步骤85可以在接收到垃圾回收时同步清除垃圾回收命令中的有效逻辑块与物理块的映射关系。

步骤86:存储器建立第二目标逻辑块与物理块的映射关系。

在有效逻辑块的数据搬移至第二目标逻辑块后,建立第二目标逻辑块与物理块的映射关系。

步骤87:回收无效逻辑块和有效逻辑块。

有效逻辑块的数据搬移后,该有效逻辑块也变为了无效逻辑块,此时将全是无效逻辑块的第二目标逻辑段进行回收。

然后向外部控制设备发送垃圾回收完成的消息。

在本实施例中,通过将垃圾回收命令发送给存储器,以使存储器在内部以缓存的方式进行文件系统的垃圾回收,不仅提升垃圾回收的效率,而且无需外部控制设备和存储器对逻辑块的数据进行读取再写入,减少外部控制设备和存储器之间的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能。

参阅图9,图9是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图。本实施例应用于存储器。该方法包括:

步骤91:获取垃圾回收命令。

在一些实施例中,存储器获取外部控制设备发送的垃圾回收命令。垃圾回收命令是基于外部控制设备和存储器之间的接口协议自定义确定的。

如,外部控制设备与存储器之间的接口协议为NVMe(Non-Volatile MemoryExpress,非易失性存储器标准)协议,则根据NVMe协议的命令要求来自定义垃圾回收命令。如按照NVMe协议中命令的规范,定义垃圾回收命令的命令头,以使存储器能够在获取到该命令时,能够进行解析。

如,外部控制设备与存储器之间的接口协议为UFS(Universal Flash Storage,通用闪存存储)协议,则根据UFS协议的命令要求来自定义垃圾回收命令。如按照UFS协议中命令的规范,定义垃圾回收命令的命令头,以使存储器能够在获取到该命令时,能够进行解析。

在其他实施例中,外部控制设备与存储器之间的接口协议可以是其他协议,这里不再一一列举。

外部控制设备生成垃圾回收命令的方式与上述任一实施例具有相同或相似的技术方案,这里不做赘述。

步骤92:基于垃圾回收命令,获取垃圾回收命令中的有效逻辑块和目标逻辑块。

其中,有效逻辑块为需要数据迁移的逻辑块,目标逻辑块为该有效逻辑块本次迁移的目标。

步骤93:将有效逻辑块与物理块的映射关系更换为目标逻辑块与物理块的映射关系。

此时,可以在存储设备中的映射表中获取该有效逻辑块与物理块的映射关系,即有效逻辑地址与物理地址的关系。这样对应得到了与有效逻辑块对应的物理块。将有效逻辑地址与物理地址的关系更改为目标逻辑块与物理块的映射关系。

如,有效逻辑块为A,对应的物理块为B,此时A与B形成映射关系。在需要对有效逻辑块为A进行垃圾回收时,确定目标逻辑块为C,则将A与B的映射关系,在映射表中更换为C与B的映射关系。将A映射到一个特殊物理地址。该物理地址可以表示该逻辑块无效。

此时,有效逻辑块为A就可以被回收。

在本实施例中,存储器通过接收垃圾回收命令,对垃圾回收命令中有效逻辑块和目标逻辑块进行逻辑地址重映射的方式,无需外部控制设备和存储器对逻辑块的数据进行读取再写入,减少外部控制设备和存储器之间的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能,以及文件系统垃圾回收的性能,且存储器内部也无需进行数据的读取和写入,能够减小存储器的写放大,提升存储器的寿命。

参阅图10,图10是本申请提供的文件系统的垃圾回收方法另一实施例的流程示意图。本实施例应用于存储器。该方法包括:

步骤101:获取垃圾回收命令。

步骤102:基于垃圾回收命令,获取垃圾回收命令中的有效逻辑块和目标逻辑块。

步骤103:从映射表中查找有效逻辑块对应的第一映射关系。

步骤104:获取映射关系中的物理块。

步骤105:建立目标逻辑块与物理块的第二映射关系,清除第一映射关系。

结合图11和图12进行说明:

在图11中,右侧表示逻辑块与物理块的映射关系,左侧为存储器中的内存颗粒。如图11所示,LBA1对应PAA1,LBA2对应PAA2,LBA3对应PAA3,LBA4对应PAA4。其中,PAA1对应颗粒a,PAA2对应颗粒g,PAA3对应颗粒m,PAA4对应颗粒s。

此时,存储器接收到垃圾回收命令,该命令中确定需要对LBA2进行回收,则存储器获取垃圾回收命令中的有效逻辑块为LBA2和目标逻辑块LBA5;从映射表中查找有效逻辑块LBA2对应的物理块为PAA2。如图12所示,建立目标逻辑块LBA5与物理块PAA2的映射关系,清除有效逻辑块LBA2对应的物理块为PAA2的映射关系。PAA2依旧指向颗粒g。此时有效逻辑块LBA2已无效,可被回收。

在本实施例中,存储器通过接收垃圾回收命令,对垃圾回收命令中有效逻辑块和目标逻辑块进行逻辑地址重映射的方式,无需外部控制设备和存储器对逻辑块的数据进行读取再写入,减少外部控制设备和存储器之间的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能,并且存储器内部也无需进行数据的读取和写入,减小存储器的写放大,提升存储器的寿命。

参阅图13,图13是本申请提供的外部控制设备一实施例的结构示意图。该外部控制设备130包括处理器131以及与处理器131耦接的存储器132;其中,存储器132用于存储计算机程序,处理器131用于执行计算机程序,以实现以下方法:

生成垃圾回收命令;将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收;其中,文件系统至少包括第一目标逻辑块和第二目标逻辑块,第一目标逻辑块和第二目标逻辑块位于不同的逻辑段,第一目标逻辑块包括无效逻辑块和有效逻辑块,有效逻辑块的数据将转移至第二目标逻辑块上,无效逻辑块和有效逻辑块被回收。

可以理解,处理器131还用于执行计算机程序,以实现上述任一实施例提供的方法。

在本实施例中,存储器132可以是外接存储设备,也可以是外部控制设备130内部设置的存储设备。

该存储器132可以是固态硬盘等基于闪存架构的存储设备。

在一些实施例中,外部控制设备130可以是电脑等终端设备,或者是手机和平板电脑等移动设备。

参阅图14,图14是本申请提供的存储器一实施例的结构示意图。该存储器140包括处理器141以及与处理器141耦接的存储阵列142;其中,存储阵列142用于存储计算机程序,处理器141用于执行计算机程序,以实现以下方法:

获取垃圾回收命令;基于垃圾回收命令,获取垃圾回收命令中的有效逻辑块和目标逻辑块;将有效逻辑块与物理块的映射关系更换为目标逻辑块与物理块的映射关系。

在本实施例中,存储阵列142可以分为计算机程序存储区域和数据存储区域。

可以理解,处理器141还用于执行计算机程序,以实现上述任一由存储器140内部参与的技术方案。

参阅图15,图15是本申请提供计算机可读存储介质一实施例的结构示意图。该计算机可读存储介质150用于存储计算机程序151,计算机程序151在被处理器执行时,用于实现以下方法:

生成垃圾回收命令;将垃圾回收命令发送给存储器,以使存储器基于垃圾回收命令在存储器内部对文件系统进行垃圾回收;其中,文件系统至少包括第一目标逻辑块和第二目标逻辑块,第一目标逻辑块和第二目标逻辑块位于不同的逻辑段,第一目标逻辑块包括无效逻辑块和有效逻辑块,有效逻辑块的数据将转移至第二目标逻辑块上,无效逻辑块和有效逻辑块被回收;

或,获取垃圾回收命令;基于垃圾回收命令,获取垃圾回收命令中的有效逻辑块和目标逻辑块;将有效逻辑块与物理块的映射关系更换为目标逻辑块与物理块的映射关系。

可以理解,计算机程序151在被处理器执行时,还用于实现上述任一实施例的方法,这里不做赘述。

综上,本申请通过上述任一实施例的方案,对文件系统层面进行垃圾回收,存储器在处理该垃圾回收命令时,无需与外部控制设备进行数据读取和写入的交互,减少对外部控制设备与存储器之间的接口带宽的占用,能够提升外部控制设备与存储器之间的读写性能。

进一步,存储器中也无需数据搬移,只需更改逻辑地址到物理地址的映射,就能完成文件系统层面的垃圾回收。由于无需用户数据的搬移,本申请的技术方案能够提升文件系统垃圾回收性能,同时还能减小存储器写放大,从而能够提升存储器寿命。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 一种存储系统的垃圾回收方法及相关装置
  • 一种文件系统健康状况的检测方法及相关装置
  • 一种文件系统的文件权限管理方法、系统及相关装置
  • 基于可变长大块的垃圾回收方法与装置
  • 文件系统的垃圾回收方法以及相关装置
  • 一种集群文件系统的数据备份方法及相关装置
技术分类

06120115723447