一种OCI镜像增量更新方法、装置、介质、设备及产品与流程

摘要: 本发明涉及云计算中,尤其涉及一种oci(opencontainerinitiative,开放容器倡议)镜像增量更新方法、装置、介质、设备及产品。背景技术:1、随...
一种OCI镜像增量更新方法、装置、介质、设备及产品与流程

本发明涉及云计算中,尤其涉及一种oci(open container initiative,开放容器倡议)镜像增量更新方法、装置、介质、设备及产品。

背景技术:

1、随着云计算和容器化部署的发展,容器镜像已广泛应用于应用交付、服务部署等场景。oci镜像规范作为容器化部署中的重要标准,通常采用分层结构组织镜像数据,具体的,镜像中的文件系统内容通常被划分至多个镜像层中,不同镜像层按照层序列依次叠加,以形成容器运行时所需的完整文件系统。

2、在现有技术中,镜像层通常是不可拆分的整体单元,当某一镜像层中的文件发生变化时,即使仅修改了该镜像层中的少量文件,也会导致该镜像层的内容发生变化,使得该镜像层难以继续复用原有版本中的对应镜像层。而后续镜像层通常是在前序镜像层形成的文件系统基础上构建得到,当位于前序位置的镜像层发生变化时,后续镜像层的构建基础可能随之改变,导致后续镜像层的构建缓存失效。对于包含大量文件的镜像而言,上述机制会造成较大的重复构建开销,从而影响镜像版本更新效率。

技术实现思路

1、本发明实施例的目的在于,提出了一种oci镜像增量更新方法、装置、介质、设备及产品,基于基准版本oci镜像中的变更镜像层生成增量变更镜像层,并确定依赖于所述变更镜像层的目标依赖镜像层,以对所述目标依赖镜像层进行重构,进而基于位于所述目标依赖镜像层之前的镜像层、所述增量变更镜像层和重构得到的目标重构镜像层集合生成目标版本oci镜像,减少了因变更镜像层内文件变化导致的重复构建开销,提升了oci镜像的版本更新效率。

2、为了实现上述目的,本发明第一方面实施例提供了一种oci镜像增量更新方法,所述方法包括:

3、基于基准版本oci镜像中的变更镜像层,生成对应的增量变更镜像层;

4、将依赖于所述变更镜像层的镜像层,确定为目标依赖镜像层;

5、对所述目标依赖镜像层进行重构,生成目标重构镜像层集合;

6、基于位于所述目标依赖镜像层之前的镜像层、所述增量变更镜像层和所述目标重构镜像层集合,生成目标版本oci镜像。

7、本实施例,通过生成增量变更镜像层并仅对目标依赖镜像层进行重构,使目标依赖镜像层之前的镜像层能够继续复用,减少了镜像层重复构建开销,提升了oci镜像版本更新效率。

8、进一步地,所述基于基准版本oci镜像中的变更镜像层,生成对应的增量变更镜像层,包括:

9、根据待更新文件与基准版本oci镜像中对应文件之间的差异,确定文件变更内容和所述文件变更内容对应的变更镜像层;

10、复制所述文件变更内容对应的目标文件数据;

11、基于所述目标文件数据生成所述变更镜像层的增量变更镜像层。

12、本实施例,通过确定文件变更内容及其对应的变更镜像层,并基于目标文件数据生成增量变更镜像层,减少了未变更文件的重复处理。

13、进一步地,所述复制所述文件变更内容对应的目标文件数据,包括:

14、确定所述文件变更内容对应的变更量;

15、若所述变更量小于或等于预设阈值,则复制所述文件变更内容对应的变更文件;

16、若所述变更量大于所述预设阈值,则复制所述变更镜像层对应的全部文件。

17、本实施例,通过根据变更量与预设阈值的比较结果选择复制变更文件或全部文件,能够在增量复制和全量复制之间进行适配选择,兼顾了更新效率和镜像层生成稳定性。

18、进一步地,所述将依赖于所述变更镜像层的镜像层,确定为目标依赖镜像层,包括:

19、按照基准版本oci镜像的层序列顺序,从所述变更镜像层的下一镜像层开始逐层查询候选镜像层;

20、将查询到的第一个依赖于所述变更镜像层中文件变更内容的候选镜像层,确定为目标依赖镜像层。

