一种目录管理方法、装置、设备、介质与流程

文档序号:20838625发布日期:2020-05-22 17:11阅读:116来源:国知局
一种目录管理方法、装置、设备、介质与流程

本申请涉及文件系统技术领域,特别涉及一种目录管理方法、装置、设备、介质。



背景技术:

文件系统中,将目录树作为一种元数据缓存管理模式,包括文件系统的整个目录结构,所以将目录树拆分成多颗目录子树,每颗目录子树内部保留目录的树形结构,分布到不同的mds服务上,实现负载均衡。为防止因目录子树过过多而影响相应的性能,需要给各个mds(metadataserver,元数据服务)可持有的目录子树设置上限,当mds上目录子树进行迁入或迁出的过程中,需要保证每个mds中保存的目录子树的数量不超过上限。对于一个mds来说,在触发持续的目录子树迁移时,在所有需要迁移的目录子树迁移完成之后,才能执行相应的回调以更新对应的vector中保存的索引节点,这导致mds中实际保存的目录子树超过或远低于设置的上限,进而影响的文件系统的性能。



技术实现要素:

有鉴于此,本申请的目的在于提供一种目录管理方法、装置、设备、介质,能够精确控制mds中保存的目录子树的数量,减轻mds负载,提高文件系统性能。其具体方案如下:

第一方面,本申请公开了一种目录管理方法,包括:

子树对应的目标目录数量;

利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,并对所述目标目录子树对应的目标索引节点进行相应的处理操作,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;

判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;

如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。

可选的,所述在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量,包括:

在监测到目标mds中有目标目录子树迁入时,获取所述目标目录子树对应的目标目录数量;

相应的,利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非本地授权目录数量,确定所述目标mds当前保存的目录子树数量,包括:

利用所述目标目录数量、目标vector中的索引节点总数量、所述目标vector中的非目标mds授权目录数量以及第一预设公式,确定所述目标mds当前保存的目录子树数量,其中,所述第一预设公式为:n=n-m+x,其中,n表示所述目录子树数量,n表示所述索引节点总数量,m表示所述非目标mds授权目录数量,x表示所述目标目录数量。

可选的,所述在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量,包括:

在监测到目标mds中有目标目录子树迁入和迁出时,获取迁入的所述目标目录子树对应的第一目标目录数量和迁出的所述目标目录子树对应的第二目标目录数量;

相应的,利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,包括:

利用所述第一目标目录数量、所述第二目标目录数量、目标vector中的索引节点总数量、所述目标vector中的非目标mds授权目录数量以及第二预设公式,确定所述目标mds当前保存的目录子树数量,其中,所述第二预设公式为:n=n-m+x-y,其中,n表示所述目录子树数量,n表示所述索引节点总数量,m表示所述非目标mds授权目录数量,x表示所述第一目标目录数量,y表示所述第二目标目录数量。

可选的,所述目录管理方法,还包括:

在监测到所述目标mds保存的目录子树被删除和/或合并时,将所述目标vector中相应的索引节点删除。

可选的,所述目录管理方法,还包括:

在监测到所述目标mds中的目录分区调整时,对所述目标vector中相应的索引节点进行对应调整。

可选的,判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值之后,还包括:

如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则遍历所述目标vector中的所有的所述索引节点,并将空索引节点从所述目标vector中删除。

可选的,所述对所述目标目录子树对应的目标索引节点进行相应的处理操作,包括:

将所述目标目录子树对应的目标索引节点增加到所述目标vector中;

和/或,将所述目标目录子树对应的目标索引节点从所述目标vector中删除。

第二方面,本申请公开了一种目录管理装置,包括:

信息获取模块,用于在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量;

子树数量确定模块,用于利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;

索引节点处理模块,用于对所述目标目录子树对应的目标索引节点进行相应的处理操作;

判断模块,用于判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;

迁入停止模块,用于在所述目录子树数量大于或等于预设mds可持有目录子树阈值时,则停止向所述目标mds中迁入目录子树。

第三方面,本申请公开了一种设备,包括:

存储器和处理器;

其中,所述存储器,用于存储计算机程序;

所述处理器,用于执行所述计算机程序,以实现前述公开的目录管理方法。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的目录管理方法。

可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量;然后利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,并对所述目标目录子树对应的目标索引节点进行相应的处理操作,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。由此可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出的时候,便会获取所述目标目录子树对应的目标目录数量,并利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,然后再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值,如果是,则停止向所述目标mds中迁入目录子树,这样能够精确控制mds中保存的目录子树的数量,减轻mds负载,提高文件系统性能。

附图说明

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

图1为本申请公开的一种目录管理方法流程图;

图2为本申请公开的一种具体的目录管理方法流程图;

图3为本申请公开的一种目录管理装置结构示意图;

图4为本申请公开的一种目录管理设备结构图。

具体实施方式

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

