文件系统的扫盘方法、装置以及文件管理系统制造方法及图纸

技术编号:33034106 阅读:15 留言:0更新日期:2022-04-15 09:11
本申请提供了一种文件系统的扫盘方法、装置以及文件管理系统。该方法包括:构建步骤,构建共享消息队列,共享消息队列用于保存待扫盘目录;开启步骤,开启多个线程;获取步骤,获取多个待扫盘目录,待扫盘目录与线程一一对应;控制步骤,控制线程获取待扫盘目录的最上层目录下文件的文件信息或者控制线程返回更新后的待扫盘目录至共享消息队列;重复步骤,重复获取步骤和控制步骤直至扫盘完成。相比于现有技术中find工具单线程扫盘和fd工具扫盘需衔接查看文件信息的工具,本申请的文件系统的扫盘方法大大提高了扫盘效率,降低了扫盘的耗时,解决了现有技术中扫盘方法耗时过长的问题。题。题。

【技术实现步骤摘要】
文件系统的扫盘方法、装置以及文件管理系统


[0001]本申请涉及软件开发领域,具体而言,涉及一种文件系统的扫盘方法、装置、计算机可读存储介质、处理器以及文件管理系统。

技术介绍

[0002]在Linux系统中,文件系统是像树结构一样,由一个共同的根目录开始,逐渐向下分支的,当一个文件系统很庞大的时候,例如很多公司的Linux集群往往都有着非常庞大复杂的文件系统,涉及的文件数量往往在千万级以上。而Linux集群管理员常常需要做的工作就是对这些文件系统进行扫盘,扫盘即是对所有文件进行遍历,获取所有集群中的文件及它们的相关信息,例如,文件的最后修改日期,文件大小,所属人,所属组等信息,然后基于这些文件信息去进行管理和决策。传统的方法是使用find或fd这样的工具,目前的扫盘方法主要是使用Linux系统自带的find命令来进行,该命令可以递归的列出文件系统的每一个问题,但是它的主要问题是只能使用单线程进行扫盘,当文件系统深度过深,文件过多时,扫盘的速度将以线性增加,性能较差。而fd命令是一款新的扫盘工具,相比于find,它提供了多进程的方式来提升扫盘速度,尽管如此,它在扫盘时的表现也存在问题,它的问题在于不能直接获取每一个文件的详细信息,必须要衔接其他的Linux命令,例如ls命令来获取文件信息,这个过程将极大的增加扫盘时间,进而导致扫盘性能的下降,对于拥有千万数据级的文件的系统,扫盘过程常常会耗费超过24小时的时间,这样将会导致获取的扫盘结果没有时效性,影响集群管理区进行一些重要的决策。
[0003]在
技术介绍
部分中公开的以上信息只是用来加强对本文所描述技术的
技术介绍
的理解,因此,
技术介绍
中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。

技术实现思路

[0004]本申请的主要目的在于提供一种文件系统的扫盘方法、装置、计算机可读存储介质、处理器以及文件管理系统,以解决现有技术中扫盘方法耗时过长的问题。
[0005]根据本专利技术实施例的一个方面,提供了一种文件系统的扫盘方法,包括:构建步骤,构建共享消息队列,所述共享消息队列用于保存待扫盘目录;开启步骤,开启多个线程;获取步骤,获取多个所述待扫盘目录,所述待扫盘目录与所述线程一一对应;控制步骤,控制所述线程获取所述待扫盘目录的最上层目录下文件的文件信息或者控制所述线程返回更新后的所述待扫盘目录至所述共享消息队列,所述文件信息包括最后修改日期、文件大小、所属人和所属组,更新后的所述待扫盘目录为所述最上层目录的下一层目录;重复步骤,依次重复所述获取步骤和所述控制步骤至少一次,直至扫盘完成。
[0006]可选地,所述获取步骤包括:控制所述线程发送扫盘请求至所述共享消息队列,所述扫盘请求与所述线程一一对应;响应于所述扫盘请求,控制所述共享消息队列返回所述待扫盘目录至所述线程。
[0007]可选地,所述获取步骤还包括:在所述共享消息队列在预定时间内没有响应所述扫盘请求的情况下,关闭所述扫盘请求对应的所述线程。
[0008]可选地,重复所述获取步骤和所述控制步骤直至扫盘完成,包括:重复所述获取步骤和所述控制步骤,直至所有的所述线程关闭。
[0009]可选地,所述控制步骤包括:在所述待扫盘目录的最上层目录下的内容为下一层目录的情况下,控制所述线程返回更新后的所述待扫盘目录至所述共享消息队列;在所述待扫盘目录的最上层目录下的内容为文件的情况下,控制所述线程获取所述文件的所述文件信息。
[0010]可选地,在开启步骤之前,所述方法还包括:将文件系统的目录发送至所述共享消息队列,得到所述待扫盘目录。
[0011]根据本专利技术实施例的另一方面,还提供了一种文件系统的扫盘装置,包括构建单元、开启单元、获取单元、控制单元以及处理单元,其中,所述构建单元用于执行构建步骤,构建共享消息队列,所述共享消息队列用于保存待扫盘目录;所述开启单元用于执行开启步骤,开启多个线程;所述获取单元用于执行获取步骤,获取多个所述待扫盘目录,所述待扫盘目录与所述线程一一对应;所述控制单元用于执行控制步骤,控制所述线程获取所述待扫盘目录的最上层目录下文件的文件信息或者控制所述线程返回更新后的所述待扫盘目录至所述共享消息队列,所述文件信息包括最后修改日期、文件大小、所属人和所属组,更新后的所述待扫盘目录为所述最上层目录的下一层目录;所述处理单元用于执行重复步骤,依次重复所述获取步骤和所述控制步骤至少一次,直至扫盘完成。
[0012]根据本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任一种所述的方法。
[0013]根据本专利技术实施例的又一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任一种所述的方法。
[0014]根据本专利技术实施例的再一方面,还提供了一种文件管理系统,包括:文件系统和一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任一种所述的方法。
[0015]在本专利技术实施例中,上述文件系统的扫盘方法中,首先,构建步骤,构建共享消息队列,上述共享消息队列用于保存待扫盘目录;然后,开启步骤,开启多个线程;之后,获取步骤,获取多个上述待扫盘目录,上述待扫盘目录与上述线程一一对应;之后,控制步骤,控制上述线程获取上述待扫盘目录的最上层目录下文件的文件信息或者控制上述线程返回更新后的上述待扫盘目录至上述共享消息队列,上述文件信息包括最后修改日期、文件大小、所属人和所属组,更新后的上述待扫盘目录为上述最上层目录的下一层目录;最后,重复步骤,重复上述获取步骤和上述控制步骤直至扫盘完成。该方法通过线程扫盘处理待扫盘目录的最上层目录,获取该层目录下的文件的文件信息,并返回下一层目录,直至完成所有目录层的扫盘,实现多线程并行逐层扫盘,相比于现有技术中find工具单线程扫盘和fd工具扫盘需衔接查看文件信息的工具,大大提高了扫盘效率,降低了扫盘的耗时,解决了现有技术中扫盘方法耗时过长的问题。
附图说明
[0016]构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0017]图1示出了根据本申请实施例的文件系统的扫盘方法的流程图;
[0018]图2示出了根据本申请实施例的文件系统的扫盘方法的流程逻辑图;
[0019]图3示出了根据本申请实施例的文件系统的扫盘装置的示意图。
具体实施方式
[0020]应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。
[0021]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件系统的扫盘方法,其特征在于,包括:构建步骤,构建共享消息队列,所述共享消息队列用于保存待扫盘目录;开启步骤,开启多个线程;获取步骤,获取多个所述待扫盘目录,所述待扫盘目录与所述线程一一对应;控制步骤,控制所述线程获取所述待扫盘目录的最上层目录下文件的文件信息或者控制所述线程返回更新后的所述待扫盘目录至所述共享消息队列,所述文件信息包括最后修改日期、文件大小、所属人和所属组,更新后的所述待扫盘目录为所述最上层目录的下一层目录;重复步骤,依次重复所述获取步骤和所述控制步骤至少一次,直至扫盘完成。2.根据权利要求1所述的方法,其特征在于,所述获取步骤包括:控制所述线程发送扫盘请求至所述共享消息队列,所述扫盘请求与所述线程一一对应;响应于所述扫盘请求,控制所述共享消息队列返回所述待扫盘目录至所述线程。3.根据权利要求2所述的方法,其特征在于,所述获取步骤还包括:在所述共享消息队列在预定时间内没有响应所述扫盘请求的情况下,关闭所述扫盘请求对应的所述线程。4.根据权利要求3所述的方法,其特征在于,重复所述获取步骤和所述控制步骤直至扫盘完成,包括:重复所述获取步骤和所述控制步骤,直至所有的所述线程关闭。5.根据权利要求1所述的方法,其特征在于,所述控制步骤包括:在所述待扫盘目录的最上层目录下的内容为下一层目录的情况下,控制所述线程返回更新后的所述待扫盘目录至所述共享消息队列;在所述待扫盘目录的最上层目录下的内容为文件的情况下,控制所述线程获取所述文件的所...

【专利技术属性】
技术研发人员:陈明吴俊李萍蔡晶冯妮佳曹志生
申请(专利权)人:北京诺禾致源科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1