一种镜像文件管理方法、系统、设备及介质技术方案

技术编号:39184439 阅读:7 留言:0更新日期:2023-10-27 08:32
本发明专利技术涉及容器镜像技术领域,公开一种镜像文件管理方法、系统、设备及介质,该方法包括:获取于Linux容器运行期间的访问数据,访问数据包括所有的目录信息和镜像依赖文件信息;根据欲导出的目标目录,在访问数据中查找并获取与目标目录相对应的目录信息和目标目录下的镜像依赖文件信息;将目标目录相对应的目录信息和目标目录下的镜像依赖文件信息以及Linux容器的所有镜像依赖文件信息,代入至条件概率预测模型进行计算,得到目标目录的导出概率;将导出概率与预定概率阈值进行比较,根据比较结果导出对应的访问数据;根据导出的访问数据重新生成新的镜像文件。本发明专利技术既能减少镜像文件大小,又能保障容器启动后功能的完整性。性。性。

【技术实现步骤摘要】
一种镜像文件管理方法、系统、设备及介质


[0001]本专利技术涉及容器镜像
,特别涉及一种镜像文件管理方法、系统、设备及介质。

技术介绍

[0002]Linux容器是一种轻量级的虚拟化技术,可以将应用程序、服务和依赖项打包成一个镜像,然后在Linux容器中运行。Linux容器解决了应用打包和部署问题,保证本地环境和云端环境的高度一致,避免了用户手动调试来匹配两种不同运行环境之间差异的痛苦过程。
[0003]为了使Linux 容器最大程度的复用镜像层数据,减少磁盘占用空间,Linux容器镜像进行了分层设计,每个分层都是一个只读的CoW文件系统。CoW是一种文件系统的写入优化策略。在CoW文件系统中,当需要修改某个文件时,系统会首先将该文件所在的块复制一份,然后在副本上进行修改,而不是直接修改原始的文件块。这样可以避免原始文件的修改,确保数据的一致性和安全性。而当上层需要删除下层某个已存在的文件时,Linux容器使用了Whiteout技术去标记被删除的文件,被标记的文件不会被删除或覆盖,而是创建一个名为whiteout的特殊文件来标记该文件已被删除或修改。进而在后续的文件访问和操作中,系统会根据whiteout文件的存在与否来判断文件的可见性和状态。但实际上该文件依然存在于下层中,并且实际占用磁盘空间没有减少。
[0004]CoW文件系统和whiteout技术的上述特性决定了镜像文件只会增加不会减少。若想减少镜像体积,仅仅直接在上层Linux 容器里删除相关内容并不会作用于下层镜像层。而由于多个镜像可能共享相同的基础分层,如果直接对某个镜像层进行处理,则存在影响其他依赖该镜像层的Linux容器的风险。
[0005]针对Docker镜像的这种特性,在导出镜像时进行优化,使其既能占用更少的存储空间,又能保证原有功能的完备性,是具有挑战性和实际应用意义的。
[0006]目前,有三种主流方案对镜像层进行删减。一是从dockerfile文件的编写上进行规范,比如删除不必要的组件和文件,选择小的基础镜像方式等,由于dockerfile 中的每条指令都将创建一个层,也可以通过指令合并的方式实现镜像体积减少。但是该方案虽然可以使得生成的镜像更小更安全,但是这很大程度上依赖人工编排经验,而且无法对已经制成的镜像进行处理。二是根据镜像层的CoW特性,采用静态分析的算法寻找镜像中的whiteout文件,然后直接删除镜像层中对应的文件。但该方案只适用于使用aufs文件驱动的特定镜像,无法处理其他文件驱动方式,如device

mapper和btrfs等。这些文件驱动的镜像存储位置和读写方式与aufs有很大的区别,因此无法通过路径直接访问这些镜像,也无法进行镜像的删减操作。此外该方案无法对不包含whiteout文件的镜像层进行删减。三是使用一种动态分析的方法获取Linux容器运行所依赖的文件。程序通过待修改的镜像创建一个Linux容器,Linux容器中会添加一个探针用于监控Linux容器中的进程和文件访问。当Linux容器运行结束时,探针会收集所有相关依赖文件的信息,并将其导出,以重新制作一
个新的镜像。该方案可以有效地减少镜像的大小,并且不受特定文件驱动的限制。然而,该方案的缺点在于它仅依赖于Linux容器运行时实际访问的文件。如果Linux容器在运行过程中没有较全面的覆盖到所需的文件,就有可能导致过度删减。因此,在使用时需要确保Linux容器的运行环境尽可能全面地包含所需的文件,以避免意外删减。

技术实现思路

