一种容器镜像管理方法、装置、设备及存储介质制造方法及图纸

技术编号:36300589 阅读:15 留言:0更新日期:2023-01-13 10:16
本申请公开了一种容器镜像管理方法、装置、设备及存储介质,涉及云计算技术领域。该方法包括:根据容器的容器信息创建虚拟磁盘文件;获取目标容器镜像文件并对所述目标容器镜像文件进行解析,以获取所述目标容器镜像文件中各层的压缩文件;将目标容器镜像文件中当前层的压缩文件解压缩至所述虚拟磁盘文件并进行相应的处理,然后对处理后得到的虚拟磁盘文件通过reflink方式创建快照,当所述目标容器镜像文件中各层的压缩文件全部解压缩后,确定出目标虚拟磁盘文件;根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录。通过本申请的技术方案,可以提升镜像读写效率,提升容器的高可用性。提升容器的高可用性。提升容器的高可用性。

【技术实现步骤摘要】
一种容器镜像管理方法、装置、设备及存储介质


[0001]本专利技术涉及云计算
,特别涉及一种容器镜像管理方法、装置、设备及存储介质。

技术介绍

[0002]随着当前云计算技术的发展,kubernetes(简称K8s)及相关容器技术得到了广泛的使用,对于容器镜像的存储,开源社区提供了多种实现方式,例如OverlayFS、devmapper等方式。但是这些镜像管理方式在某些场景下对用户场景并不完善适用,例如在容器镜像存放在ocfs2等集群文件系统时,OverlayFS管理方式会存在大量的小文件及目录,当在ocfs2文件系统上存放时会产生大量的加锁操作,导致容器启动缓慢、镜像文件/目录读写性能偏低;而devmapper方式需要底层基于裸设备创建,并不适用于在文件系统上存储容器镜像。
[0003]综上,如何避免在ocfs2等集群文件系统上存放容器镜像时产生大量加锁操作是目前有待解决的问题。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种容器镜像管理方法、装置、设备及存储介质,能够避免在ocfs2等集群文件系统上存放容器镜像时产生大量加锁操作。其具体方案如下:
[0005]第一方面,本申请公开了一种容器镜像管理方法,包括:
[0006]根据容器的容器信息创建虚拟磁盘文件;
[0007]获取目标容器镜像文件,并对所述目标容器镜像文件进行解析,以获取所述目标容器镜像文件中各层的压缩文件;
[0008]将所述目标容器镜像文件中当前层的压缩文件解压缩至所述虚拟磁盘文件并进行相应的处理,然后对处理后得到的虚拟磁盘文件通过reflink方式创建快照,当所述目标容器镜像文件中各层的压缩文件全部解压缩后,确定出目标虚拟磁盘文件;
[0009]根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录。
[0010]可选的,所述根据容器的容器信息创建虚拟磁盘文件,包括:
[0011]获取容器的根目录空间大小信息;
[0012]根据所述根目录空间大小信息通过预设磁盘创建指令创建相应大小的RAW格式虚拟磁盘文件。
[0013]可选的,所述根据容器的容器信息创建虚拟磁盘文件之后,还包括:
[0014]将所述虚拟磁盘文件进行格式化,并在格式化后的虚拟磁盘文件上创建文件系统。
[0015]可选的,所述将所述目标容器镜像文件中当前层的压缩文件解压缩至所述虚拟磁
盘文件并进行相应的处理,然后对处理后得到的虚拟磁盘文件通过reflink方式创建快照,当所述目标容器镜像文件中各层的压缩文件全部解压缩后,确定出目标虚拟磁盘文件,包括:
[0016]将所述虚拟磁盘文件以loop方式进行挂载,并将所述目标容器镜像文件中当前层的压缩文件解压缩至所述文件系统,以得到第一虚拟磁盘文件;
[0017]将所述文件系统进行卸载,然后对所述第一虚拟磁盘文件通过reflink方式创建快照,以得到第二虚拟磁盘文件;
[0018]判断所述第二磁盘文件中的数据是否为所述目标镜像文件中所有层的数据,如果是则将所述第二磁盘文件确定为所述目标虚拟磁盘文件;如果否则将所述第二磁盘文件作为当前的虚拟磁盘文件,然后重复执行所述将所述虚拟磁盘文件以loop方式进行挂载,并将所述目标容器镜像文件中当前层的压缩文件解压缩至所述文件系统的步骤,直到所述第二磁盘文件中的数据包括所述目标镜像文件中所有层的数据时,将所述第二磁盘文件确定为所述目标虚拟磁盘文件。
[0019]可选的,所述根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录,包括:
[0020]若所述容器类型为传统的docker容器或runc容器,则将所述目标虚拟磁盘文件以loop方式进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录。
[0021]可选的,所述根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录,包括:
[0022]若所述容器类型为基于轻量虚拟化的kata容器,则将所述目标虚拟磁盘文件通过virio

blk或virtio

