一种目录导出方法、系统及相关装置与流程

文档序号:18164440发布日期:2019-07-13 09:30阅读:289来源:国知局
一种目录导出方法、系统及相关装置与流程

本申请涉及目录导出技术领域,特别涉及一种目录导出方法、系统、设备及计算机可读存储介质。



背景技术:

分布式系统中各个目录下的文件或子目录总数不同,用户场景中客户端在大目录下持续创建目录或文件时,此时该大目录所属的元数据服务器压力比较大,其他元数据服务器压力较小,压力大的元数据服务器影响文件或目录创建性能,进而影响分布式系统的吞吐。相关技术需要通过手动导出方式把大目录导出到压力较小的元数据服务器,人为干预,操作性较高,只有对分布式系统有相当熟悉的管理员可进行相应调整,导致工作效率低下。

因此,如何实现目录自动导出,进而提高工作效率,避免影响分布式系统的吞吐是本领域技术人员亟需解决的技术问题。



技术实现要素:

本申请的目的是提供一种目录导出方法、系统、设备及计算机可读存储介质,能够实现目录自动导出,进而提高工作效率,避免影响分布式系统的吞吐。

为解决上述技术问题,本申请提供一种目录导出方法,包括:

在执行完创建目录的命令后,将所述目录中子目录和文件的总数达到预设数量的目录,确定为目标目录;

收集各个所述目标目录的元数据信息,形成目标迁移列表;

遍历所述目标迁移列表,依次将各个所述目标目录导出至对应的目标元数据服务器;其中,所述目标元数据服务器的负载值小于对应的目标目录所属的元数据服务器的负载值。

优选地,所述遍历所述目标迁移列表,依次将各个所述目标目录导出至对应的目标元数据服务器,包括:

利用各个元数据服务器的节点cpu、内存及网络负载分别计算出对应的负载值;

根据所述负载值,确定所述目标元数据服务器;

遍历所述目标迁移列表,依次将各个所述目标目录导出至对应的目标元数据服务器。

优选地,形成目标迁移列表之后,还包括:

将所述目标迁移列表存储至日志文件。

优选地,依次将各个所述目标目录导出至对应的目标元数据服务器之后,还包括:

将各个所述目标目录的所述元数据信息广播至其他元数据服务器进行更新。

本申请还提供一种目录导出系统,包括:

目标目录确定模块,用于在执行完创建目录的命令后,将所述目录中子目录和文件的总数达到预设数量的目录,确定为目标目录;

元数据信息收集模块,用于收集各个所述目标目录的元数据信息,形成目标迁移列表;

目标目录导出模块,用于遍历所述目标迁移列表,依次将各个所述目标目录导出至对应的目标元数据服务器;其中,所述目标元数据服务器的负载值小于对应的目标目录所属的元数据服务器的负载值。

优选地,所述目标目录导出模块,包括:

负载值计算单元,用于利用各个元数据服务器的节点cpu、内存及网络负载分别计算出对应的负载值;

目标元数据服务器确定单元,用于根据所述负载值,确定所述目标元数据服务器;

目标目录导出单元,用于遍历所述目标迁移列表,依次将各个所述目标目录导出至对应的目标元数据服务器。

优选地,该目录导出系统还包括:

存储模块,用于将所述目标迁移列表存储至日志文件。

优选地,该目录导出系统还包括:

更新模块,用于将各个所述目标目录的所述元数据信息广播至其他元数据服务器进行更新。

本申请还提供一种设备,包括:

存储器和处理器;其中,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现上述所述的目录导出方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的目录导出方法的步骤。

本申请所提供的一种目录导出方法,包括:在执行完创建目录的命令后,将所述目录中子目录和文件的总数达到预设数量的目录,确定为目标目录;收集各个所述目标目录的元数据信息,形成目标迁移列表;遍历所述目标迁移列表,依次将各个所述目标目录导出至对应的目标元数据服务器;其中,所述目标元数据服务器的负载值小于对应的目标目录所属的元数据服务器的负载值。

该方法先是在执行完创建目录的命令后,将所述目录中子目录和文件的总数达到预设数量的目录,确定为目标目录,再收集各个所述目标目录的元数据信息,形成目标迁移列表,最后遍历所述目标迁移列表,依次将各个所述目标目录导出至对应的目标元数据服务器。可见,该方法能够实现目录自动导出,进而提高工作效率,避免影响分布式系统的吞吐。此外,把目标目录迁移到负载较小的元数据服务器上,提升分布式系统的元数据性能和系统的对外整体性能,提升系统易用性和智能性。本申请还提供一种目录导出系统、设备及计算机可读存储介质,均具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例所提供的一种目录导出方法的流程图;