[0007]本专利技术实施例提供了一种镜像文件管理方法、系统、设备及介质,以解决现有技术中的上述技术问题。
[0008]为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
[0009]根据本专利技术实施例的第一方面,提供了一种镜像文件管理方法。
[0010]在一个实施例中,所述镜像文件管理方法,包括:获取于Linux容器运行期间的访问数据,所述访问数据包括所有的目录信息和镜像依赖文件信息;根据欲导出的目标目录,在所述访问数据中查找并获取与所述目标目录相对应的目录信息和目标目录下的镜像依赖文件信息;将所述目标目录相对应的目录信息和目标目录下的镜像依赖文件信息以及Linux容器的所有镜像依赖文件信息,代入至预先配置的条件概率预测模型进行计算,得到所述目标目录的导出概率;将所述导出概率与预定概率阈值进行比较,并根据比较结果导出对应的访问数据;并根据导出的访问数据重新生成新的镜像文件。
[0011]在一个实施例中,所述目录信息包括主目录信息以及每个主目录下子目录数量和子目录递归层数;所述镜像依赖文件信息包括Linux容器的所有镜像依赖文件数量和每个子目录递归层的镜像依赖文件数量。
[0012]在一个实施例中,所述条件概率预测模型的计算公式为:;式中,P(D)为目标目录的导出概率;n为Linux容器的所有镜像依赖文件数量,为目标目录下包含的镜像依赖文件数量,m为子目录数量,p为子目录递归层数,m
k
为每个子目录递归层的镜像依赖文件数量。
[0013]在一个实施例中,根据比较结果导出对应的访问数据包括:在比较结果为所述导出概率大于所述预定概率阈值的情况下,导出所述目标目录中的所有文件;在比较结果为所述导出概率小于所述预定概率阈值的情况下,导出所述目标目录中的镜像依赖文件。
[0014]根据本专利技术实施例的第二方面,提供了一种镜像文件管理系统。
[0015]在一个实施例中,所述镜像文件管理系统,包括:容器数据获取模块,用于获取于Linux容器运行期间的访问数据,所述访问数据包括所有的目录信息和镜像依赖文件信息;目录数据获取模块,用于根据欲导出的目标目录,在所述访问数据中查找并获取
与所述目标目录相对应的目录信息和目标目录下的镜像依赖文件信息;导出概率计算模块,用于将所述目标目录相对应的目录信息和目标目录下的镜像依赖文件信息以及Linux容器的所有镜像依赖文件信息,代入至预先配置的条件概率预测模型进行计算,得到所述目标目录的导出概率;文件导出生成模块,用于将所述导出概率与预定概率阈值进行比较,并根据比较结果导出对应的访问数据;并根据导出的访问数据重新生成新的镜像文件。
[0016]在一个实施例中,所述目录信息包括主目录信息以及每个主目录下子目录数量和子目录递归层数;所述镜像依赖文件信息包括Linux容器的所有镜像依赖文件数量和每个子目录递归层的镜像依赖文件数量。
[0017]在一个实施例中,所述条件概率预测模型的计算公式为:;式中,P(D)为目标目录的导出概率;n为Linux容器的所有镜像依赖文件数量,为目标目录下包含的镜像依赖文件数量,m为子目录数量,p为子目录递归层数,m
k
为每个子目录递归层的镜像依赖文件数量。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种镜像文件管理方法,其特征在于,包括:获取于Linux容器运行期间的访问数据,所述访问数据包括所有的目录信息和镜像依赖文件信息;根据欲导出的目标目录,在所述访问数据中查找并获取与所述目标目录相对应的目录信息和目标目录下的镜像依赖文件信息;将所述目标目录相对应的目录信息和目标目录下的镜像依赖文件信息以及Linux容器的所有镜像依赖文件信息,代入至预先配置的条件概率预测模型进行计算,得到所述目标目录的导出概率;将所述导出概率与预定概率阈值进行比较,并根据比较结果导出对应的访问数据;并根据导出的访问数据重新生成新的镜像文件。2.根据权利要求1所述的镜像文件管理方法,其特征在于,所述目录信息包括主目录信息以及每个主目录下子目录数量和子目录递归层数;所述镜像依赖文件信息包括Linux容器的所有镜像依赖文件数量和每个子目录递归层的镜像依赖文件数量。3.根据权利要求2所述的镜像文件管理方法,其特征在于,所述条件概率预测模型的计算公式为:;式中,P(D)为目标目录的导出概率;n为Linux容器的所有镜像依赖文件数量,为目标目录下包含的镜像依赖文件数量,m为子目录数量,p为子目录递归层数,m
k
为每个子目录递归层的镜像依赖文件数量。4.根据权利要求3所述的镜像文件管理方法,其特征在于,根据比较结果导出对应的访问数据包括:在比较结果为所述导出概率大于所述预定概率阈值的情况下,导出所述目标目录中的所有文件;在比较结果为所述导出概率小于所述预定概率阈值的情况下,导出所述目标目录中的镜像依赖文件。5.一种镜像文件管理系统,其特征在于,包括:容器数据获取模块,用于获取于Linux容器运行期间的访问数据,所述访问数据包括所有的目录信息和镜像依赖文件信息;目录数据获取模块,用于根据欲导出的目标目录,在所述访问数...

【专利技术属性】
技术研发人员:林萍萍王忠臣章云鹏
申请(专利权)人:山东未来网络研究院紫金山实验室工业互联网创新应用基地
类型:发明
国别省市:

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

1