目前,对于一个mds来说,在触发持续的目录子树迁移时,在所有需要迁移的目录子树迁移完成之后,才能执行相应的回调以更新对应的vector中保存的索引节点,这会导致mds中实际保存的目录子树超过或远低于设置的上限,进而影响的文件系统的性能。有鉴于此,本申请提出了一种目录管理方法,能够精确控制mds中保存的目录子树的数量,减轻mds负载,提高文件系统性能。

参见图1所示,本申请实施例公开了一种目录管理方法,该方法包括:

步骤s11:在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量。

可以理解的是,在文件系统中,需要对目录子树进行管理,以保证整个文件系统的性能,所以会将目录子树存储在不同的mds中,根据文件系统的实时运行情况,mds上保存的目录子树会存在相应的变动,在目录子树从一个mds迁移到另一个mds的过程中,需要保证各个mds中存储的目录子树小于预设mds可持有目录子树阈值,所以在监测到目标mds中有目标目录子树迁入和/或迁出时,需要获取所述目标目录子树对应的目标目录数量,以便确定所述目标mds中当前保存的目录子树数量。

步骤s12:利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,并对所述目标目录子树对应的目标索引节点进行相应的处理操作,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录。

在具体的实施例中,在获取到所述目标目录数量之后,还需要利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,其中,一个索引节点对应一个目录,一个目录对应一个目标子树。所述目标vector为与所述目标mds对应的vector,非目标mds授权目录为所述目标mds不能直接对其进行操作的目录。还需要对所述目标目录子树对应的目标索引节点进行相应的处理操作。

步骤s13:判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值。

可以理解的是,在确定出所述目标mds中当前保存的目录子树数量之后,还需要判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值,以控制所述目标mds中保存的目录子树的数量。

步骤s14:如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。

在判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值时,如果所述目录子树数量大于或等于预设mds可持有目录子树阈值时,则停止向所述目标mds迁入目录子树。在监测到所述目标mds中有目标目录子树迁入和/或迁出时,便判断所述目标mds中当前保存的目录子树数量是否大于或等于预设mds可持有目录子树阈值,而不是在所有需要迁移的目录子树迁移完成之后,再进行相应的判断,能够精确地控制所述目标mds中的目录子树的数量。

可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量;然后利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,并对所述目标目录子树对应的目标索引节点进行相应的处理操作,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。由此可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出的时候,便会获取所述目标目录子树对应的目标目录数量,并利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,然后再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值,如果是,则停止向所述目标mds中迁入目录子树,这样能够精确控制mds中保存的目录子树的数量,减轻mds负载,提高文件系统性能。

参见图2所示,本申请实施例公开了一种具体的目录管理方法,该方法包括:

步骤s21:在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量。

步骤s22:利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录。

在具体的第一种实施例中,在监测到目标mds中有目标目录子树迁入时,获取所述目标目录子树对应的目标目录数量,相应的,利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非本地授权目录数量,确定所述目标mds当前保存的目录子树数量,包括:利用所述目标目录数量、目标vector中的索引节点总数量、所述目标vector中的非目标mds授权目录数量以及第一预设公式,确定所述目标mds当前保存的目录子树数量,其中,所述第一预设公式为:

n=n-m+x

其中,n表示所述目录子树数量,n表示所述索引节点总数量,m表示所述非目标mds授权目录数量,x表示所述目标目录数量。具体的,在监测到目标mds中有目标目录子树迁入时,需要将所述索引节点总数量和所述目标目录数量之和,再减去所述非目标mds授权目录数量,便可以确定去所述目标mds中当前保存的目录子树数量。

在具体的第二种实施例中,在监测到目标mds中有目标目录子树迁入和迁出时,获取迁入的所述目标目录子树对应的第一目标目录数量和迁出的所述目标目录子树对应的第二目标目录数量;相应的,利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,包括:利用所述第一目标目录数量、所述第二目标目录数量、目标vector中的索引节点总数量、所述目标vector中的非目标mds授权目录数量以及第二预设公式,确定所述目标mds当前保存的目录子树数量,其中,所述第二预设公式为:

n=n-m+x-y

其中,n表示所述目录子树数量,n表示所述索引节点总数量,m表示所述非目标mds授权目录数量,x表示所述第一目标目录数量,y表示所述第二目标目录数量。具体的,在监测到目标mds中有目标目录子树迁入和迁出时,将所述索引节点总数量和所述第一目标目录数量之和,减去所述非目标mds授权目录数量,再减去所述第二目标目录数量,便可以确定去所述目标mds中当前保存的目录子树数量。

在具体的第三种实施例中,在监测到目标mds中有目标目录子树迁入时,将所述索引节点总数量减去所述非目标mds授权目录数量,再减去所述目标目录数量,便可以确定去所述目标mds中当前保存的目录子树数量。