图2为本申请实施例所提供的一种目录导出系统的结构框图。

具体实施方式

本申请的核心是提供一种目录导出方法,能够实现目录自动导出,进而提高工作效率,避免影响分布式系统的吞吐。本申请的另一核心是提供一种目录导出系统、设备及计算机可读存储介质。

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

分布式系统中各个目录下的文件或子目录总数不同,用户场景中客户端在大目录下持续创建目录或文件时,此时该大目录所属的元数据服务器压力比较大,其他元数据服务器压力较小,压力大的元数据服务器影响文件或目录创建性能,进而影响分布式系统的吞吐。相关技术需要通过手动导出方式把大目录导出到压力较小的元数据服务器,人为干预,操作性较高,只有对分布式系统有相当熟悉的管理员可进行相应调整,导致工作效率低下。本申请实施例能够实现目录自动导出,进而提高工作效率,避免影响分布式系统的吞吐。具体请参考图1,图1为本申请实施例所提供的一种目录导出方法的流程图,该目录导出方法具体包括:

s101、在执行完创建目录的命令后,将目录中子目录和文件的总数达到预设数量的目录,确定为目标目录;

本申请实施例的执行主体为分布式系统的元数据端,分布式系统正常进行着数据存储和访问。元数据端在执行完创建目录的命令后,将目录中子目录和文件的总数达到预设数量的目录,确定为目标目录。在此对目录的数量不作具体限定,应由本领域技术人员根据实际情况作出相应的设定。在此对目录中子目录和文件的总数达到的预设数量也不作具体限定,应由本领域技术人员根据实际情况作出相应的设定。由上文可知,本申请实施例对目录的数量不作具体限定,又因子目录和文件的总数达到的预设数量也不作具体限定,所以目标目录的数量也不作具体限定,应由本领域技术人员根据实际情况作出相应的设定,但是需保证目标目录的数量不能多于目录的数量,因为目标目录只是所有目录中子目录和文件的总数达到预设数量的目录。

对于将目录中子目录和文件的总数达到预设数量的目录确定为目标目录的过程,在此不作具体限定,通常需要先统计各个目录中子目录和文件的总数,再判断各个目录中子目录和文件的总数是否达到预设数量,若达到预设数量,则将该目录确定为目标目录。

进一步地,在确定目标目录之后,通常还包括:判断目标目录是否已导出至其他元数据服务器,若已导出至其他元数据服务器,则忽略该目标目录;若未导出至其他元数据服务器,则执行收集各个目标目录的元数据信息,形成目标迁移列表的步骤。本申请实施例对于已导出至其他元数据服务器的目标目录直接忽略,可以避免该目标目录被多次导出,节省了元数据端目录导出的处理时间,提高了工作效率。

s102、收集各个目标目录的元数据信息,形成目标迁移列表;

本申请实施例中的元数据端在确定目标目录后,收集各个目标目录的元数据信息,形成目标迁移列表。在此对元数据信息的内容不作具体限定,应由本领域技术人员根据实际情况作出相应的设定。在此对元数据进行简要说明:任何文件系统中的数据分为数据和元数据;数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息等等。在分布式系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。

在此对元数据管理的方式不作具体限定,应由本领域技术人员根据实际情况作出相应的设定,通常采用分布式管理方式。分布式管理是指将元数据存放在系统的任意节点并且能动态的迁移,对元数据管理的职责也分布到各个不同的节点上。分布式元数据管理的好处是解决了集中式管理的单一失效点问题,而且性能不会随着操作频繁而出现瓶颈。

对于各个目标目录的元数据信息的收集方式,在此也不作具体限定,应由本领域技术人员根据实际情况作出相应的设定。由上文可知,本申请实施例对目标目录的数量不作具体限定,故目标迁移列表中所有目标目录的元数据信息的数量也不作具体限定,通常需根据实际需求进行相应的设定。进一步地,收集的目标目录的元数据信息的数量达到预设的数量时,将目标迁移列表存储至日志文件中以免进程重启导致统计信息丢失。在此对于目标迁移列表中各个目标目录的元数据信息的排序方式不作具体限定,需根据实际需求进行相应的设定,例如可以根据收集时间进行排序,还可以根据各个目标目录的元数据信息的大小进行排序。

