一种基于minio文件系统的bucket空间占比统计方法及其装置与流程

文档序号:17859733发布日期:2019-06-11 22:47阅读:4553来源:国知局

本发明涉及一种基于minio文件系统的bucket空间占比统计方法及其装置,属于服务端测试领域。



背景技术:

在现有大业务场景下,minio文件系统的使用越来越广泛。作为一种开源的多平台文件系统,minio可以提供用于文件上传、下载以及修改等的诸多接口,实现轻量级的文件操作;而基于apachelicensev2.0开源协议的对象存储服务,可以兼容亚马逊s3云存储服务接口,非常适合于存储大容量且非结构化的数据,例如图片、视频、日志文件、备份数据以及虚拟机镜像等;对于对象文件的大小也没有明确限制,从几kb到最大5t不等。同时,minio作为一个非常轻量的服务,可以轻松实现与nodejs,redis或者mysql等的结合。

但当后台压测平台使用minio文件系统作为文件储存介质时,会存在一个问题,即如何有效获取空间占用统计信息;若想统计所有bucket单元的占用空间,源系统不提供相关手段。现阶段的技术手段是进入机器内文件的根目录,通过输入du-sh命令查看空间使用情况。

然而作为文件系统,必然涉及数据清理;而若要实现有效的数据清理,至少需要获取各个文件的占用空间以及最新修改时间,这样才能够针对性的清理磁盘空间,而如何实现这种效果是当下需要解决的问题。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于minio文件系统的bucket空间占比统计方法,包括以下步骤:

s1、连接远程文件控制系统;

s2、对存储空间进行遍历,识别bucket单元并生成bucket列表;

s3、调用bucket列表并提取bucket单元信息;

s4、基于bucket单元信息对不同bucket单元分别进行遍历并生成相应层级列表;

s5、调用不同层级列表并提取相应层级信息;

s6、基于层级信息对不同层级分别进行遍历并生成相应文件列表;

s7、调用不同文件列表并提取相应文件信息;

s8、基于文件信息对不同文件分别进行遍历并生成相应配置信息;

s9、对所有配置信息进行预处理并生成一级报表;

s10、基于预设信息对一级报表进行进一步数据处理并生成参考列表;

s11、上传参考列表至服务器。

进一步,所述存储空间至少包括一个bucket单元。

进一步,所述bucket单元信息至少包括bucket名、bucket地址、所占存储空间量以及最新修改时间。

进一步,所述bucket单元至少包括一个层级。

进一步,所述层级信息至少包括层级名、层次地址以及所占存储空间量。

进一步,所述层级至少包括一个文件。

进一步,所述文件信息至少包括文件名、文件地址以及所占存储空间量。

进一步,一级列表的生成具体指按遍历时间对存储空间中所有的bucket单元、不同bucket单元的相应层级以及不同层级的相应文件信息的进行的排序。

进一步,所述预设信息至少包括存储时间的排序、占用存储空间量的排序以及占用存储空间量的占比。

一种基于minio文件系统的bucket空间占比统计装置,包括:

载入模块,用于连接远程文件控制系统;

总遍历模块,用于对存储空间进行遍历,识别bucket单元并生成bucket列表;

bucket调用模块,用于调用bucket列表并提取bucket单元信息;

bucket遍历模块,用于对不同bucket单元分别进行遍历并生成相应层级列表;

层级调用模块,用于调用不同层级列表并提取相应层级信息;

层级遍历模块,用于对不同层级分别进行遍历并生成相应文件列表;

文件调用模块,用于调用不同文件列表并提取相应文件信息;

文件遍历模块,用于对不同文件分别进行遍历并生成相应配置信息;

预处理模块,用于对所有配置信息进行预处理并生成一级报表;

分析模块,用于对一级报表进行进一步数据处理并生成参考列表;以及

上传模块,用于上传参考列表至服务器。

本发明的有益效果为:可以在minio文件系统的存储空间内针对bucket空间进行有效的空间占比统计,极大地方便了工作人员对文件系统的管理,提高了工作效率。

附图说明

图1所示为根据本发明的总体流程图;

图2所示为根据本发明的装置连接图;

图3所示为根据本发明实施例a的示意图;

图4所示为根据本发明实施例b的示意图。

具体实施方式

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

需要说明的是,如无特殊声明,在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个的所列项目的任意的组合。

应当理解,本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

接下来结合附图对本发明的具体实施例作进一步说明:

参照图1所示为根据本发明的总体流程图,具体包括以下步骤:

s1、连接远程文件控制系统;

s2、对存储空间进行遍历,识别bucket单元并生成bucket列表;所述存储空间至少包括一个bucket单元;

s3、调用bucket列表并提取bucket单元信息;所述bucket单元信息至少包括bucket名、bucket地址、所占存储空间量以及最新修改时间;

s4、基于bucket单元信息对不同bucket单元分别进行遍历并生成相应层级列表;所述bucket单元至少包括一个层级;

s5、调用不同层级列表并提取相应层级信息;所述层级信息至少包括层级名、层次地址以及所占存储空间量;

s6、基于层级信息对不同层级分别进行遍历并生成相应文件列表;

s7、调用不同文件列表并提取相应文件信息;所述层级至少包括一个文件;

s8、基于文件信息对不同文件分别进行遍历并生成相应配置信息;所述文件信息至少包括文件名、文件地址以及所占存储空间量;

s9、对所有配置信息进行预处理并生成一级报表;一级列表的生成具体指按遍历时间对存储空间中所有的bucket单元、不同bucket单元的相应层级以及不同层级的相应文件信息的进行的排序;

s10、基于预设信息对一级报表进行进一步数据处理并生成参考列表;所述预设信息至少包括存储时间的排序、占用存储空间量的排序以及占用存储空间量的占比;

s11、上传参考列表至服务器。

参照图2所示为根据本发明的装置连接图,具体包括以下部分:

载入模块,与总遍历模块连接实现交互,用于连接远程文件控制系统;

总遍历模块,与bucket调用模块连接实现交互,用于对存储空间进行遍历,识别bucket单元并生成bucket列表;

bucket调用模块,与bucket遍历模块连接实现交互,用于调用bucket列表并提取bucket单元信息;

bucket遍历模块,与层级调用模块连接实现交互,用于对不同bucket单元分别进行遍历并生成相应层级列表;

层级调用模块,与层级遍历模块连接实现交互,用于调用不同层级列表并提取相应层级信息;

层级遍历模块,与文件调用模块连接实现交互,用于对不同层级分别进行遍历并生成相应文件列表;

文件调用模块,与文件遍历模块连接实现交互,用于调用不同文件列表并提取相应文件信息;

文件遍历模块,与预处理模块连接实现交互,用于对不同文件分别进行遍历并生成相应配置信息;

预处理模块,与分析模块连接实现交互,用于对所有配置信息进行预处理并生成一级报表;

分析模块,与上传模块连接实现交互,用于对一级报表进行进一步数据处理并生成参考列表;以及

上传模块,用于上传参考列表至服务器。

参照图3所示为根据本发明实施例a的示意图,实施例a展示的是minio文件系统内不同bucket单元的列表,可以按照其占用空间大小或最新修改时间进行排序,通过这种列表的形式可以一目了然的展示存储空间的存储状况;在实际使用环境中,程序可以以一定周期或次数进行数据获取,适用于服务器的长期维护。

参照图4所示为根据本发明实施例b的示意图,实施例b展示的是基于实施例a中的列表进行进一步美化的表格,在实际使用环境中,工作人员可以定期通过这种形式向运维或其他相关从业人员发送bucket的磁盘占用情况。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

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