btrfs文件系统中容器临时存储用量分析方法及装置制造方法及图纸

技术编号:37488853 阅读:8 留言:0更新日期:2023-05-07 09:27
本发明专利技术公开了一种btrfs文件系统中容器临时存储用量分析方法及装置,该方法包括:通过容器监控工具执行系统调用获取到btrfs文件系统的容器进程的环境变量;从容器监控工具运行环境变量中获取默认扫描的目录列表;根据容器进程的环境变量和所述目录列表,得到目标容器要扫描的目录列表;计算获得目标容器的原始层路径与用户层路径;根据目标容器的原始层路径与用户层路径,遍历目标容器要扫描的目录列表查找每个目录中的变化文件,并记录变化文件的大小;根据变化文件的大小,确定btrfs文件系统中容器的临时存储用量。本发明专利技术可以提前发现容器存储使用情况以供运维监控管理,避免占用超量存储导致容器服务异常。量存储导致容器服务异常。量存储导致容器服务异常。

【技术实现步骤摘要】
btrfs文件系统中容器临时存储用量分析方法及装置


[0001]本专利技术涉及分布式
,尤其涉及btrfs文件系统中容器临时存储用量分析方法及装置。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]容器作为一种隔离运行环境,容器中的进程看到的文件系统为一个统一的文件系统。但实际上,由于容器中的进程在运行时可能在容器文件系统上添加、修改、删除文件,其会产生一定的存储写操作。而这些写的内容不应直接写入到原始容器镜像中。因此容器服务一般采用多层文件系统经过挂载映射形成一层特殊的文件系统给容器使用,对于产生的临时数据应当写入到容器专用的文件系统层中。
[0004]业界常用的docker文件系统驱动为overlay2,而因特殊需要,也有采用btrfs作为docker的文件系统驱动。而开源容器监控工具(cadvisor)组件在实现中尚未支持计算与监控btrfs文件系统的容器根文件系统(简称容器)的临时存储用量。
[0005]下面分别介绍overlay2与btrfs驱动下的容器根文件系统实现简要原理。
[0006]Overlay2文件系统以文件粒度进行分层控制,并且docker在使用时会挂载多层级目录,并将变更的文件存放于差异文件层,通过组合原始文件层与差异文件层后,提供用户视图层给用户进程使用。用户进程的所有存储变更均会作用在差异文件层。
[0007]例如图1为现有技术中基于overlay2的容器根文件系统的原理,docker在overlay2文件系统上建立三个文件系统层,原始文件层、差异文件层,以及组合映射原始文件层与差异文件层后产生的用户视图层。当用户进程将要修改文件1,overlay2文件系统会拷贝文件1在差异文件层中,生成文件1

并映射给用户视图层,用户进程实际上修改的是文件1


[0008]容器监控工具则通过列出差异文件层的所有文件并统计大小即为根文件系统的临时存储占用,即完成了基于overlay2的容器根文件系统临时文件存储用量的统计。
[0009]图2为现有技术中基于btrfs的容器根文件系统的原理,Btrfs文件系统以文件块为控制粒度,并支持快照形式建立文件映射进行分层控制。当用户在写文件中的部分内容时,直接产生新的文件块,替代原来的块映射关系,而不需要像overlay2重新拷贝整个文件。
[0010]例如用户在将要修改文件1中的文件块2时,btrfs将会在用户层产生一个新块。
[0011]但目前容器监控工具尚未支持btrfs文件系统,其不存在差异文件层,无法被直接查询出临时存储使用量。
[0012]综上所述,目前尚不支持btrfs文件系统的容器根文件系统的临时存储用量的分析方案。

技术实现思路