s103、遍历目标迁移列表,依次将各个目标目录导出至对应的目标元数据服务器;其中,目标元数据服务器的负载值小于对应的目标目录所属的元数据服务器的负载值。

本申请实施例中的元数据端在形成目标迁移列表后,遍历目标迁移列表,依次将各个目标目录导出至对应的目标元数据服务器;其中,目标元数据服务器的负载值小于对应的目标目录所属的元数据服务器的负载值。在此对于遍历目标迁移列表的顺序不作具体限定,例如可以顺着目标迁移列表从上而下进行遍历,还可以从下而上进行遍历。

由上述依次将各个目标目录导出至对应的目标元数据服务器可知,目标目录和目标元数据服务器之间存在着映射关系,在此对该映射关系不作具体限定,需根据实际需求而定。例如可以是一对一关系,即每一个目标目录导出至对应的一个目标元数据服务器。由上文可知,本申请实施例对目标目录的数量不作具体限定,又因为对目标目录和目标元数据服务器之间的映射关系不作具体限定,故目标元数据服务器的数量也不作具体限定。

进一步地,上述遍历目标迁移列表,依次将各个目标目录导出至对应的目标元数据服务器,通常包括:利用各个元数据服务器的节点cpu、内存及网络负载分别计算出对应的负载值;根据负载值,确定目标元数据服务器;遍历目标迁移列表,依次将各个目标目录导出至对应的目标元数据服务器。进一步地,在依次将各个目标目录导出至对应的目标元数据服务器之后,通常还包括:将各个目标目录的元数据信息广播至其他元数据服务器进行更新。此外,目录导出完成后,把统计的自动导出目录迁移列表统计信息清空并删除日志,达到识别和自动分析,然后智能导出,实现节点间元数据服务器的负载均衡。

本申请实施例先是在执行完创建目录的命令后,将目录中子目录和文件的总数达到预设数量的目录,确定为目标目录,再收集各个目标目录的元数据信息,形成目标迁移列表,最后遍历目标迁移列表,依次将各个目标目录导出至对应的目标元数据服务器。可见,该方法能够实现目录自动导出,进而提高工作效率,避免影响分布式系统的吞吐。本申请提出的一种目录导出方法,在分布式系统中根据目录下子目录和文件总数,把目录迁移到压力较小的元数据服务器上,实现元数据服务器的智能负载均衡。因此,需要统计目录下子目录和文件总数达到一定量的目录,记录到目录迁移列表中并可以记录到日志中,遍历该目录迁移列表,根据元数据端利用节点cpu、内存和网络负载进行加权计算得出的负载值,把目录导出到负载较小的元数据服务器上,导出完成后清空目录迁移列表和日志记录。该方法实现了目录自动导出、元数据服务器的智能负载均衡,增大分布式系统的元数据处理能力。

下面对本申请实施例提供的一种目录导出系统、设备及计算机可读存储介质进行介绍,下文描述的目录导出系统、设备及计算机可读存储介质与上文描述的目录导出方法可相互对应参照。

请参考图2,图2为本申请实施例所提供的一种目录导出系统的结构框图;该目录导出系统包括:

目标目录确定模块201,用于在执行完创建目录的命令后,将目录中子目录和文件的总数达到预设数量的目录,确定为目标目录;

元数据信息收集模块202,用于收集各个目标目录的元数据信息,形成目标迁移列表;

目标目录导出模块203,用于遍历目标迁移列表,依次将各个目标目录导出至对应的目标元数据服务器;其中,目标元数据服务器的负载值小于对应的目标目录所属的元数据服务器的负载值。

基于上述实施例,本实施例中目标目录导出模块203,通常包括:

负载值计算单元,用于利用各个元数据服务器的节点cpu、内存及网络负载分别计算出对应的负载值;

目标元数据服务器确定单元,用于根据负载值,确定目标元数据服务器;

目标目录导出单元,用于遍历目标迁移列表,依次将各个目标目录导出至对应的目标元数据服务器。

基于上述实施例,本实施例中目录导出系统,通常还包括:

存储模块,用于将目标迁移列表存储至日志文件。

基于上述实施例,本实施例中目录导出系统,通常还包括:

更新模块,用于将各个目标目录的元数据信息广播至其他元数据服务器进行更新。

本申请还提供一种设备,包括:存储器和处理器;其中,存储器用于存储计算机程序,处理器用于执行计算机程序时实现上述任意实施例的目录导出方法的步骤。

本申请还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的目录导出方法的步骤。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

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

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

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

以上对本申请所提供的一种目录导出方法、系统、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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