scsi的方式添加至所述kata容器,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录。
[0023]可选的,所述根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录,包括:
[0024]当所述容器启动后,根据所述目标容器镜像文件查找对应的目标虚拟磁盘文件,并对所述目标虚拟磁盘文件通过reflink方式创建快照,以得到临时快照文件;
[0025]根据所述容器的容器类型将所述临时快照文件进行挂载,以便将所述临时快照文件作为所述目标容器的根目录。
[0026]第二方面,本申请公开了一种容器镜像管理装置,包括:
[0027]虚拟磁盘文件创建模块,用于根据容器的容器信息创建虚拟磁盘文件;
[0028]目标容器镜像文件获取模块,用于获取目标容器镜像文件,并对所述目标容器镜像文件进行解析,以获取所述目标容器镜像文件中各层的压缩文件;
[0029]目标虚拟磁盘文件确定模块,用于将所述目标容器镜像文件中当前层的压缩文件解压缩至所述虚拟磁盘文件并进行相应的处理,然后对处理后得到的虚拟磁盘文件通过reflink方式创建快照,当所述目标容器镜像文件中各层的压缩文件全部解压缩后,确定出目标虚拟磁盘文件;
[0030]目标虚拟磁盘文件挂载模块,用于根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录。
[0031]第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其
中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的容器镜像管理方法。
[0032]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的容器镜像管理方法。
[0033]本申请提供了一种容器镜像管理方法,首先根据容器的容器信息创建虚拟磁盘文件;然后获取目标容器镜像文件,并对所述目标容器镜像文件进行解析,以获取所述目标容器镜像文件中各层的压缩文件;将所述目标容器镜像文件中当前层的压缩文件解压缩至所述虚拟磁盘文件并进行相应的处理,然后对处理后得到的虚拟磁盘文件通过reflink方式创建快照,当所述目标容器镜像文件中各层的压缩文件全部解压缩后,确定出目标虚拟磁盘文件;根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录。可见,通过创建虚拟磁盘文件作为容器镜像的载体,然后对要使用的目标容器镜像各层的压缩文件解压到虚拟磁盘文件中,将容器镜像转存至虚拟磁盘文件,后续容器根目录的下文本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种容器镜像管理方法,其特征在于,包括:根据容器的容器信息创建虚拟磁盘文件;获取目标容器镜像文件,并对所述目标容器镜像文件进行解析,以获取所述目标容器镜像文件中各层的压缩文件;将所述目标容器镜像文件中当前层的压缩文件解压缩至所述虚拟磁盘文件并进行相应的处理,然后对处理后得到的虚拟磁盘文件通过reflink方式创建快照,当所述目标容器镜像文件中各层的压缩文件全部解压缩后,确定出目标虚拟磁盘文件;根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录。2.根据权利要求1所述的容器镜像管理方法,其特征在于,所述根据容器的容器信息创建虚拟磁盘文件,包括:获取容器的根目录空间大小信息;根据所述根目录空间大小信息通过预设磁盘创建指令创建相应大小的RAW格式虚拟磁盘文件。3.根据权利要求1所述的容器镜像管理方法,其特征在于,所述根据容器的容器信息创建虚拟磁盘文件之后,还包括:将所述虚拟磁盘文件进行格式化,并在格式化后的虚拟磁盘文件上创建文件系统。4.根据权利要求3所述的容器镜像管理方法,其特征在于,所述将所述目标容器镜像文件中当前层的压缩文件解压缩至所述虚拟磁盘文件并进行相应的处理,然后对处理后得到的虚拟磁盘文件通过reflink方式创建快照,当所述目标容器镜像文件中各层的压缩文件全部解压缩后,确定出目标虚拟磁盘文件,包括:将所述虚拟磁盘文件以loop方式进行挂载,并将所述目标容器镜像文件中当前层的压缩文件解压缩至所述文件系统,以得到第一虚拟磁盘文件;将所述文件系统进行卸载,然后对所述第一虚拟磁盘文件通过reflink方式创建快照,以得到第二虚拟磁盘文件;判断所述第二磁盘文件中的数据是否为所述目标镜像文件中所有层的数据,如果是则将所述第二磁盘文件确定为所述目标虚拟磁盘文件;如果否则将所述第二磁盘文件作为当前的虚拟磁盘文件,然后重复执行所述将所述虚拟磁盘文件以loop方式进行挂载,并将所述目标容器镜像文件中当前层的压缩文件解压缩至所述文件系统的步骤,直到所述第二磁盘文件中的数据包括所述目标镜像文件中所有层的数据时,将所述第二磁盘文件确定为所述目标虚拟磁盘文件。5.根据权利要求1所述的容器镜像管理方法,其特征在于,所述根据所述容器的容器类型将所述目标虚拟磁盘文件进行挂载,以便将所述目标虚拟磁盘文件作为所述目标容器的根目录...

【专利技术属性】
技术研发人员:张会健
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1