CN111324360B - 一种面向边缘计算的容器镜像构建方法和系统 - Google Patents
一种面向边缘计算的容器镜像构建方法和系统 Download PDFInfo
- Publication number
- CN111324360B CN111324360B CN202010013040.5A CN202010013040A CN111324360B CN 111324360 B CN111324360 B CN 111324360B CN 202010013040 A CN202010013040 A CN 202010013040A CN 111324360 B CN111324360 B CN 111324360B
- Authority
- CN
- China
- Prior art keywords
- file
- module
- image
- index
- container
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种面向边缘计算的容器镜像构建方法和系统,容器镜像构建方法至少包括如下步骤:镜像重构模块将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将索引和备用文件按照彼此单独存储的方式分别存储于镜像仓库与备用文件存储模块中;下载引擎模块将用于更新索引的配置信息从镜像仓库抓取至边缘端相应的容器中,以使得镜像文件查询模块基于配置信息查询本地文件共享模块以获取配置信息对应的本地共享文件,镜像文件查询模块能够从备用文件存储模块中下载基于配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器将基于配置信息记录到的本地共享文件和缺省文件上传至镜像重构模块,以匹配生成索引。
Description
技术领域
本发明涉及计算机应用系统技术领域,尤其涉及一种面向边缘计算的容器镜像构建方法和系统。
背景技术
容器技术因为其快速启动、较小的资源开销以及轻量级的资源隔离,已经成为云环境中应用部署的实施标准。当前,容器因为其轻量的优点,也逐渐应用于边缘计算领域。但是边缘计算领域相比于云环境而言,网络宽带小,因此传统适用于云的占据大量网络带宽的容器镜像构建方法并不适用于边缘计算场景。
例如,公开号为CN108399094A的中国专利公开的一种应用的部署方法、其部署装置及边缘数据中心。其通过虚拟机和容器两种虚拟化技术结合,实现了对不同安全等级的应用的部署,对请求部署应用的安全等级为高级时,采用容器在虚拟机中启动的方式进行部署,而对于请求部署应用的安全等级为低级时,采用容器在物理机上启动的方式进行部署;如此,将虚拟机的安全隔离性与容器的轻量快速部署的优势相结合,既保留了虚拟机的隔离性特点,又充分使用了容器快速高效部署应用的优势,为应用提供了不同级别的安全隔离性。
容器镜像是启动容器实例的基础,包含了容器运行所需的所有数据。在启动容器实例之前,完整的容器镜像必须下载到本地。当前广泛使用的Docker容器框架采用了客户端-仓库端模型,客户端负责实际容器生命周期的管理,包括启动、暂停、恢复和销毁,仓库端负责集中存放需要部署的容器镜像,供客户端自由获取需要的镜像。
Docker容器镜像采用分层结构,即一个容器镜像由多个镜像层组成,每个镜像层保存部分镜像数据,当需要启动容器实例的时候,使用联合文件系统将所有镜像层联合挂载至一个目录下,为容器实例提供完整的文件系统视图,使得容器能够正常运行。采用分层结构的优点在于当多个不同的镜像中存在相同的镜像层时,该镜像层不会下载多次,而是可以被多个镜像进行共享,这样既能够减少网络和存储资源的使用,也能够加快容器实例的部署速度。
然而,用户在制作容器镜像时,往往会引入许多笔不要的数据,因而使得镜像体积远大于其实际使用到的数据的体积。而且,分层结构在使用时,由于其共享粒度过大而导致共享效果不佳。因此,这种分层结构在启动前必须下载完整镜像到本地的镜像格式,在实际使用过程中并不高效,这给将容器技术运用到边缘计算场景带来了极大的难题。目前,还缺乏一种面向边缘计算的容器镜像构建方法和系统。
此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于发明人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。
发明内容
针对现有技术之不足,本发明提供了一种面向边缘计算的容器镜像构建方法和系统,所述容器镜像构架方法至少包括如下步骤:在云端,镜像重构模块将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将所述索引和所述备用文件按照彼此单独存储的方式由镜像管理模块分别存储于镜像仓库与备用文件存储模块中;在边缘端,下载引擎模块将用于构建索引的配置信息从镜像仓库抓取至所述边缘端相应的容器中,以使得镜像文件查询模块基于所述配置信息查询本地文件共享模块以获取所述配置信息对应的本地共享文件,并且,所述镜像文件查询模块能够从备用文件存储模块中下载基于所述配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器将基于所述配置信息记录到的本地共享文件和缺省文件上传至所述镜像重构模块,以使得所述镜像重构模块能够将所述访问文件与所述配置信息匹配生成所述索引。
根据一种优选的实施方式,将所述缺省文件和本地共享文件链接至该容器的私有目录存储模块中,为容器实例模块提供根目录挂载点;在容器实例模块请求目标文件的情况下,所述私有目录存储模块根据目标文件请求基于索引中的所述目标文件对应的哈希值,所述私有目录存储模块在索引的私有目录中查询是否存在以该哈希值命名的目标文件,如果存在,将所述目标文件加载至所述容器实例模块;否则,所述私有目录存储模块在本地文件共享模块查询是否存在以该哈希值命名的所述目标文件,如果存在,将所述目标文件链接到该索引的私有目录中,供容器实例模块加载;否则,所述镜像文件查询模块从备用文件存储模块中下载所述目标文件到本地文件共享模块,供容器实例模块加载。
根据一种优选的实施方式,所述镜像重构模块至少按照如下重构子步骤将所述旧镜像重构为所述新镜像:联合挂载旧镜像,获取其完整的文件信息;遍历文件信息,将完整文件信息中的普通文件的内容提取出加以哈希运算,并以哈希值的方式替换普通文件的内容以生成所述备用文件,且以替换后的文件作为索引;获取旧镜像的配置信息,所述配置信息至少包括环境变量、暴露的端口号和数据卷信息,用于构建所述索引;使用所述服务器的服务功能,将服务处理中产生的访问文件信息和获取到的配置信息上传至所述镜像重构模块以更新所述索引。
根据一种优选的实施方式,所述服务处理器按照如下方式构建所述索引,在基于配置信息服务之前,判定配置信息是否是首次引用;如果索引是非首次引用,则所述容器实例模块能够在不对索引更新的情况下以基于所述索引请求所述目标文件的方式启动容器而完成从所述索引的私有目录存储模块中的私有文件加载所述目标文件;如果索引是首次引用,则所述容器实例模块需要在所述镜像重构模块对该索引进行更新后以基于索引请求所述目标文件的方式启动容器而完成从所述索引的私有目录存储模块中的私有文件加载所述目标文件。
根据一种优选的实施方式,在云端中,所述新镜像管理模块在所述镜像重构模块请求上传备用文件的情况下检索备用文件存储模块中已有的备用文件,以使得其能够按照不重复上传已有备用文件的方式将不存在于备用文件存储模块中上的备用文件传至备用文件存储模块中。
根据一种优选的实施方式,在所述云端中,所述镜像重构模块响应于镜像监控模块从所述镜像仓库中识别到所述旧容器镜像而启动。
根据一种优选的实施方式,所述服务处理器将缺省文件和访问到的本地共享文件发送至镜像重构模块;所述镜像重构模块将缺省文件和访问到的本地共享文件与配置信息匹配以更新索引;所述镜像管理模块将该索引存储至所述镜像仓库中。
根据一种优选的实施方式,本发明还公开了一种面向边缘计算的容器镜像构建系统,以执行上述构建方法。
本发明提供一种面向边缘计算的容器镜像构建方法和系统,至少具有根据下优势:
(1)本发明通过按需获取的方法,在维持新镜像使用对用户透明的前提下,能够有效提高容器的部署效率,并降低网络资源的使用量以及客户端存储资源的使用量。
(2)本发明通过将数据缓存在本地的方法,不同容器间如果需要访问相同数据,可以实现本地直接共享,进一步减少网络资源和存储资源的使用量。同时容器应用直接访问本地数据,保证容器应用的I/O性能。
(3)本发明通过将原本的层级共享细化成文件级共享,细粒度的共享可以极大的减少镜像仓库的存储资源使用。
附图说明
图1是本发明提供的一种面向边缘计算的容器镜像构建系统的模块架构示意图;
图2是本发明提供的一种面向边缘计算的容器镜像构建系统的镜像构建模块示意图;
图3是本发明容器镜像文件的重构方法图;
图4是本发明提供的镜像重构和新镜像存储的细化流程示意图;
图5是本发明提供的新镜像部署的细化流程示意图;和
图6是本发明提供的镜像数据按需获取的细化流程示意图。
附图标记列表
100:云端 200a:下载引擎模块
200:边缘端 200b:容器实例模块
100a:镜像管理模块 200c:私有目录存储模块
100b:镜像重构模块 200d:服务处理器
100c:镜像监控模块 200e:镜像文件查询模块
100d:镜像仓库 200f:本地文件共享模块
100e:备用文件存储模块
具体实施方式
下面结合附图1-6进行详细说明。
为了便于理解,将本发明的技术用于进行如下解释。
容器:一种开源引擎,能够将软件打包呈标准化单元以用于开发、交互和部署。
容器实例(container instance service,CIS):是一种理想的执行负载,用户只要拥有程序的容器的镜像,就可以通过一些简单的配置,以极低的成本把程序运行起来。例如进行一次程序验证、爬取一个网站、部署一个Web服务等等,任何支持容器的简单应用都可以使用容器实例来部署。
DockerHub被用于源代码管理集成,也用于构建和测试工具来加速部署周期,部署周期从天减少到以分钟计算。
镜像驱动:该驱动保存容器镜像相关的信息,通过该信息及文件系统驱动类型(AUFS、OVERLAY、或OVERLAY2)来对影响层数据进行组织和管理。
索引:在关系数据库中,是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
实施例1
本实施例公开一种面向边缘计算的容器镜像构建系统。如图1所示,该容器构建系统包括云端100和边缘端。云端100和边缘端能够信息交互。如图2所示,边缘端包括容器200、镜像文件查询模块200e、本地文件共享模块200f。容器200包括下载引擎模块200a、服务处理器200d、私有存储模块200c和容器实例模块200b。如图1所示,云端100至少包括镜像仓库100d、镜像重构模块100b、镜像监控模块100c、镜像管理模块100a和备用文件存储模块100e。
结合图1和图3所示,镜像重构模块100b将旧容器镜像重构成包含索引和备用文件的新容器镜像。索引和备用文件是彼此相互对应的。索引由镜像管理模块100a保存至镜像仓库100d中,供边缘端中的相应的容器200下载。备用文件由镜像管理模块100a保存至备用文件存储模块100e中,供边缘端按需下载。优选地,该旧容器镜像可以是镜像仓库100d中原有的容器镜像,也可以是新增加的容器镜像。为了对新增加的容器镜像进行重构,在云端100中设置有镜像监控模块100c,用于监控镜像仓库100d中是否有新增加的容器镜像。在监控镜像仓库100d中有新增加的容器镜像时,镜像监控模块100c将该新增加的容器镜像传输至镜像重构模块100b进行重构。索引包含两个部分:配置信息和被提取了普通文件内容的文件信息。
首次部署时,索引被下载,容器实例需要根据索引中的配置信息启动,并根据索引中的普通文件内的哈希值查询和加载文件。由于是第一次运行,容器实例需要的所有文件都需要根据索引一个一个地下载需要的文件。这是一个耗时的过程,因为文件传输经过网络。因此,在首次部署时,对容器实例使用的文件做一个记录,并将这个记录上传到镜像重构模块,供镜像重构模块将这个记录一并打包到索引中,这个过程称之为更新。后续部署时,由于下载的索引中包含了这个记录,因此,可以一次性将所有容器会用到的文件下载到本地,然后再启动容器,这样可以加速容器的部署。
结合图1和图2所示,下载引擎模块200a将索引从镜像仓库100d抓取至边缘端相应的容器200中。容器实例模块200b基于索引中的配置信息查询从本地文件共享模块200f中获取配置信息对应的本地共享文件。并且,镜像文件查询模块200e能够从备用文件存储模块100e中下载基于配置信息检索到的本地共享文件中不存在的缺省文件。服务处理器200d将缺省文件和访问到的本地共享文件发送至镜像重构模块100b。镜像重构模块100b将缺省文件和访问到的本地共享文件与配置信息匹配以更新索引。镜像管理模块100a将该索引存储至镜像仓库中。
优选地,在边缘端中的对旧镜像进行服务过的容器200中的私有目录存储模块200c将该缺省文件和本地共享文件存储。从而,私有目录存储模块200c为新镜像提供了根目录挂载点,进一步地,在容器实例模块200b进行容器实例时仅需要从云端100中的镜像仓库中读取索引即可。
优选地,容器实例至少包括如下步骤:在容器实例模块200b请求目标文件的情况下,私有目录存储模块200c读取索引中的目标文件对应的哈希值。私有目录存储模块200c在索引的私有目录中查询是否存在以该哈希值命名的目标文件,如果存在,将目标文件加载至容器实例模块200b。否则,私有目录存储模块200c在本地文件共享模块200f查询是否存在以该哈希值命名的目标文件,如果存在,将目标文件链接到该索引的私有目录中,供容器实例模块200b加载。否则,镜像文件查询模块200e从备用文件存储模块100e中下载目标文件到本地文件共享模块200f,供容器实例模块200b加载。按照这种方式,在容器实例过程中,能够以尽量于边缘端就能够基于索引下载到相应的目标文件而降低云端和边缘端的通信开销。
优选地,镜像重构模块100b至少按照如下重构子步骤将旧镜像重构为新镜像:联合挂载旧镜像,获取其完整的文件信息。遍历文件信息,将所有的普通文件的内容提取出加以哈希运算,以哈希值的方式替换普通文件的内容以生成备用文件。镜像重构操作:联合挂载旧镜像,获取其完整的文件系统。遍历文件系统,将所有的regular files的内容提取出来,存储为备用文件,文件系统中的regular files的内容以哈希值替代。获取旧镜像的所有配置信息,包括环境变量、暴露的端口号、数据卷信息。使用容器引擎的构建功能,将处理后的文件系统和获取到的所有配置信息构建成新的镜像,并且这个镜像为单层的镜像。这个镜像就是索引index image,如图2所示。
实施例2
本实施例可以是对实施例1的进一步改进和/或补充,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。
本发明对Docker镜像的镜像重构步骤主要如下:
1.1联合挂载层次化的Docker镜像。
1.2遍历Docker镜像根目录中所有文件,如果该文件是普通文件,则对文件内容做哈希,使用得到的哈希值代替文件内容,将文件内容使用gzip压缩,使用哈希值命名,作为备用文件。对普通文件之外的其他文件不做修改,保留文件系统根目录的结构。
1.3将替换后的镜像根目录打包;提取Docker镜像的一系列属性,包括:环境变量、标签、卷、工作目录、暴露端口等信息;根据两者的信息,构建索引的Dockerfile并借助Docker的构建功能,构建出新镜像的索引。
1.4将新镜像索引推送到镜像仓库,将备用文件存储到专用文件存储系统中。
本发明的整体架构由两个部分组成:云端100和边缘端200。云端100主要包含三个模块:镜像监控模块100c、镜像重构模块100b和新镜像管理模块。镜像监控模块100c负责监控Docker镜像仓库,并将尚未重构的镜像信息(旧镜像)提交给镜像重构模块100b。镜像重构模块100b将每个Docker容器镜像重构成新镜像格式:索引文件和备用文件。备用文件以压缩形式保存,以此减少存储资源占用,如gzip格式。新镜像管理模块负责将索引文件推送到镜像仓库100d,将备用文件存储在文件存储系统100e中。边缘端主要包含两个模块:镜像存储驱动和镜像文件系统。镜像存储驱动以插件的形式开发,可以轻易地安装和使用。镜像存储驱动负责将Docker引擎下载的容器镜像数据按照某种方式保存在本地,并在启动容器实例的时候由镜像存储驱动负责提供容器实例的根目录挂载点。镜像文件系统负责将新镜像的索引和备用文件联合挂载,在容器实例根目录挂载点呈现出完整的容器根目录视图,使得容器可以正常、正确地读取数据。
Docker镜像重构和新镜像存储的主要步骤如下:
S1:启动镜像监控模块;
S2:镜像监控模块100c监控镜像仓库100d的镜像文件。镜像文件包括未重构的镜像(旧容器镜像)和已经重构好的镜像(新容器镜像)。
S3:在云端100中,镜像重构模块100b响应于镜像监控模块100c从镜像仓库100d中识别到旧容器镜像而启动。否则,镜像监控模块100c继续监控镜像仓库100d。
S4:镜像监控模块100c一旦发现镜像仓库100d中存在未重构的镜像文件,即会向镜像重构模块100a发送未重构镜像文件。
S5:镜像重构模块100b根据得到的信息,将未重构的镜像下载到本地,为重构镜像提供准备。
S6:重构好的索引和备用文件会交由新镜像管理模块,
S7:新镜像管理模:100c负责将索引推送到镜像仓库,
S8:将备用文件上传到文件存储系统中。
S9~S11:优选地,在云端100中,新镜像管理模块在镜像重构模块100b请求上传备用文件的情况下检索备用文件存储模块100e中已有的备用文件,以使得其能够按照不重复上传已有备用文件的方式将不存在于备用文件存储模块100e中上的备用文件传至备用文件存储模块100e中。例如,在上传备用文件时,会对文件系统进行查询,只上传未上传过的文件,不重复上传文件。
优选地,服务处理器200d按照如下方式构建索引,在基于配置信息服务之前,判定配置信息是否是首次引用。如果索引是非首次引用,则容器实例模块200b能够在不对索引更新的情况下以基于索引请求目标文件的方式启动容器200而完成从索引的私有目录存储模块200c中的私有文件加载目标文件。如果索引是首次引用,则容器实例模块200b需要在镜像重构模块100b对该索引进行更新后以基于索引请求目标文件的方式启动容器200而完成从索引的私有目录存储模块200c中的私有文件加载目标文件。例如,
F1:Docker引擎负责将容器镜像从镜像仓库拉取到本地,并将获取到的数据交给镜像存储驱动。
F2:存储驱动首先判断待存放到本地的镜像数据是Docker镜像还是新镜像的索引。如果是Docker容器镜像,则转到步骤F4,否则转到步骤F30。
F4:存储驱动退化为Docker容器的存储驱动,按照Docker的标准存放镜像数据并使用Docker默认的文件系统挂载容器实例根目录挂载点,转到END。
F30存储驱动将镜像数据保存到本地,并使用新镜像文件系统将索引和备用文件联合挂载,为容器实例提供根目录挂载点。
F31:启动新镜像容器
F5:判断是否是首次启动新镜像,如果是,转到步骤F60,否则转到步骤F70。
F60:记录容器在服务过程中访问到的所有文件,
F61:并将信息提交给镜像重构模块。容器的服务本质上就是读取文件,运行文件是基于索引,根据私有目录、共享目录的顺序检索。如果在私有目录检索到,则直接读取文件内容并返回;如果在共享目录检索到,则先硬链接到私有目录,再从私有目录返回;如果私有目录和共享目录都没有,则从远程的文件服务器中获取,并保存到共享目录,然后再硬链接到私有目录,从私有目录返回。
F62:镜像重构模块根据得到的文件记录信息,对新镜像索引进行更新,将文件记录信息添加到新镜像索引中,跳转到步骤END。
F70:存储驱动根据文件记录信息,查询本地共享目录,找到本地不存在的文件。
F71:存储驱动将本地不存在的文件从远程备用文件存储系统中下载到本地共享目录。
F72:将共享目录中,容器需要的所有文件硬链接到新镜像的私有目录中。
END:结束/跳转至容器数据读取。
镜像数据按需获取的主要步骤如下:
P1:新镜像容器实例请求文件。
P2:新镜像文件系统根据文件请求,从新镜像索引中的该文件中获取文件的哈希值。
P3:新镜像文件系统在新镜像的私有目录中查询是否存在以该哈希值命名的文件,如果不存在,转到P4,否则转到P8。
P4:新镜像文件系统在本地共享目录中查询;
P5:在本地共享目录中是否存在以该哈希值命名的文件,如果不存在,转到P6,否则转到P7。
P6:从远程备用文件存储系统中下载目标文件到本地共享目录。
P7:将目标文件使用硬链接链接到新镜像的私有目录中。
P8:返回目标文件给容器实例。
如本发明中所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。
Claims (6)
1.一种面向边缘计算的容器镜像构建方法,其特征在于,所述容器镜像构建方法至少包括如下步骤:
在云端(100),镜像重构模块(100b)将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将所述索引和所述备用文件按照彼此单独存储的方式由镜像管理模块(100a)分别存储于镜像仓库(100d)与备用文件存储模块(100e)中;
在边缘端,首次部署时,下载引擎模块(200a)将索引从镜像仓库(100d)抓取至所述边缘端相应的容器(200)中,以使得容器实例模块(200b)基于所述索引中的配置信息查询本地文件共享模块(200f)以获取所述配置信息对应的本地共享文件,
并且,镜像文件查询模块(200e)能够从备用文件存储模块(100e)中下载基于所述配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器(200d)将基于所述配置信息记录到的本地共享文件和缺省文件上传至所述镜像重构模块(100b),以使得所述镜像重构模块(100b)能够将访问文件与所述配置信息匹配生成所述索引;将所述缺省文件和本地共享文件链接至该容器(200)的私有目录存储模块(200c)中,为容器实例模块(200b)提供根目录挂载点;
在容器实例模块(200b)请求目标文件的情况下,所述私有目录存储模块(200c)根据目标文件请求基于索引中的所述目标文件对应的哈希值,
所述私有目录存储模块(200c)在索引的私有目录中查询是否存在以该哈希值命名的目标文件,如果存在,将所述目标文件加载至所述容器实例模块(200b);
否则,所述私有目录存储模块(200c)在本地文件共享模块(200f)查询是否存在以该哈希值命名的所述目标文件,如果存在,将所述目标文件链接到该索引的私有目录中,供容器实例模块(200b)加载;
否则,所述镜像文件查询模块(200e)从备用文件存储模块(100e)中下载所述目标文件到本地文件共享模块(200f),供容器实例模块(200b)加载;所述镜像重构模块(100b)至少按照如下重构子步骤将旧镜像重构为新镜像:
联合挂载旧镜像,获取其完整的文件信息;
遍历文件信息,将完整文件信息中的普通文件的内容提取出加以哈希运算,并以哈希值的方式替换普通文件的内容以生成所述备用文件,且以替换后的文件作为索引;
获取旧镜像的配置信息,所述配置信息至少包括环境变量、暴露的端口号和数据卷信息,用于构建所述索引;
使用服务处理器(200d)的服务功能,将服务处理中产生的访问文件信息和获取到的配置信息上传至所述镜像重构模块(100b)以构建所述索引。
2.根据权利要求1所述的构建方法,其特征在于,所述服务处理器(200d)按照如下方式更新所述索引,在基于配置信息服务之前,判定配置信息是否是首次引用;
如果配置信息是非首次引用,则所述容器实例模块(200b)能够在不对索引更新的情况下以基于所述索引请求所述目标文件的方式启动容器(200)而完成从所述索引的私有目录存储模块(200c)中的私有文件加载所述目标文件;
如果配置信息是首次引用,则所述容器实例模块(200b)需要在所述镜像重构模块(100b)对该索引进行更新后以基于索引请求所述目标文件的方式启动容器(200)而完成从所述索引的私有目录存储模块(200c)中的私有文件加载所述目标文件。
3.根据权利要求2所述的构建方法,其特征在于,在云端(100)中,新镜像管理模块在所述镜像重构模块(100b)请求上传备用文件的情况下检索备用文件存储模块(100e)中已有的备用文件,以使得其能够按照不重复上传已有备用文件的方式将不存在于备用文件存储模块(100e)中的备用文件上传至备用文件存储模块(100e)中。
4.根据权利要求3所述的构建方法,其特征在于,在所述云端(100)中,所述镜像重构模块(100b)响应于镜像监控模块(100c)从所述镜像仓库(100d)中识别到所述旧容器镜像而启动。
5.根据权利要求4所述的构建方法,其特征在于,所述服务处理器(200d)将缺省文件和访问到的本地共享文件发送至镜像重构模块(100b);所述镜像重构模块(100b)将缺省文件和访问到的本地共享文件与配置信息匹配以更新索引;所述镜像管理模块(100a)将该索引存储至所述镜像仓库(100d)中。
6.一种面向边缘计算的容器镜像构建系统,包括彼此通信的云端(100)和边缘端,其特征在于,在所述云端(100),镜像重构模块(100b)将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将所述索引和所述备用文件按照彼此单独存储的方式由镜像管理模块(100a)分别存储于镜像仓库(100d)与备用文件存储模块(100e)中;
在所述边缘端,首次部署时,下载引擎模块(200a)将索引从镜像仓库(100d)抓取至所述边缘端相应的容器(200)中,以使得容器实例模块(200b)基于所述索引中的配置信息查询本地文件共享模块(200f)以获取所述配置信息对应的本地共享文件,
并且,镜像文件查询模块(200e)能够从备用文件存储模块(100e)中下载基于所述配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器(200d)将基于所述配置信息记录到的本地共享文件和缺省文件上传至所述镜像重构模块(100b),以使得所述镜像重构模块(100b)能够将访问文件与所述配置信息匹配更新所述索引;将所述缺省文件和本地共享文件链接至该容器(200)的私有目录存储模块(200c)中,为容器实例模块(200b)提供根目录挂载点;
在容器实例模块(200b)请求目标文件的情况下,所述私有目录存储模块(200c)根据目标文件请求基于索引中的所述目标文件对应的哈希值,
所述私有目录存储模块(200c)在索引的私有目录中查询是否存在以该哈希值命名的目标文件,如果存在,将所述目标文件加载至所述容器实例模块(200b);
否则,所述私有目录存储模块(200c)在本地文件共享模块(200f)查询是否存在以该哈希值命名的所述目标文件,如果存在,将所述目标文件链接到该索引的私有目录中,供容器实例模块(200b)加载;
否则,所述镜像文件查询模块(200e)从备用文件存储模块(100e)中下载所述目标文件到本地文件共享模块(200f),供容器实例模块(200b)加载;所述镜像重构模块(100b)至少按照如下重构子步骤将旧镜像重构为新镜像:
联合挂载旧镜像,获取其完整的文件信息;
遍历文件信息,将完整文件信息中的普通文件的内容提取出加以哈希运算,并以哈希值的方式替换普通文件的内容以生成所述备用文件,且以替换后的文件作为索引;
获取旧镜像的配置信息,所述配置信息至少包括环境变量、暴露的端口号和数据卷信息,用于构建所述索引;
使用服务处理器(200d)的服务功能,将服务处理中产生的访问文件信息和获取到的配置信息上传至所述镜像重构模块(100b)以更新所述索引。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010013040.5A CN111324360B (zh) | 2020-01-09 | 2020-01-09 | 一种面向边缘计算的容器镜像构建方法和系统 |
US17/012,392 US11341181B2 (en) | 2020-01-09 | 2020-09-04 | Edge-computing-oriented construction method for container mirror image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010013040.5A CN111324360B (zh) | 2020-01-09 | 2020-01-09 | 一种面向边缘计算的容器镜像构建方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324360A CN111324360A (zh) | 2020-06-23 |
CN111324360B true CN111324360B (zh) | 2022-04-01 |
Family
ID=71165125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010013040.5A Active CN111324360B (zh) | 2020-01-09 | 2020-01-09 | 一种面向边缘计算的容器镜像构建方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11341181B2 (zh) |
CN (1) | CN111324360B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181721B (zh) * | 2020-09-14 | 2024-03-19 | 东云睿连(武汉)计算技术有限公司 | 一种人工智能作业镜像管理方法和系统 |
CN112394954B (zh) * | 2020-12-03 | 2023-07-04 | 中国人民解放军国防科技大学 | 一种面向高性能计算的随作业自动部署运行环境方法 |
CN114765606B (zh) * | 2020-12-30 | 2023-07-25 | 中国联合网络通信集团有限公司 | 容器镜像传输方法、装置、设备及存储介质 |
WO2022206722A1 (zh) * | 2021-04-01 | 2022-10-06 | 华为云计算技术有限公司 | 容器应用的启动方法、镜像管理方法及相关设备 |
EP4318214A1 (en) * | 2021-04-25 | 2024-02-07 | Siemens Aktiengesellschaft | Software module deployment method, apparatus, computing device, and storage medium |
CN113378030B (zh) * | 2021-05-18 | 2022-09-20 | 上海德衡数据科技有限公司 | 搜索引擎的搜索方法、搜索引擎架构、设备及存储介质 |
US20240012663A1 (en) * | 2021-06-07 | 2024-01-11 | Nvidia Corporation | Source archive optimizations for reducing container image sizes |
US11733974B2 (en) * | 2021-06-15 | 2023-08-22 | HCL America Inc. | Method and system for automatically creating instances of containerized servers |
CN113535324B (zh) * | 2021-06-25 | 2024-04-05 | 深圳软通动力信息技术有限公司 | 边缘侧拉取镜像的方法和系统 |
CN113626153A (zh) * | 2021-08-10 | 2021-11-09 | 广域铭岛数字科技有限公司 | 一种基于containerd数据交互方法、系统、设备及介质 |
CN113672349A (zh) * | 2021-08-20 | 2021-11-19 | 绿盟科技集团股份有限公司 | 一种镜像的更新方法、装置、设备及介质 |
CN114579520B (zh) * | 2022-03-04 | 2023-05-05 | 北京百度网讯科技有限公司 | 镜像数据处理方法、镜像数据加载方法及装置 |
CN115665172B (zh) * | 2022-10-31 | 2023-04-28 | 北京凯思昊鹏软件工程技术有限公司 | 一种嵌入式终端设备的管理系统 |
US11908167B1 (en) * | 2022-11-04 | 2024-02-20 | Osom Products, Inc. | Verifying that a digital image is not generated by an artificial intelligence |
CN116339920B (zh) * | 2023-03-27 | 2024-03-15 | 北京天融信网络安全技术有限公司 | 基于云平台的信息处理方法、装置、设备及介质 |
CN117539439B (zh) * | 2024-01-09 | 2024-04-09 | 北京腾达泰源科技有限公司 | 轻量实时应用开发方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577779A (zh) * | 2015-12-21 | 2016-05-11 | 用友网络科技股份有限公司 | 一种容器化部署大企业私有云的方法和系统 |
US9794287B1 (en) * | 2016-10-31 | 2017-10-17 | International Business Machines Corporation | Implementing cloud based malware container protection |
CN107707635A (zh) * | 2017-09-15 | 2018-02-16 | 国云科技股份有限公司 | 一种云平台共享存储的虚拟机镜像模板上传方法 |
CN109391664A (zh) * | 2017-08-11 | 2019-02-26 | 中国电信股份有限公司 | 用于多集群容器部署的系统和方法 |
CN110569109A (zh) * | 2019-09-11 | 2019-12-13 | 广州虎牙科技有限公司 | 容器更新方法、控制节点及边缘节点 |
CN110647380A (zh) * | 2019-08-06 | 2020-01-03 | 上海孚典智能科技有限公司 | 用于支持边缘计算的超融合服务器系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748504B2 (en) * | 2002-02-15 | 2004-06-08 | International Business Machines Corporation | Deferred copy-on-write of a snapshot |
US10387266B2 (en) * | 2015-12-23 | 2019-08-20 | Commvault Systems, Inc. | Application-level live synchronization across computing platforms including synchronizing co-resident applications to disparate standby destinations and selectively synchronizing some applications and not others |
TWI582581B (zh) * | 2016-05-13 | 2017-05-11 | 群暉科技股份有限公司 | 用來於一冗餘儲存系統中進行資料修復之方法與裝置 |
US10572226B2 (en) * | 2016-12-21 | 2020-02-25 | Aon Global Operations Ltd (Singapore Branch) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
CN107526626B (zh) * | 2017-08-24 | 2020-12-01 | 武汉大学 | 一种基于CRIU的Docker容器热迁移方法及系统 |
US11907379B2 (en) * | 2019-03-18 | 2024-02-20 | Dell Products L.P. | Creating a secure searchable path by hashing each component of the path |
-
2020
- 2020-01-09 CN CN202010013040.5A patent/CN111324360B/zh active Active
- 2020-09-04 US US17/012,392 patent/US11341181B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577779A (zh) * | 2015-12-21 | 2016-05-11 | 用友网络科技股份有限公司 | 一种容器化部署大企业私有云的方法和系统 |
US9794287B1 (en) * | 2016-10-31 | 2017-10-17 | International Business Machines Corporation | Implementing cloud based malware container protection |
CN109391664A (zh) * | 2017-08-11 | 2019-02-26 | 中国电信股份有限公司 | 用于多集群容器部署的系统和方法 |
CN107707635A (zh) * | 2017-09-15 | 2018-02-16 | 国云科技股份有限公司 | 一种云平台共享存储的虚拟机镜像模板上传方法 |
CN110647380A (zh) * | 2019-08-06 | 2020-01-03 | 上海孚典智能科技有限公司 | 用于支持边缘计算的超融合服务器系统 |
CN110569109A (zh) * | 2019-09-11 | 2019-12-13 | 广州虎牙科技有限公司 | 容器更新方法、控制节点及边缘节点 |
Also Published As
Publication number | Publication date |
---|---|
CN111324360A (zh) | 2020-06-23 |
US20210216583A1 (en) | 2021-07-15 |
US11341181B2 (en) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324360B (zh) | 一种面向边缘计算的容器镜像构建方法和系统 | |
EP3446239B1 (en) | Versioned hierarchical data structures in a distributed data store | |
CN106874383B (zh) | 一种分布式文件系统元数据的解耦合分布方法 | |
US6985914B2 (en) | Cluster meta file system of file system cells managed by respective data movers of a network file server | |
KR101544717B1 (ko) | 소프트웨어 정의 네트워크 연결 저장 시스템 및 방법 | |
CN103116618B (zh) | 基于客户端持久缓存的远程文件系统镜像方法及系统 | |
US10169169B1 (en) | Highly available transaction logs for storing multi-tenant data sets on shared hybrid storage pools | |
US9183213B2 (en) | Indirection objects in a cloud storage system | |
US8990257B2 (en) | Method for handling large object files in an object storage system | |
US20200012441A1 (en) | Scaling events for hosting hierarchical data structures | |
JP4547264B2 (ja) | プロキシ・キャッシュに関する装置および方法 | |
US8543596B1 (en) | Assigning blocks of a file of a distributed file system to processing units of a parallel database management system | |
CN106066896B (zh) | 一种应用感知的大数据重复删除存储系统及方法 | |
CN113377868B (zh) | 一种基于分布式kv数据库的离线存储系统 | |
US20030195895A1 (en) | Storage system having partitioned migratable metadata | |
CN105303456A (zh) | 电力传输设备监控数据处理方法 | |
US11893422B2 (en) | Scale out deduplicated file system as microservices | |
US20220138153A1 (en) | Containerization and serverless thread implementation for processing objects | |
CN116541427B (zh) | 数据查询方法、装置、设备及存储介质 | |
Fan et al. | Gear: Enable efficient container storage and deployment with a new image format | |
CN116069778A (zh) | 一种元数据的管理方法、相关装置、设备以及存储介质 | |
US20040117437A1 (en) | Method for efficient storing of sparse files in a distributed cache | |
CN116737363A (zh) | 深度学习平台的数据集缓存加速方法、系统、设备及介质 | |
CN116680040A (zh) | 一种容器处理方法、装置、设备、存储介质及程序产品 | |
US10628391B1 (en) | Method and system for reducing metadata overhead in a two-tier storage architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |