一种分布式系统文件的删除方法、装置、设备及存储介质与流程

文档序号:20683254发布日期:2020-05-08 18:36阅读:242来源:国知局
一种分布式系统文件的删除方法、装置、设备及存储介质与流程

本发明涉及分布式存储技术领域,特别是涉及一种分布式系统文件的删除方法、装置、设备及存储介质。



背景技术:

目前的分布式存储文件系统中,当一个文件创建时,元数据服务(metadataserver,简称mds)会一次性给这个文件的元数据预分配8*4m(4m为基带值默认值)的大小,如果该文件在写入的过程需要的空间超过了该值,mds会继续给这个文件的元数据预分配空间,如果未超过将不会再次分配空间给这个文件,但是也不会更改该文件元数据中标识的预分配空间大小值,文件元数据预分配的大小并不是文件真实占据的大小,只是在元数据中对文件可能的最大大小的一个标识。

当前分布式文件系统中一般存在多个mds,业务模型中一般也会存在不止一个的子树(subtree)。特别是如果业务大部分为小文件(小于4m)的读写、删除操作,那么在该类场景下,对文件进行删除的时候,会由于删除操作需要等待不同mds间对子树根主副本进行加解锁;同时,虽然文件本身只写入了部分数据,但是删除时需要将文件分解为4m一个大小的待删除对象,这样这些小文件虽然本身只写入了4m左右的数据,但还是会分为8个待删除对象,由mds下发给对象存储设备(objectstoragedevice,osd)完成删除操作。这些加锁及多余的删除下发操作都会造成文件删除效率的降低;若多个mds上存在待删除业务的子树根数目差别较大,也会造成有些mds负载过高从而导致整体删除效率的降低。

因此,如何在分布式存储文件系统下提高文件的删除效率,是本领域技术人员亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种分布式系统文件的删除方法、装置、设备及存储介质,可以提高文件删除效率。其具体方案如下:

一种分布式系统文件的删除方法,包括:

查询某一mds上对应的子树根下是否还有未完成的文件删除操作;

若有未完成的文件删除操作,则继续删除所述子树根在对应的mds下的数据,并判断所述子树根是否是副本;

若所述子树根是副本,则在mds的内存中删除所述子树根副本。

优选地,在本发明实施例提供的上述分布式系统文件的删除方法中,还包括:

若没有未完成的文件删除操作,在分布式系统中创建定时删除任务;

根据创建的所述定时删除任务,均衡不同mds间待删除子树根数目。

优选地,在本发明实施例提供的上述分布式系统文件的删除方法中,根据创建的所述定时删除任务,均衡不同mds间待删除子树根数目,具体包括:

获取并记录每个mds上存在所述定时删除任务的待删除子树根数目;

计算所有mds上待删除子树根数目的平均值;

从待删除子树根数目最多的对应的mds开始,依次向低于所述平均值的mds迁移待删除子树根,直至没有mds对应的待删除子树根数目小于所述平均值。

优选地,在本发明实施例提供的上述分布式系统文件的删除方法中,还包括:

根据文件实际大小,对待删除文件进行分割及删除操作。

优选地,在本发明实施例提供的上述分布式系统文件的删除方法中,根据文件实际大小,对待删除文件进行分割及删除操作,具体包括:

根据文件实际大小,将待删除文件分割为多个大小等于条带值的待删除对象;

将所述待删除对象按照设定顺序依次发送给所述待删除对象对应的osd;

通过所述osd对所有的所述待删除对象进行磁盘删除操作。

本发明实施例还提供了一种分布式系统文件的删除装置,包括:

操作查询模块,用于查询某一mds上对应的子树根下是否还有未完成的文件删除操作;

副本判断模块,用于若有未完成的文件删除操作,则继续删除所述子树根在对应的mds下的数据,并判断所述子树根是否是副本;

副本删除模块,用于若所述子树根是副本,则在mds的内存中删除所述子树根副本。

优选地,在本发明实施例提供的上述分布式系统文件的删除装置中,还包括:

任务创建模块,用于若没有未完成的文件删除操作,在分布式系统中创建定时删除任务;

子树根均衡模块,用于根据创建的所述定时删除任务,均衡不同mds间待删除子树根数目。

优选地,在本发明实施例提供的上述分布式系统文件的删除装置中,还包括:

文件分割模块,用于根据文件实际大小,对待删除文件进行分割及删除操作。

本发明实施例还提供了一种分布式系统文件的删除设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如本发明实施例提供的上述分布式系统文件的删除方法。

本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本发明实施例提供的上述分布式系统文件的删除方法。

从上述技术方案可以看出,本发明所提供的一种分布式系统文件的删除方法、装置、设备及存储介质,包括:查询某一mds上对应的子树根下是否还有未完成的文件删除操作;若有未完成的文件删除操作,则继续删除子树根在对应的mds下的数据,并判断子树根是否是副本;若子树根是副本,则在mds的内存中删除子树根副本。

本发明通过上述步骤可以减少分布式文件系统中子树根的副本数目,从而减小不同mds之间主副本加锁的交互次数,进而提高文件删除效率,提升产品用户友好度和差异化竞争力。

附图说明

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

图1为本发明实施例提供的分布式系统文件的删除方法的流程图之一;

图2为本发明实施例提供的分布式系统文件的删除方法的流程图之二;

图3为本发明实施例提供的分布式系统文件的删除装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种分布式系统文件的删除方法,如图1所示,包括以下步骤:

s101、对某一mds下的删除业务进行文件删除操作;

s102、在每次删除完成后,查询某一mds上对应的子树根下是否还有未完成的文件删除操作;

若有未完成的文件删除操作,则执行步骤s103;

s103、继续删除子树根在对应的mds下的数据,并判断子树根是否是副本;

若子树根是副本,则执行步骤s104;若子树根是主本,直接跳过即可;这里通过子树根的inode中的属性标志,就可以判断是主本还是副本;

s104、在mds的内存中删除子树根副本。

在本发明实施例提供的上述分布式系统文件的删除方法中,包括:查询某一mds上对应的子树根下是否还有未完成的文件删除操作;若有未完成的文件删除操作,则继续删除子树根在对应的mds下的数据,并判断子树根是否是副本;若子树根是副本,则在mds的内存中删除子树根副本。通过上述步骤可以减少分布式文件系统中子树根的副本数目,从而减小不同mds之间主副本加锁的交互次数,进而提高文件删除效率,提升产品用户友好度和差异化竞争力。

在具体实施时,在本发明实施例提供的上述分布式系统文件的删除方法中,如图2所示,还可以包括:

若没有未完成的文件删除操作,则执行步骤s105;

s105、在分布式系统中创建定时删除任务;需要了解的是,该定时删除任务中的时间可以由用户根据业务情况指定,一般选择正常非删除业务较少的实收;在任务启动后进行如下操作:

s106、根据创建的定时删除任务,均衡不同mds间待删除子树根数目。

通过步骤s106可以使不同mds间待删除的子树根数目大致一致,从而使不同mds间的删除业务压力大致一致,充分发挥所有mds的性能,进而达到提升整体删除性能的目的。

进一步地,在具体实施时,步骤s106根据创建的定时删除任务,均衡不同mds间待删除子树根数目,具体可以包括以下步骤:

步骤一、获取并记录每个mds上存在定时删除任务的待删除子树根数目;

步骤二、计算所有mds上待删除子树根数目的平均值;

步骤三、从待删除子树根数目最多的对应的mds开始,依次向低于平均值的mds迁移待删除子树根;在实际应用中,在达到平均值(平均值可能不是整数,达到整数值即可)后,选择当前待删除子树根数目最高的mds,再次重复步骤三,直至没有mds对应的待删除子树根数目小于平均值。

在具体实施时,在本发明实施例提供的上述分布式系统文件的删除方法中,如图2所示,还可以包括:

s107、根据文件实际大小,对待删除文件进行分割及删除操作。

可以理解的是,文件创建时mds会在文件的元数据中预分配一个大小(一般为8*条带值,一般条带值默认4m),文件元数据创建完成后,会向该文件实际写入数据,如果写入的文件大小不大于元数据中预分配的文件大小就不会继续向mds申请分配空间(mds会根据需要每次分配一定的空间给客户端),否则就继续向mds申请空间,mds会再次分配给一个可写入空间给客户端;这里元数据中会记录文件的两个大小,一个是预分配的文件大小,一个是文件实际写入的大小(即文件实际大小)。本发明就是按照文件实际大小实现对待删除文件的分割,以及之后的删除操作。

进一步地,在具体实施时,步骤s107根据文件实际大小,对待删除文件进行分割及删除操作,具体可以包括以下步骤:

首先,根据文件实际大小,将待删除文件分割为多个大小等于条带值(默认4m)的待删除对象;具体地,原来的操作中会根据元数据预分配的大小进行分配,特别是对于小于1m的小文件,这种分配方法会导致很多空的没必要删除的待删除对象产生,而在本发明中,对于每个待删除文件,mds会将文件按照实际大小分割为一个一个大小等于条带值(默认4m)的对象;

然后,将待删除对象按照设定顺序依次发送给待删除对象对应的osd;

最后,通过osd对所有的待删除对象进行磁盘删除操作;在所有一个文件所分割成的所有待删除对象全部删除完成后,该文件才会被认为删除完成。

通过上述步骤可以减少空的没必要生成的待删除对象的产生;这种分割方法对于小文件(大小小于1m,每次分割中有八分之七的带删除对象是没要产生的(大小小于1m,每次分割中有八分之七的带删除对象是没要产生的)的删除操作,性能提升尤其明显;并且,文件分割成的待删除对象数目的减少可大大减少mds与osd之间的交互次数,从而加快整个删除进程。

基于同一发明构思,本发明实施例还提供了一种分布式系统文件的删除装置,由于该分布式系统文件的删除装置解决问题的原理与前述一种分布式系统文件的删除方法相似,因此该分布式系统文件的删除装置的实施可以参见分布式系统文件的删除方法的实施,重复之处不再赘述。

在具体实施时,本发明实施例提供的分布式系统文件的删除装置,如图3所示,具体包括:

操作查询模块11,用于查询某一mds上对应的子树根下是否还有未完成的文件删除操作;

副本判断模块12,用于若有未完成的文件删除操作,则继续删除子树根在对应的mds下的数据,并判断子树根是否是副本;

副本删除模块13,用于若子树根是副本,则在mds的内存中删除子树根副本。

在本发明实施例提供的上述分布式系统文件的删除装置中,可以通过上述三个模块的相互作用,减少分布式文件系统中子树根的副本数目,以减小不同mds之间主副本加锁的交互次数,进而提高文件删除效率。

进一步地,在具体实施时,在本发明实施例提供的上述分布式系统文件的删除装置中,还可以包括:

任务创建模块14,用于若没有未完成的文件删除操作,在分布式系统中创建定时删除任务;

子树根均衡模块15,用于根据创建的定时删除任务,均衡不同mds间待删除子树根数目。

通过上述两个模块的相互作用,可以使不同mds间待删除的子树根数目大致一致,从而使不同mds间的删除业务压力大致一致,充分发挥所有mds的性能,进而达到提升整体删除性能的目的。

进一步地,在具体实施时,在本发明实施例提供的上述分布式系统文件的删除装置中,还可以包括:

文件分割模块16,用于根据文件实际大小,对待删除文件进行分割及删除操作。

通过上述模块的作用可以减少空的没必要生成的待删除对象的产生,大大减少mds与osd之间的交互次数,从而加快整个删除进程。

关于上述各个模块更加具体的工作过程可以参考前述实施例公开的相应内容,在此不再进行赘述。

相应的,本发明实施例还公开了一种分布式系统文件的删除设备,包括处理器和存储器;其中,处理器执行存储器中保存的计算机程序时实现前述实施例公开的分布式系统文件的删除方法。

关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

进一步地,本发明还公开了一种计算机可读存储介质,用于存储计算机程序;计算机程序被处理器执行时实现前述公开的分布式系统文件的删除方法。

关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备、存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本发明实施例提供的一种分布式系统文件的删除方法、装置、设备及存储介质,包括:查询某一mds上对应的子树根下是否还有未完成的文件删除操作;若有未完成的文件删除操作,则继续删除子树根在对应的mds下的数据,并判断子树根是否是副本;若子树根是副本,则在mds的内存中删除子树根副本。通过上述步骤可以减少分布式文件系统中子树根的副本数目,从而减小不同mds之间主副本加锁的交互次数,进而提高文件删除效率,提升产品用户友好度和差异化竞争力。

最后,还需要说明的是,在本文中,关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的分布式系统文件的删除方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1