步骤s23:将所述目标目录子树对应的目标索引节点增加到所述目标vector中,和/或,将所述目标目录子树对应的目标索引节点从所述目标vector中删除。

可以理解的是,还需要对所述目标目录对应的目标索引节点进行相应的处理,具体的,需要将所述目标目录对应的目标索引节点增加到所述目标vector中,和/或,将所述目标目录子树对应的目标索引节点从所述目标vector中删除。

步骤s24:判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值。

步骤s25:如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。

步骤s26:如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则遍历所述目标vector中的所有的所述索引节点,并将空索引节点从所述目标vector中删除。

在具体的实施过程中,在所述目录子树大于或等于预设mds可持有目录子树阈值,需要遍历所述目标vector中的所有的所述索引节点,并将空索引节点从所述目标vector中删除。

此外,在监测到所述目标mds保存的目录子树被删除和/或合并时,将所述目标vector中相应的索引节点删除。在监测到所述目标mds中的目录分区调整时,对所述目标vector中相应的索引节点进行对应调整。也即,在对所述目标mds中保存的目录子树做出相应的调整时,也需要相应的更新所述目标vector中的索引节点。

参见图3所示,本申请实施例公开了一种目录管理装置,包括:

信息获取模块11,用于在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量;

子树数量确定模块12,用于利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;

索引节点处理模块13,用于对所述目标目录子树对应的目标索引节点进行相应的处理操作;

判断模块14,用于判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;

迁入停止模块15,用于在所述目录子树数量大于或等于预设mds可持有目录子树阈值时,则停止向所述目标mds中迁入目录子树。

可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量;然后利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,并对所述目标目录子树对应的目标索引节点进行相应的处理操作,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。由此可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出的时候,便会获取所述目标目录子树对应的目标目录数量,并利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,然后再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值,如果是,则停止向所述目标mds中迁入目录子树,这样能够精确控制mds中保存的目录子树的数量,减轻mds负载,提高文件系统性能。

进一步的,参见4图所示,本申请实施例还公开了一种目录管理设备,包括:处理器21和存储器22。

其中,所述存储器22,用于存储计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例中公开的目录管理方法。

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

进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:

在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量;利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,并对所述目标目录子树对应的目标索引节点进行相应的处理操作,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。

可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出时,获取所述目标目录子树对应的目标目录数量;然后利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,并对所述目标目录子树对应的目标索引节点进行相应的处理操作,其中,一个目录子树对应一个目录,一个索引节点对应一个所述目录;再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值;如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则停止向所述目标mds中迁入目录子树。由此可见,本申请在监测到目标mds中有目标目录子树迁入和/或迁出的时候,便会获取所述目标目录子树对应的目标目录数量,并利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,然后再判断所述目录子树数量是否大于或等于预设mds可持有目录子树阈值,如果是,则停止向所述目标mds中迁入目录子树,这样能够精确控制mds中保存的目录子树的数量,减轻mds负载,提高文件系统性能。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在监测到目标mds中有目标目录子树迁入时,获取所述目标目录子树对应的目标目录数量;相应的,利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非本地授权目录数量,确定所述目标mds当前保存的目录子树数量,包括:利用所述目标目录数量、目标vector中的索引节点总数量、所述目标vector中的非目标mds授权目录数量以及第一预设公式,确定所述目标mds当前保存的目录子树数量,其中,所述第一预设公式为:n=n-m+x,其中,n表示所述目录子树数量,n表示所述索引节点总数量,m表示所述非目标mds授权目录数量,x表示所述目标目录数量。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在监测到目标mds中有目标目录子树迁入和迁出时,获取迁入的所述目标目录子树对应的第一目标目录数量和迁出的所述目标目录子树对应的第二目标目录数量;相应的,利用所述目标目录数量、目标vector中的索引节点总数量以及所述目标vector中的非目标mds授权目录数量,确定所述目标mds当前保存的目录子树数量,包括:利用所述第一目标目录数量、所述第二目标目录数量、目标vector中的索引节点总数量、所述目标vector中的非目标mds授权目录数量以及第二预设公式,确定所述目标mds当前保存的目录子树数量,其中,所述第二预设公式为:n=n-m+x-y,其中,n表示所述目录子树数量,n表示所述索引节点总数量,m表示所述非目标mds授权目录数量,x表示所述第一目标目录数量,y表示所述第二目标目录数量。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在监测到所述目标mds保存的目录子树被删除和/或合并时,将所述目标vector中相应的索引节点删除。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在监测到所述目标mds中的目录分区调整时,对所述目标vector中相应的索引节点进行对应调整。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:如果所述目录子树数量大于或等于预设mds可持有目录子树阈值,则遍历所述目标vector中的所有的所述索引节点,并将空索引节点从所述目标vector中删除。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:将所述目标目录子树对应的目标索引节点增加到所述目标vector中;和/或,将所述目标目录子树对应的目标索引节点从所述目标vector中删除。

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

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

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

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

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