一种容器镜像存储与重组系统

文档序号:37683108发布日期:2024-04-18 20:55阅读:10来源:国知局
一种容器镜像存储与重组系统

本发明涉及软件虚拟化领域,尤其涉及一种容器镜像存储与重组系统。


背景技术:

1、诸如docker之类的容器化框架在现代云环境中已经得到广泛使用,这是由于与虚拟机相比,他们的开销更低,允许将一个软件组件(例如一个应用程序的源代码或其二进制文件)及其运行该组件的所有软件依赖项一起打包,封装成容器镜像,并将其存储在镜像仓库里,以便按需快速地部署应用。另外,因为应用程序整体性架构的进程耦合,许多紧密耦合的进程会扩大单个进程故障的可能,从而增加了应用的可用性风险。因此,将应用程序解耦后的微服务架构日益普及。到目前为止,几乎所有的云平台(阿里云、腾讯云等等)都以容器作为核心部署技术。

2、容器镜像是容器化应用的核心,一个应用程序的镜像包括应用程序的可执行文件,所需的其他可执行文件、库以及配置和数据文件。容器镜像是分层结构的,一般由描述镜像生成规则的dockerfile文件生成,dockerfile由多条指令生成,其中的每条指令都会对应docker镜像中的一层,新容器镜像也能在已有镜像的基础进行改动生成。

3、docker利用基于分层的联合文件系统实现在启动容器时有效地将层合并到单个的文件系统树中。为了存储和分发镜像,docker依赖诸如docker hub之类的镜像注册表,docker客户端可以根据需要从注册表中拉取或者推送镜像,docker注册表支持各种存储后端,用于保存和检索图层,镜像的层文件以压缩包的形式存储在后端中。主机中不同的镜像可以共享相同的层,也就是说在下载镜像时如果本地已经拥有该镜像的层,客户端将不会重复拉取该层。然而,随着容器市场的不断扩大,docker后端需要存储的镜像和相应的层文件越来越多,据网上检索,早在2018年目前最流行的注册表docker hub就存储了一亿五千万个容器镜像,占据了大约15pb的存储空间,再加上其他注册表以及本机镜像仓库,存储镜像所需的空间变得越来越大,这大大增加了镜像的存储开销。随着边缘云承载的计算任务越来越多,需要下载的镜像数量激增,这给中央镜像注册表中心的网络带宽带来了压力。


技术实现思路

1、为了解决边缘设备存储压力过大的问题,本发明提供了一种容器镜像存储与重组系统,包括客户端、仓库节点、存储节点、云端节点和docker hub,仓库节点直连客户端,内设节点代理模块联系存储节点和docker hub;

2、客户端获取并存储镜像拉取数据;

3、仓库节点用于分析用户历史请求镜像及镜像请求率,对镜像冗余文件进行删除,随后给出镜像唯一文件的存储位置;

4、用于接收用户镜像拉取请求,根据所需镜像文件特征和存储节点中已存储文件特征,确定重组关联节点并向其发送传输请求;

5、用于记录镜像层信息和层文件信息,包括某一镜像拥有的层映射和层中包含的唯一文件映射关系以及上诉镜像唯一文件的存储位置,以便重构镜像;

6、用于重组镜像并返回给客户端;

7、存储节点存储和传输镜像唯一文件;

8、docker hub处理存储节点的意外情况,提供备用镜像拉取服务;

9、仓库节点接收来自客户端的镜像拉取数据,由节点代理模块分析并制定镜像唯一文件的存储策略并保存存储位置信息,进一步将镜像唯一文件存储在关联节点中完成容器镜像的存储;仓库节点接收并分析客户端的镜像拉取数据后,根据保存的存储位置信息获取重组镜像所需的镜像唯一文件并重组,传输回客户端实现容器镜像的重组。

10、进一步地,镜像拉取数据包括历史拉取镜像、历史镜像拉取请求率和镜像拉取请求。

11、进一步地,仓库节点内设节点代理模块,节点模块由三个子模块组成,包括镜像文件存储决策模块、镜像文件拉取决策模块以及镜像文件存储位置和镜像信息元数据库;

12、镜像文件存储决策模块用于根据镜像拉取数据确定镜像唯一文件存储位置,并将相关存储位置信息写入镜像文件存储位置和镜像信息元数据库,实现容器镜像的存储。