21、本实施例,通过从变更镜像层之后逐层查询,并将第一个依赖于文件变更内容的候选镜像层确定为目标依赖镜像层,从而减少不必要的镜像层重构。

22、进一步地,通过以下步骤确定依赖于所述变更镜像层的镜像层:

23、获取所述候选镜像层对应的构建指令和/或文件访问信息;

24、基于所述构建指令和/或所述文件访问信息,分析所述候选镜像层与所述变更镜像层对应的文件变更内容之间的层间依赖关系;

25、若所述层间依赖关系满足预设依赖条件,则将所述候选镜像层确定为依赖于所述变更镜像层的镜像层。

26、本实施例,通过构建指令和/或文件访问信息分析层间依赖关系,能够准确判断候选镜像层是否依赖文件变更内容,提高了目标依赖镜像层确定的准确性。

27、进一步地,所述对所述目标依赖镜像层进行重构,生成目标重构镜像层集合,包括:

28、对所述目标依赖镜像层及位于所述目标依赖镜像层之后的镜像层进行重构,生成目标重构镜像层集合。

29、本实施例,通过对目标依赖镜像层及其后续镜像层进行重构,使重构后的镜像层能够基于增量变更镜像层形成正确的层序列关系,保证了目标版本oci镜像的构建一致性。

30、进一步地,在生成所述目标版本oci镜像之前,还包括:

31、从待生成的目标版本oci镜像的层序列中,删除所述基准版本oci镜像中与所述目标重构镜像层集合对应的原始镜像层的层引用信息。

32、本实施例,通过删除原始镜像层的层引用信息,避免目标版本oci镜像继续引用已被重构替代的原始镜像层,提高了目标版本oci镜像层序列的准确性。

33、为了实现上述目的,本发明第二方面实施例还提供了一种oci镜像增量更新装置,用于实现上述第一方面任一项所述的一种oci镜像增量更新方法,所述装置包括:

34、增量变更镜像层生成模块,用于基于基准版本oci镜像中的变更镜像层,生成对应的增量变更镜像层;

35、目标依赖镜像层确定模块,用于将依赖于所述变更镜像层的镜像层,确定为目标依赖镜像层;

36、目标重构镜像层集合生成模块,用于对所述目标依赖镜像层进行重构,生成目标重构镜像层集合;

37、目标版本oci镜像生成模块,用于基于位于所述目标依赖镜像层之前的镜像层、所述增量变更镜像层和所述目标重构镜像层集合,生成目标版本oci镜像。

38、进一步地,所述增量变更镜像层生成模块,包括:

39、第一增量变更镜像层生成单元,用于根据待更新文件与基准版本oci镜像中对应文件之间的差异,确定文件变更内容和所述文件变更内容对应的变更镜像层;

40、第二增量变更镜像层生成单元,用于复制所述文件变更内容对应的目标文件数据;

41、第三增量变更镜像层生成单元,用于基于所述目标文件数据生成所述变更镜像层的增量变更镜像层。

42、进一步地,所述目标依赖镜像层确定模块,包括:

43、第一目标依赖镜像层确定单元,用于按照基准版本oci镜像的层序列顺序,从所述变更镜像层的下一镜像层开始逐层查询候选镜像层;

44、第二目标依赖镜像层确定单元,用于将查询到的第一个依赖于所述变更镜像层中文件变更内容的候选镜像层,确定为目标依赖镜像层。

45、进一步地,所述目标重构镜像层集合生成模块,包括:

46、目标重构镜像层集合生成单元,用于对所述目标依赖镜像层及位于所述目标依赖镜像层之后的镜像层进行重构,生成目标重构镜像层集合。

47、进一步地,所述装置还包括:

48、层引用信息删除模块,用于从待生成的目标版本oci镜像的层序列中,删除所述基准版本oci镜像中与所述目标重构镜像层集合对应的原始镜像层的层引用信息。

49、本发明第三方面实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述第一方面任一项所述的一种oci镜像增量更新方法。

50、本发明第四方面实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现上述第一方面任一项所述的一种oci镜像增量更新方法。

51、本发明第五方面实施例还提供了计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述第一方面任一项所述的一种oci镜像增量更新方法。