一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟化容器管理方法、系统和存储介质与流程

2021-10-23 00:27:00 来源:中国专利 TAG:虚拟 容器 网络技术 方法 存储介质


1.本技术涉及虚拟化网络技术,例如涉及一种虚拟化容器管理方法、系统和存储介质。


背景技术:

2.虚拟化技术是云计算的重要技术,主要用于物理资源的池化,从而可以弹性地分配给用户,物理资源包括服务器、网络和存储。虚拟化容器技术是一种轻量级的虚拟化技术,可在一个资源隔离的进程中运行应用及其依赖项。虚拟化容器技术可以让开发者打包他们的应用及依赖包至一个轻量级,可移植的虚拟容器中,然后发布到相关服务器进行部署。
3.容器内部采用分层存储方式,但是多个容器之间相互隔离,各个容器基于相同的镜像基础层,不同容器的存储层相互隔离,数据无依赖关系。因此,任何一个容器的存储层变更无法通过其它容器的存储层进行恢复,容器间存储层隔离导致多个容器占用过多存储空间,容器间无法进行存储层复用和存储层数据回溯,无法对多容器进行联动操作,部署和恢复。


技术实现要素:

4.本技术提供一种虚拟化容器管理方法、系统和存储介质,实现了不同空间维度的容器存储层的数据融合,扩展了虚拟容器的操作自由度和部署自由度。
5.第一方面,本技术实施例提供一种虚拟化容器管理方法,包括:容器客户端向容器服务发送容器操作请求;容器服务对容器操作请求进行预处理,并调度容器操作请求,将预处理后的容器操作请求分发至容器引擎;容器引擎根据接收到的预处理后的容器操作请求创建容器执行单元;容器执行单元对容器存储层堆叠执行对应的容器操作,容器存储层堆叠中的当前容器存储层基于前一个容器存储层堆叠创建,容器存储层堆叠的堆叠底层为一个镜像基础层。
6.第二方面,本技术实施例提供一种虚拟化容器管理系统,包括:容器客户端、容器服务、容器引擎、容器执行单元、容器存储和容器驱动;容器客户端设置为向容器服务发送容器操作请求;容器服务设置为对容器操作请求进行预处理,并调度容器操作请求,将预处理后的容器操作请求分发至容器引擎;容器引擎设置为根据接收到的预处理后的容器操作请求创建容器执行单元;容器执行单元设置为对容器存储层堆叠执行对应的容器操作,容器存储层堆叠中的当前容器存储层基于前一个容器存储层堆叠创建,容器存储层堆叠的堆叠底层为一个镜像基础层;容器存储设置为以一个镜像基础层为堆叠底层,存储容器存储层堆叠中的各容器存储堆叠层;容器驱动设置为根据容器执行单元的驱动对容器存储层堆叠执行对应的容器操作。
7.第三方面,本技术实施例提供一种计算机可读存储介质,该程序被处理器执行时实现第一方面的虚拟化容器管理方法。
附图说明
8.图1为一实施例提供的一种虚拟化容器管理系统的结构示意图;
9.图2为本技术实施例提供的虚拟化容器管理系统中容器存储层堆叠的结构示意图;
10.图3为一实施例提供的一种虚拟化容器管理方法的流程图;
11.图4为一实施例提供的一种虚拟化容器管理方法的容器任务系统框图。
具体实施方式
12.下文中将结合附图对本技术的实施例进行详细说明。
13.虚拟化容器技术涉及镜像(image)、容器(container)和仓库(repository)。镜像属于虚拟化容器的静态存储实体,容器是镜像运行时的实体,容器可以被创建、启动、暂停、停止、删除等,仓库用于集中存储和分发镜像。容器的实质是进程,其与直接在宿主机执行的进程不同,容器进程运行于属于自己的独立命名空间。虚拟化容器技术中,镜像采用分层方式存储。作为镜像运行时的实体,容器也采用分层方式存储。每一个容器运行时,以镜像为基础层,在基础层之上会创建一个当前容器的存储层。容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随着容器删除而丢失。
14.本技术实施例提供一种虚拟化容器管理方法和系统,以解决上述问题。
15.图1为一实施例提供的一种虚拟化容器管理系统的结构示意图,如图1所示,本实施例提供的虚拟化容器管理系统包括:
16.容器客户端(client)11、容器服务(server)12、容器引擎(engine)13、容器执行单元(job)14、容器存储(graph)15和容器驱动(driver)16。
17.容器客户端11设置为向容器服务12发送容器操作请求;容器服务12设置为对容器操作请求进行预处理,并调度容器操作请求,将预处理后的容器操作请求分发至容器引擎13;容器引擎13设置为根据接收到的预处理后的容器操作请求创建容器执行单元14;容器执行单元14设置为对容器存储层堆叠执行对应的容器操作,容器存储层堆叠中的当前容器存储层基于前一个容器存储层堆叠创建,容器存储层堆叠的堆叠底层为一个镜像基础层;容器存储15设置为以一个镜像基础层为堆叠底层,存储所述容器存储层堆叠中的各容器存储堆叠层;容器驱动16设置为根据容器执行单元14的驱动对容器存储层堆叠执行对应的容器操作。
18.从图1所示的虚拟化容器管理系统中可以看出,容器客户端11可以具有多个,容器客户端11设置于需要使用虚拟化容器服务的终端中。容器服务12与各容器客户端11之间建立通信,用户可以通过本地终端中的容器客户端11向容器服务12发出容器操作请求。容器服务12接收到容器操作请求后,调度容器引擎13,容器引擎13建立与各容器操作请求对应的容器执行单元14,容器执行单元14通过容器驱动16驱动各容器存储层执行容器操作。其中,被操作的容器存储层存储于容器存储15中的容器存储层堆叠中。其中,容器服务12、容器引擎13、容器驱动16为设置于虚拟化容器管理服务器中的逻辑功能模块。容器服务12的功能是与设置于终端中的各容器客户端11建立通信,对各容器客户端11发出的容器操作请求进行预处理和调度。容器引擎13的功能是将容器服务12调度的容器操作请求创建为容器
执行单元14。容器执行单元14为进程空间的线程,容器驱动16的功能是根据容器执行单元14驱动各容器存储层执行容器操作。
19.在相关技术中,虚拟化容器由镜像、容器和仓库组成,其中容器与镜像对应,容器运行时,以镜像为基础层,在基础层上创建一个当前容器的存储层,但容器存储层和容器的生存周期一样,容器消亡时,容器存储层也随之消亡。容器内部采用分层存储方式,但多个容器之间相互隔离,各容器基于相同的镜像基础层,不同容器的存储层相互隔离,数据无依赖关系。因此,任何一个容器的存储层变更无法通过其它容器的存储层进行恢复,容器间存储层隔离导致多个容器占用过多存储空间,容器间无法进行存储层复用和存储层数据回溯,无法对多容器进行联动操作,部署和恢复。
20.在本技术实施例中,为了解决相关技术中存在的问题,改变了虚拟化容器技术中的虚拟容器存储方式,容器之间采用分层存储,多个容器基于一个镜像基础层,在此基础层之上,分层迭代各个容器的容器存储层。具体地,容器存储15中存储有容器存储层堆叠,容器存储层堆叠的堆叠底层为一个镜像基础层,镜像基础层仅为一个,在镜像基础层上采用分层方式堆叠各容器存储层,当前容器对应的当前容器存储层在创建时基于前一个容器存储层堆叠创建,那么容器存储层堆叠中的每个容器存储层都与其他容器存储层存在依赖关系,不会由于一个容器的消亡而导致对应的容器存储层也随之消亡而导致的数据丢失,可以通过容器之间的依赖关系进行容器存储层的数据回溯。图2为本技术实施例提供的虚拟化容器管理系统中容器存储层堆叠的结构示意图。如图2所示,容器存储层堆叠的堆叠底层为一个镜像基础层21,基于镜像基础层21堆叠第一层的容器存储层22,第一层的容器存储层22可以为一个或多个。在第一层的容器存储层22的基础上,基于每个容器存储层22都可以堆叠创建第二层的容器存储层23,第二层的容器存储层23可以为一个或多个。依次类推,容器存储层堆叠中的各容器存储层均基于可以基于前一个容器存储层堆叠创建,每个容器存储层均可以作为其他容器存储层的基础。当容器存储层堆叠中的每层容器存储层仅有一个时,容器存储层堆叠形成了一个“链条”结构,而当容器存储层堆叠中的每个容器存储层为多个时,容器存储层堆叠形成了一个“多链”结构。本实施例提供的虚拟化容器管理系统中,由于对容器存储层进行了重新设计,使得容器节点从“孤岛”结构变更为“链条”或“多链”结构,从时间和空间维度对虚拟化容器进行划分和管理,极大提升了虚拟化容器的运行管控和数据复用,实现了虚拟化容器从点运行态至平面甚至立体运行态的切换。另外,本技术实施例中,容器存储层堆叠中的任一节点(即任一容器存储层)均可以派生子堆叠层,形成虚拟化容器的多堆叠分支结构,从而将虚拟化容器管理从孤立的容器存储层节点管理扩展为多维,多层级容器存储层节点管理。
21.图3为一实施例提供的一种虚拟化容器管理方法的流程图,如图3所示,本实施例提供的方法包括如下步骤。
22.步骤s3010,容器客户端向容器服务发送容器操作请求。
23.本实施例提供的虚拟化容器管理方法用于基于图2所示虚拟化容器管理系统进行虚拟化容器管理。首先,容器客户端11根据用户的指示,向容器服务12发送容器操作请求。容器操作请求包括任一种对虚拟化容器进行操作的请求,例如,容器操作请求包括以下请求中的至少一种请求:创建容器存储层请求、堆叠容器存储层请求、合并容器存储层请求、移除容器存储层请求、缓存容器存储层请求、派生容器存储层分支请求、跨分支切换容器存
储层请求、跨分支合并容器存储层请求、比较分支间容器存储层请求、删除容器存储层分支请求。
24.步骤s3020,容器服务对容器操作请求进行预处理,并调度容器操作请求,将预处理后的容器操作请求分发至容器引擎。
25.由于图1所示虚拟化容器管理系统中,容器存储层堆叠采用了堆叠结构,容器存储层堆叠中仅有一个镜像基础层,容器存储层堆叠中的各容器存储层之间相关联,容器存储层堆叠又是在镜像基础层的基础上堆叠建立的,容器客户端并不确定所需操作的容器存储层在容器存储层堆叠中的位置。因此,为了使容器引擎13能够根据容器操作请求正确地在容器存储层堆叠中确定所需操作的容器存储层,在容器操作请求中包括所需操作的容器存储层对应的相关信息。
26.因此,容器服务12在接收到容器操作请求后,需要对其进行预处理,从而确定容器操作请求所对应的容器操作堆叠层,以准确分发至不同容器存储层,确保容器存储层间堆叠和数据变更的准确性。然后容器服务12调度容器操作请求,将预处理后的容器操作请求分发至容器引擎13。容器服务12对容器操作请求进行预处理,目的是确定容器操作请求所需操作的容器存储层,包括解析出容器操作请求对应的镜像信息,镜像与容器存储层的映射关系等。
27.在一实施例中,容器服务12对容器操作请求进行预处理,包括:容器服务12确定容器操作请求对应的容器存储层在容器存储层堆叠中与其他容器存储层的依赖关系。
28.容器服务12对容器操作请求进行预处理,可以包括以下至少一种:获取镜像信息(meta info),获取容器信息(meta info),获取容器存储层信息(meta info),建立镜像与容器映射关系,建立容器与容器存储层映射关系,建立容器存储层与容器操作命令映射关系,合并涉及相同容器和相同存储层的容器操作命令,创建容器存储层数据缓存等。例如,容器操作请求为创建容器存储层请求,那么创建容器存储层请求中包括所需创建的容器存储层对应的镜像信息,然后获取容器信息,建立镜像与容器映射关系,创建容器存储层数据缓存等,那么容器服务12就可以将预处理后的容器操作请求分发至容器引擎13,预处理后的容器操作请求指示了镜像与容器的映射关系,那么容器引擎13就可以根据该映射关系以及镜像信息和容器信息在容器存储层堆叠中创建相应的容器存储层。
29.步骤s3030,容器引擎根据接收到的预处理后的容器操作请求创建容器执行单元。
30.容器引擎13是虚拟化容器管理系统的核心,根据接收到的预处理后的容器操作请求创建容器执行单元14,将容器任务(即容器操作请求)抽象化,作为独立个体运行,提升容器整体运行性能。
31.容器引擎13运行与对容器操作请求的预处理紧密相关。容器引擎13以预处理后的容器操作请求作为输入,根据不同输入参数,动态创建对应容器执行单元14。容器引擎13对接收到的预处理后的容器操作请求进行解析,将解析后的请求输入消息队列,依次调度消息队列中的请求创建容器执行单元,并将创建的容器执行单元线程化;另外,容器引擎13还用于对线程化的容器执行单元14的状态进行监控。
32.在一实施方式中,容器引擎13可以包含解析器,消息队列,调度器,生成器,监控任务等。其中,解析器用于分析输入参数,验证输入参数有效性,封装为消息单元,并推入消息队列。调度器获取消息队列消息,根据现有容器执行单元14运行状态,进行消息单元分配和
调度,并创建容器执行单元14。生成器将容器执行单元14进行线程化,使其作为线程加入容器进程空间并运行。监控任务对已有进程空间线程(容器执行单元14)状态进行监控,包括:线程内存占用率,线程创建及退出,僵尸线程清理等。
33.步骤s3040,容器执行单元对容器存储层堆叠执行对应的容器操作,容器存储层堆叠中的当前容器存储层基于前一个容器存储层堆叠创建,容器存储层堆叠的堆叠底层为一个镜像基础层。
34.容器任务(即容器执行单元14)是虚拟化容器管理系统的基本工作执行单元,工作内容包括:创建容器存储层、堆叠容器存储层、合并容器存储层、移除容器存储层、缓存容器存储层、派生容器存储层分支、跨分支切换容器存储层、跨分支合并容器存储层、比较分支间容器存储层、删除容器存储层分支等。容器执行单元14通过容器驱动16的驱动,对容器存储层堆叠中对应的容器存储层执行对应的容器操作。
35.进一步地,由于容器存储层堆叠中的各容器存储层之间具有依赖关系,容器操作请求包括对当前容器存储层的操作请求或对容器存储层分之间的多维度操作。例如:容器存储层内跨分支间差异比较,跨分支间合并和删除操作等。这些操作对象位于不同时间序列的分支,对象间操作涉及数据同步,数据比对和数据合并等动作,等效于基于时间和空间的多维度操作。
36.进一步地,由于容器存储层堆叠中的当前容器存储层是基于前一个容器存储层堆叠创建的,因此,容器存储层堆叠中的当前容器存储层中仅包含与前一个容器存储层的差异化数据,例如变更数据、变更动作等。那么极大减小了虚拟容器的存储空间,且可实现多个容器间切换、合并、比较、标记以及状态回退。相应地,堆叠容器存储层包括:对当前容器存储层的数据与前一个容器存储层的数据进行差异化比对,确定当前容器存储层的数据,并将当前容器存储层的数据堆叠在前一个容器存储层上,差异化比对包括以下至少一种:二级制数据差异化比对、创建时间比对、操作动作比对。最终形成容器间数据的堆叠。
37.本实施例提供的虚拟化容器管理方法,首先由容器客户端向容器服务发送容器操作请求,然后容器服务对容器操作请求进行预处理,并调度容器操作请求,将预处理后的容器操作请求分发至容器引擎,容器引擎根据接收到的预处理后的容器操作请求创建容器执行单元,最终容器执行单元对容器存储层堆叠执行对应的容器操作,其中,容器存储层堆叠中的当前容器存储层基于前一个容器存储层堆叠创建,容器存储层堆叠的堆叠底层为一个镜像基础层,使得容器管理由一维管理变更为多维管理,即从单一时间轴维度扩展至时间和空间维度,实现了不同空间维度的容器存储层的数据融合,扩展了虚拟容器的操作自由度和部署自由度。
38.图4为一实施例提供的一种虚拟化容器管理方法的容器任务系统框图。如图4所示,容器任务即容器执行单元(job)根据容器引擎的调度,通过容器驱动(driver)的驱动,对存储于容器存储(graph)中的容器存储层堆叠执行各种容器操作。容器操作包括创建容器存储层(create layer)、堆叠容器存储层(stack layer)、合并容器存储层(merge layer)、移除容器存储层(delete layer)、派生容器存储层分支(create branch)、跨分支切换容器存储层(switch branch)、跨分支合并容器存储层(merge branch)、比较分支间容器存储层(compare branch)、删除容器存储层分支(delete branch)。
39.本技术实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令
在由计算机处理器执行时用于执行一种虚拟化容器管理方法,该方法包括:容器客户端向容器服务发送容器操作请求;容器服务对容器操作请求进行预处理,并调度容器操作请求,将预处理后的容器操作请求分发至容器引擎;容器引擎根据接收到的预处理后的容器操作请求创建容器执行单元;容器执行单元对容器存储层堆叠执行对应的容器操作,容器存储层堆叠中的当前容器存储层基于前一个容器存储层堆叠创建,容器存储层堆叠的堆叠底层为一个镜像基础层。
40.以上仅为本技术的示例性实施例而已,并非用于限定本技术的保护范围。
41.一般来说,本技术的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本技术不限于此。
42.本技术的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构((instruction set architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
43.本技术附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(read-only memory,rom)、随机访问存储器(random access memory,ram)、光存储器装置和系统(数码多功能光碟(digital video disc,dvd)或光盘((compact disc,cd))等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,saic)、可编程逻辑器件(field-programmable gate array,fgpa)以及基于多核处理器架构的处理器。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