13、镜像文件拉取决策模块用于完成由存储节点传输来的镜像文件到相应镜像层的重组过程,并将重组好的镜像回传给客户端,实现容器镜像的重组。

14、镜像文件储存位置和镜像信息元数据库用于记录镜像唯一文件存储位置和镜像详细信息,包括组成层和组成文件信息。

15、进一步地,可选的,镜像文件存储决策模块采取的算法包括基于文件尺寸优先策略、基于镜像拉取率优先策略和基于激励机制存储策略。

16、基于文件尺寸优先策略:将尺寸更大的镜像唯一文件放在性能更好的存储节点,更大程度减少单体文件的打包压缩和传输时延以减少整体容器镜像拉取时延。

17、基于镜像拉取率优先策略:将拉取率更高的镜像唯一文件放在性能更好的存储节点,可以在整体上增加可减少拉取时延的比例从而获得更低的整体容器镜像拉取时延。

18、基于激励机制的存储策略:当拉取开销相同时,选取剩余存储容量更多的存储节点;具体来说,将仓库节点对存储节点的镜像文唯一件请求过程建模为一个拍卖游戏,拍卖品为镜像唯一文件、竞拍者为各存储节点,拍卖价格为拉取总开销。采取“价低者得”的思想选定存储节点,当出价相同时,剩余存储容量更多者拍卖成功。

19、进一步地,存储节点包括边缘节点集群和云端节点。

20、边缘节点集群由一组边缘节点主机组成,用于存储和传输镜像唯一文件。

21、云端节点用于存储和传输在资源限制下边缘节点集群无法存储的镜像唯一文件,保证系统的完整性。

22、进一步地,容器镜像的存储的具体步骤为:

23、s11、将客户端中的历史拉取镜像和历史镜像拉取请求率传输至仓库节点;

24、s12、镜像文件存储决策模块对历史拉取镜像、历史镜像拉取请求率以及存储节点主机性能指标结合分析,给出镜像唯一文件的存储策略,具体步骤为:

25、s121、分析历史拉取镜像和历史镜像拉取请求率,去除重复的冗余镜像文件,保留镜像唯一文件;

26、s122、分析镜像唯一文件特征和存储节点主机性能指标;

27、s123、根据镜像文件特征和存储节点主机性能特征计算镜像唯一文件最佳存储位置,给出镜像唯一文件的存储策略;

28、s13、根据存储策略将镜像唯一文件存储到对应节点,保存存储位置信息,更新节点代理中的镜像文件存储位置和镜像信息元数据库。

29、进一步地,镜像文件特征包括镜像拥有的层信息和文件信息。

30、进一步地,存储节点主机性能指标包括主机存储容量、网络带宽和cpu频率。

31、容器镜像的重组的具体过程为:

32、s21、仓库节点接收来自客户端的镜像拉取请求;

33、s22、镜像文件拉取决策模块剖析镜像拉取请求,得到用户所需镜像唯一文件的清单;

34、s23、根据仓库节点中的镜像文件储存位置和镜像信息元数据库确定清单内镜像唯一文件的存储位置,向关联的存储节点发送拉取请求;

35、s24、关联的存储节点根据拉取请求将所需镜像唯一文件打包并压缩后发送给仓库节点;

36、s25、接收文件后,按照容器镜像组成清单完成镜像的重构,传输给客户端。

37、进一步地,处理意外情况的调度过程具体为:

38、存储节点中出现宕机或损坏的意外情况导致镜像无法完整重组时,仓库节点会将来自客户端的镜像拉取请求转接到官方注册表docker hub中,提供备用镜像拉取服务,提高系统的鲁棒性,在用户看来,以上操作是完全透明的,不会对用户造成任何影响。

39、本发明提供的技术方案带来的有益效果是:本发明通过一种容器镜像存储与重组系统,包括客户端、仓库节点、存储节点和docker hub,仓库节点接收来自客户端的镜像拉取数据,由节点代理模块分析并制定镜像唯一文件的存储策略并保存存储位置信息,进一步将镜像唯一文件存储在关联节点中完成容器镜像的存储;仓库节点接收并分析客户端的镜像拉取数据后,根据保存的存储位置信息获取重组镜像所需镜像唯一文件并重组,传输回客户端实现容器镜像的重组,极大减少镜像文件过多冗余而导致的不必要存储开销,减少镜像拉取时间。

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