[0013]本专利技术实施例提供一种btrfs文件系统中容器临时存储用量分析方法,用以提前发现容器存储使用情况以供运维监控管理,避免占用超量存储导致容器服务异常,该方法包括:
[0014]通过容器监控工具执行系统调用获取到btrfs文件系统的容器进程的环境变量;
[0015]从容器监控工具运行环境变量中获取默认扫描的目录列表;
[0016]根据容器进程的环境变量和所述目录列表,得到目标容器要扫描的目录列表;
[0017]计算获得目标容器的原始层路径与用户层路径;
[0018]根据目标容器的原始层路径与用户层路径,遍历目标容器要扫描的目录列表查找每个目录中的变化文件,并记录变化文件的大小;
[0019]根据变化文件的大小,确定btrfs文件系统中容器的临时存储用量。
[0020]本专利技术实施例还提供一种btrfs文件系统中容器临时存储用量分析装置,用以提前发现容器存储使用情况以供运维监控管理,避免占用超量存储导致容器服务异常,该装置包括:
[0021]环境变量获取模块,用于通过容器监控工具执行系统调用获取到btrfs文件系统的容器进程的环境变量;
[0022]默认扫描目录列表获取模块,用于从容器监控工具运行环境变量中获取默认扫描的目录列表;
[0023]目标容器目录列表获得模块,用于根据容器进程的环境变量和所述目录列表,得到目标容器要扫描的目录列表;
[0024]路径计算模块,用于计算获得目标容器的原始层路径与用户层路径;
[0025]变化文件遍历模块,用于根据目标容器的原始层路径与用户层路径,遍历目标容器要扫描的目录列表查找每个目录中的变化文件,并记录变化文件的大小;
[0026]临时存储用量确定模块,用于根据变化文件的大小,确定btrfs文件系统中容器的临时存储用量。
[0027]本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述btrfs文件系统中容器临时存储用量分析方法。
[0028]本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述btrfs文件系统中容器临时存储用量分析方法。
[0029]本专利技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述btrfs文件系统中容器临时存储用量分析方法。
[0030]本专利技术实施例中,通过容器监控工具执行系统调用获取到btrfs文件系统的容器进程的环境变量;从容器监控工具运行环境变量中获取默认扫描的目录列表;根据容器进程的环境变量和所述目录列表,得到目标容器要扫描的目录列表;计算获得目标容器的原始层路径与用户层路径;根据目标容器的原始层路径与用户层路径,遍历目标容器要扫描的目录列表查找每个目录中的变化文件,并记录变化文件的大小;根据变化文件的大小,确
定btrfs文件系统中容器的临时存储用量。与现有技术中相比,通过对比btrfs的两个文件系统层级中的指定目录下的所有文件及文件夹,根据btrfs文件系统的运行原理,在文件发生变化时,其各种属性的差异来识别出不同文件,可以找出变化文件,即实现了通过容器监控工具执行系统计算与监控btrfs文件系统中容器的临时存储用量。
附图说明
[0031]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0032]图1为现有技术中基于overlay2的容器根文件系统的原理;
[0033]图2为现有技术中基于btrfs的容器根文件系统的原理;
[0034]图3为本专利技术实施例中btrfs文件系统中容器临时存储用量分析方法的流程图;
[0035]图4为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种btrfs文件系统中容器临时存储用量分析方法,其特征在于,包括:通过容器监控工具执行系统调用获取到btrfs文件系统的容器进程的环境变量;从容器监控工具运行环境变量中获取默认扫描的目录列表;根据容器进程的环境变量和所述目录列表,得到目标容器要扫描的目录列表;计算获得目标容器的原始层路径与用户层路径;根据目标容器的原始层路径与用户层路径,遍历目标容器要扫描的目录列表查找每个目录中的变化文件,并记录变化文件的大小;根据变化文件的大小,确定btrfs文件系统中容器的临时存储用量。2.如权利要求1所述的方法,其特征在于,根据目标容器的原始层与用户层路径,遍历目标容器要扫描的目录列表查找每个目录中的变化文件,包括:遍历目标容器要扫描的目录列表中待确认的目录;对每个用户层中待确认的目录,遍历该用户层中待确认的目录下的文件项列表待确认的文件项;若用户层中待确认的文件项在原始层中存在,根据用户层路径,确定待确认的文件项在原始层中路径,获得原始层中对应的文件项;若用户层中待确认的文件项与原始层中对应的文件项的文件类型相同,判断用户层中待确认的文件项与原始层中对应的文件项是否均为文件;若用户层中待确认的文件项与原始层中对应的文件项均为文件,根据文件项的属性,判断用户层中待确认的文件项是否为变化文件。3.如权利要求2所述的方法,其特征在于,遍历目标容器要扫描的目录列表中待确认的目录,包括:判断目标容器要扫描的目录列表中是否存在待确认的目录;若是,获得每个待确认的目录;若否,退出目标容器要扫描的目录列表的遍历。4.如权利要求2所述的方法,其特征在于,遍历该用户层中待确认的目录下的文件项列表待确认的文件项,包括:判断用户层中待确认的目录下的文件项列表是否存在待确认的文件项;若是,获得每个待确认的文件项;若否,继续遍历目标容器要扫描的目录列表中待确认的目录。5.如权利要求2所述的方法,其特征在于,根据文件项的属性,判断用户层中待确认的文件项是否为变化文件,包括:判断用户层中待确认的文件项与原始层中对应的文件项的属性是否均一致,所述属性包括索引节点、权限、用户、用户组、归属设备号、文件修改时间、文件大小、能力中的其中一种或任意组合;若否,确定用户层中待确认的文件项为变更文件,记录该文件项的路径及文件项大小,在索引节点储存图中记录索引节点号,继续遍历该用户层中待确认的目录下的文件项列表待确认的文件项;若是,忽略该待确认的文件项,继续遍历该用户层中待确认的目录下的文件项列表待确认的文件项。
6.如权利要求2所述的方法,其特征在于,还包括:若用户层中待确认的文件项与原始层中对应的文件项存在非文件,判断用户层中待确认的文件项与原始层...

【专利技术属性】
技术研发人员:张志成
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1