安全容器启动方法、装置、设备及存储介质与流程

文档序号:29809145发布日期:2022-04-27 02:19阅读:147来源:国知局
安全容器启动方法、装置、设备及存储介质与流程

1.本技术属于计算机技术领域,具体涉及一种安全容器启动方法、装置、设备及存储介质。


背景技术:

2.安全容器是基于硬件虚拟化技术的,安全容器拥有独立的操作系统内核。而基于操作系统虚拟化技术的传统容器运行在宿主机上,需要与宿主机上的其他程序共享内核。因此安全容器有独立的内核,隔离性更好,更加安全。
3.但是安全容器在启动时会有较大的cpu开销,导致启动速度较慢,且也有额外的内存开销,占用较多的内存资源。


技术实现要素:

4.本技术提出一种安全容器启动方法、装置、设备及存储介质,容器模板文件中包括已启动的安全容器的微虚机的运行状态信息和客户虚拟机的内存镜像。因此基于容器模板文件启动安全容器时,可以从容器模板文件中直接启动该微虚机,且无需重新启动客户虚拟机的操作系统和代理程序,可以直接使用容器模板文件中的客户虚拟机和代理程序,大大减少了安全容器启动时的cpu开销,缩短了安全容器的启动时间。
5.本技术第一方面实施例提出了一种安全容器启动方法,包括:
6.接收容器启动请求;
7.获取容器模板文件,所述容器模板文件中包括已启动的安全容器中微虚机的运行状态信息和客户虚拟机的内存镜像;
8.根据所述容器模板文件启动安全容器。
9.本技术第二方面实施例提出了一种安全容器启动装置,包括:
10.接收模块,用于接收容器启动请求;
11.获取模块,用于获取容器模板文件,所述容器模板文件中包括已启动的安全容器中微虚机的运行状态信息和客户虚拟机的内存镜像;
12.启动模块,用于根据所述容器模板文件启动安全容器。
13.本技术第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。
14.本技术第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。
15.本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
16.在本技术实施例中,容器模板文件中包括已启动的安全容器的微虚机的运行状态信息和客户虚拟机的内存镜像。因此容器模板文件中包含了一个完整的且已经启动成功的微虚机,基于容器模板文件启动安全容器时,可以从容器模板文件中直接启动该微虚机,且
无需重新启动客户虚拟机的操作系统和代理程序,可以直接使用容器模板文件中的客户虚拟机和代理程序,大大减少了安全容器启动时的cpu开销,缩短了安全容器的启动时间。
17.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本技术的实践了解到。
附图说明
18.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。
19.在附图中:
20.图1示出了本技术一实施例所提供的一种安全容器启动方法的流程图;
21.图2示出了本技术一实施例所提供的一种安全容器启动方法的另一流程图;
22.图3示出了本技术一实施例所提供的一种安全容器启动装置的结构示意图;
23.图4示出了本技术一实施例所提供的一种电子设备的结构示意图;
24.图5示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
25.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
26.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
27.下面结合附图来描述根据本技术实施例提出的一种安全容器启动方法、装置、设备及存储介质。
28.本技术实施例提供了一种安全容器启动方法,该方法基于已启动的安全容器创建了容器模板文件,该容器模板文件中包括已启动的安全容器中微虚机(microvm)的运行状态信息和客户虚拟机(guest)的内存镜像。因为容器模板文件中包含了一个完整的且已经启动成功的微虚机,因此需要启动安全容器时通过该容器模板文件来启动,就不需要重新启动客户虚拟机和客户虚拟机中的代理程序(agent)了,如此减少了安全容器启动时的cpu开销,缩短了安全容器的启动时间,能够快速地启动安全容器。
29.在使用容器模板文件启动安全容器之前,先通过如下步骤s1-s3的操作来创建容器模板文件,包括:
30.s1:接收容器模板创建请求。
31.在本技术实施例中,容器引擎可以提供创建容器模板文件和启动安全容器两种服务。为了区分这两种服务,可以预先配置不同的任务标识符来指代不同的服务,任务标识符可以为0、1、001、010等。例如,通过任务标识符0指代创建容器模板文件的服务,通过任务标识符1来指代启动安全容器的服务。
32.当用户需要创建容器模板文件时,发送创建请求给容器引擎,该创建请求中可以
包括用于指示该创建请求所针对的服务的任务标识符。容器引擎接收用户的创建请求后,启动安全容器进程。通过该安全容器进程对用户的创建请求进行解析,从该创建请求中提取出任务标识符,确定该任务标识符所指代的服务。若确定该任务标识符所指代的服务为模板创建服务,则确定该创建请求为容器模板创建请求,后续通过步骤s2和s3的操作来创建容器模板文件。若确定该任务标识符所指代的服务为启动安全容器的服务,则确定该创建请求为容器启动请求,通过后续的步骤101-103的操作来快速启动安全容器。
33.在另一些实施例中,用户的创建请求中也可以不携带任务标识符。而是由云服务的管理人员在系统的配置文件中配置当前的任务标识符。当容器引擎接收到用户的创建请求时,从系统的配置文件中读取当前的任务标识符,若该任务标识符所指代的服务为模板创建服务,则确定用户的创建请求为容器模板创建请求,后续通过步骤s2和s3的操作来创建容器模板文件。若确定该任务标识符所指代的服务为启动安全容器的服务,则确定用户的创建请求为容器启动请求,通过后续的步骤101-103的操作来快速启动安全容器。
34.s2:采用快照技术生成已启动的安全容器对应的容器模板文件。
35.通过步骤s1确定用户的创建请求为容器模板创建请求后,首先根据当前的容器配置信息,确定待启动的微虚机的配置信息。当前的容器配置信息为在当前的运行环境下启动微虚机所需依赖的资源,包括存储资源和网络资源等。其中,存储资源包括微虚机中模拟设备的后端文件路径、存储文件的文件名称等。网络资源包括网络端口等。根据确定的配置信息,冷启动一个微虚机。然后等待该微虚机中的客户虚拟机以及该客户端虚拟机中的代理程序成功启动。
36.在等待客户虚拟机与代理程序启动的过程中,可以采用轮询的机制周期性地尝试建立容器引擎与代理程序之间的连接。若成功连接到代理程序,则确定微虚机的客户虚拟机中的代理程序成功启动了。
37.在另一种实现方式中,也可以不采用轮询方式来确定客户虚拟机和代理程序是否成功启动。而是由客户虚拟机中的代理程序成功启动后主动向容器引擎发送通知消息,容器引擎接收到该通知消息后确定微虚机的客户虚拟机中的代理程序成功启动了。然后容器引擎建立与客户虚拟机中的代理程序之间的连接。
38.通过上述方式确定微虚机的客户虚拟机中的代理程序启动成功后,采用快照技术保存该微虚机当前的运行状态信息和客户虚拟机的内存镜像,得到容器模板文件。其中,微虚机当前的运行状态信息包括微虚机的配置信息及微虚机当前的运行状态等。客户虚拟机的内存镜像包括启动成功的客户虚拟机和代理程序的内存镜像。
39.本技术实施例在安全容器的微虚机、客户虚拟机的内核和代理程序都启动完毕后采用快照技术将已启动的微虚机的运行状态信息和客户虚拟机的内存镜像保存为容器模板文件。由于每个安全容器实例的客户虚拟机的操作系统和代理程序的启动过程是几乎相同的,在客户虚拟机和代理程序都启动成功后创建容器模板文件,将客户虚拟机和代理程序的启动结果包含在容器模板文件中。如此容器模板文件中包含了一个完整的且已经启动成功的微虚机,因此在使用该容器模板文件启动安全容器时,就不需要重新启动客户虚拟机的操作系统和代理程序了,大大减少了安全容器启动时的cpu开销,缩短了安全容器的启动时间。
40.s3:将容器模板文件存储在设定的存储介质中。
41.设定的存储介质可以为硬盘、磁盘、内存等任意能够存储数据的存储介质中。
42.通过上述步骤s1-s3的操作创建一个或多个容器模板文件,在将创建的容器模板文件存储在设定的存储介质中之前,为了方便查找容器模板文件,还可以为容器模板文件分配一个模板标识,存储该模板标识与容器模板文件的映射关系。
43.创建出容器模板文件之后,即可使用容器模板文件快速启动安全容器。参见图1,本技术实施例提供的快速启动安全容器的方法具体包括以下步骤:
44.步骤101:接收容器启动请求。
45.当用户需要启动安全容器时,发送创建请求给容器引擎,该创建请求中可以包括用于指代启动安全容器的服务的任务标识符。容器引擎接收用户的创建请求后,启动安全容器进程。通过该安全容器进程对用户的创建请求进行解析,从该创建请求中提取出任务标识符,若确定该任务标识符所指代的服务为启动安全容器的服务,则确定该创建请求为容器启动请求。
46.在另一些实施例中,用户的创建请求中也可以不携带指代启动安全容器的服务的任务标识符。而是由云服务的管理人员在系统的配置文件中配置用于指代启动安全容器的服务的任务标识符。当容器引擎接收到用户的创建请求时,从系统的配置文件中读取该任务标识符,根据该任务标识符确定用户的创建请求为容器启动请求。
47.步骤102:获取容器模板文件,该容器模板文件中包括已启动的安全容器中微虚机的运行状态信息和客户虚拟机的内存镜像。
48.当容器引擎确定用户的创建请求为容器启动请求后,获取一个容器模板文件。
49.在一种实现方式中,容器引擎通过安全容器进程解析用户的容器启动请求时,从容器启动请求中解析出了容器实例的配置信息,该容器实例的配置信息包括容器实例的容器规格、网络配置信息等。容器规格包括内核数目、内存大小等。网络配置信息包括网络类型等。容器引擎可以依据容器启动请求所需求的容器规格来获取容器模板文件。
50.具体地,容器引擎从容器启动请求包括的容器实例的配置信息中,获取容器实例的容器规格。根据该容器规格,从当前存储的所有容器模板文件中获取一个容器模板文件。
51.判断当前存储的每个容器模板文件中是否存在满足该容器规格的容器模板文件。根据当前存储的每个容器模板文件中微虚机的运行状态信息,分别确定每个容器模板文件对应的容器规格。分别比较每个容器模板文件对应的容器规格与容器启动请求对应的容器规格。若存在容器规格与容器启动请求对应的容器规格一致的容器模板文件,则确定当前存储的每个容器模板文件中存在满足容器启动请求对应的容器规格的容器模板文件。获取满足该容器规格的容器模板文件。
52.例如,假设容器启动请求对应的容器规格为1核500m内存,当前存储的容器模板文件1对应的容器规格为1核500m内存,当前存储的容器模板文件2对应的容器规格为2核1g内存。则选择容器模板文件1来为用户启动安全容器。
53.如果确定出当前存储的所有容器模板文件对应的容器规格均与容器启动请求对应的容器规格不一致,则从当前存储的每个容器模板文件中获取一个容器模板文件。
54.在一种实现方式中,可以从从当前存储的每个容器模板文件中随机获取一个容器模板文件。在另一种实现方式中,也可以分别将当前存储的每个容器模板文件对应的容器规格与容器启动请求对应的容器规格进行比较,分别计算出每个容器模板文件对应的容器
规格与容器启动请求对应的容器规格之间的规格差。选择规格差最小的容器模板文件。
55.根据容器启动请求对应的容器规格来获取容器模板文件,优先选用与该容器规格一致的容器模板文件,利用容器规格一致的容器模板文件来启动安全容器,该容器模板文件中包含了一个完整的且已经启动成功的微虚机,且该微虚机对应的容器规格与用户请求的容器规格一致,如此利用该容器模板文件启动安全容器之后,无需调整安全容器的容器规格,进一步提升了安全容器的启动效率。在当前不存在与请求的容器规格一致的容器模板文件时,还可以选用容器规格与请求的容器规格相差最小的容器模板文件,后续利用该容器模板文件快速启动微虚机后,可以通过微调微虚机配置达到用户需要的容器规格。
56.在另一种实现方式中,可以生成每个容器模板文件的模板介绍信息,该模板介绍信息可以包括容器模板文件对应的容器规格、网络类型、创建时间等。将当前存储的每个容器模板文件的模板介绍信息和模板标识提供给用户。用户根据模板介绍信息,选择符合自己使用需求的容器模板文件,并在发送容器启动请求时携带选择的容器模板文件的模板标识。容器引擎接收到该容器启动请求后,获取该模板标识对应的容器模板文件。
57.由用户自主选择需要使用的容器模板文件,提高了用户在启动安全容器过程中的参与度,能够使采用的容器模板文件更加符合用户需求,提高用户的使用体验。
58.在本技术实施例中,容器引擎可以记录每个容器模板文件对应的标志位,该标志位用于标识是否是首次获取该容器模板文件,如标志位为00表示首次获取该容器模板文件,标志位为11表示非首次获取该容器模板文件。容器引擎通过上述任一种实现方式确定出当前需要获取的容器模板文件后,查看该容器模板文件对应的标志位,若该标志位指示首次获取该容器模板文件,则从设定的存储介质中读取该容器模板文件。然后将获取的该容器模板文件存储在缓存中,并将该容器模板文件对应的标志位重置为用于指示非首次获取的取值。若该容器模板文件对应的标志位指示不是首次获取该容器模板文件,则从缓存中直接读取该容器模板文件。
59.或者,容器引擎也可以不设置容器模板文件对应的上述标志位。通过上述任一种方式确定出当前需要获取的容器模板文件后,先查询缓存中是否存储有该容器模板文件,如果是,则直接从缓存中读取该容器模板文件。如果缓存中未存储该容器模板文件,再从设定的存储介质中读取该容器模板文件,然后将读取的该容器模板文件存储在缓存中。
60.通过上述方式只有首次使用容器模板文件时才通过io(inputoutput,输入输出)操作从设定的存储介质中读取容器模板文件。之后将该容器模板文件存储在缓存中,如此再次使用该容器模板文件时无需再次通过io操作从设定的存储介质读取,从而节省了系统的io资源。
61.在本技术实施例中,将获取的容器模板文件载入时,使用了linux的mmap(map_private flag)技术让不同的安全容器实例共享同一容器模板文件的内存映射,不同的客户虚拟机的操作系统中相同的内存页可以直接共享,大大节省了内存。
62.在本技术的另一些实施例中,容器引擎接收到用户的容器启动请求后,也可以不从已生成的容器模板文件中获取容器模板文件,而是依据当前正在运行的安全容器临时生成一个容器模板文件。具体地,从当前正在运行的至少一个安全容器中选择一个安全容器。对选择的安全容器中微虚机当前的运行状态信息和客户虚拟机的内存数据进行软拷贝,得到容器模板文件。
63.其中,可以从当前正在运行的至少一个安全容器中随机选择一个安全容器。或者,也可以根据容器启动请求对应的容器规格,从从当前正在运行的至少一个安全容器中选择一个安全容器。首先分别确定当前正在运行的每个安全容器的容器规格,分别将每个安全容器的容器规格与容器启动请求对应的容器规格进行比较,若当前正在运行的安全容器中存在容器规格与容器启动请求对应的容器规格一致的安全容器,则选择该容器规格一致的安全容器。若当前不存在与容器启动请求对应的容器规格一致的安全容器,则从当前正在运行的每个安全容器中随机选择一个安全容器。或,从当前正在运行的每个安全容器中,选择容器规格与容器启动请求对应的容器规格相差最小的安全容器。
64.根据容器启动请求对应的容器规格来选取安全容器,优先选用与该容器规格一致的安全容器,利用容器规格一致的安全容器来临时生成一个容器模板文件,能够使得生成的容器模板文件对应的容器规格与用户请求的容器规格一致,如此利用该容器模板文件为用户启动安全容器之后,无需调整安全容器的容器规格,进一步提升了安全容器的启动效率。在当前不存在与请求的容器规格一致的安全容器时,还可以选用容器规格与请求的容器规格相差最小的安全容器,利用容器规格相差最小的安全容器来临时生成一个容器模板文件,后续利用该容器模板文件快速启动微虚机后,可以通过微调微虚机配置达到用户需要的容器规格。
65.通过上述方式从当前正在运行的安全容器中选取一个安全容器之后,对正在运行的该安全容器中微虚机当前的运行状态信息和客户虚拟机的内存数据进行软拷贝,得到容器模板文件。通过该方式临时生成容器模板文件之后,还将该容器模板文件存储到设定的存储介质或缓存中,以便后续能够再次使用该容器模板文件来快速启动安全容器。
66.通过软拷贝的方式将正在运行的安全容器的微虚机当前的运行状态信息和客户虚拟机的内存数据保存为容器模板文件,实现了对正在运行的安全容器的内存的共享,生成的容器模板文件中包含了该正在运行的安全容器的微虚机和已经成功启动的客户虚拟机和代理程序,因此在使用该容器模板文件启动安全容器时,就不需要重新启动客户虚拟机的操作系统和代理程序了,大大减少了安全容器启动时的cpu开销,缩短了安全容器的启动时间。
67.通过步骤102中的任一方式获取到容器模板文件后,利用获取的安全容器模板文件,通过步骤103的操作来快速启动安全容器。
68.步骤103:根据获取的容器模板文件启动安全容器。
69.由于每个安全容器实例中微虚机的配置信息都可能是不同的,因此获取到容器模板文件后,首先根据当前的容器配置信息,修改该容器模板文件中微虚机的运行状态信息包括的微虚机的配置信息。其中,当前的容器配置信息为在当前的运行环境下微虚机所依赖的资源,包括存储资源和网络资源等。其中,存储资源包括微虚机中模拟设备的后端文件路径、存储文件的文件名称等。网络资源包括网络端口等。
70.容器模板文件中微虚机的配置信息,为创建容器模板文件时依据当时的运行环境下启动微虚机所依赖的资源进行确定的。因此在利用该容器模板文件启动安全容器时,需要利用当前运行环境下微虚机所依赖的资源,修改容器模板文件中微虚机的配置信息。例如,修改微虚机的配置信息包括的存储文件的文件名称、网络端口、微虚机中模拟设备的后端文件路径等。
71.完成对容器模板文件中微虚机的运行状态信息包括的微虚机的配置信息的修改之后,基于修改后的微虚机的运行状态信息启动微虚机。由于容器模板文件中包含了已启动的微虚机,因此根据修改后的微虚机的运行状态信息可以直接启动该微虚机,大大缩短了启动微虚机所花费的时间。
72.启动微虚机后,容器引擎根据该容器模板文件中客户虚拟机的内存镜像,连接到该客户虚拟机中的代理程序。由于容器模板文件中保存了已启动成功的客户虚拟机和代理程序,而每个安全容器实例的客户虚拟机和代理程序的启动过程是几乎相同的,因此不需要重新启动客户虚拟机的操作系统和代理程序,可以直接使用容器模板文件中已启动的客户虚拟机和代理程序,大大减少了启动客户虚拟机和代理程序所需的cpu开销,提高了安全容器的启动速度,使得安全容器的启动速度能够满足云原生服务的需求。
73.容器引擎连接到代理程序后,通过代理程序修改客户虚拟机的配置信息。其中,客户虚拟机的配置信息包括用户的ip地址、网卡的mac地址、启动安全容器的时间戳,等等。容器引擎从用户的容器启动请求中获取用户的ip地址、网卡的mac地址等网络地址,通过代理程序将客户虚拟机的配置信息中的网络地址修改为容器启动请求中对应的网络地址,以及通过代理程序将客户虚拟机中启动安全容器的时间戳修改为当前时间。除网络地址和时间戳外,容器引擎还可以通过代理程序修改客户虚拟机的配置信息中的其他信息,在此不一一进行说明。
74.通过上述方式基于容器模板文件快速启动微虚机、客户虚拟机和代理程序,并通过代理程序修改客户虚拟机的配置信息后,就成功地为用户启动了一个安全容器,之后利用该安全容器中客户虚拟机的代理程序创建用户的工作负载,来处理用户程序。
75.本技术实施例可以提供较大的弹性,通过使用快照技术创建容器模板文件,基于容器模板文件快速启动安全容器,在启动前变更微虚机的配置信息,启动后变更客户虚拟机的配置信息,实现了在不需要提前预留资源的情况下快速创建安全容器实例的效果。
76.在创建用户的工作负载之前,若启动安全容器所使用的容器模板文件的容器规格与容器启动请求对应的容器规格不一致,则还需要将启动的安全容器的规格调整为容器启动请求对应的容器规格。调整容器规格之后再利用该安全容器创建用户的工作负载。
77.例如,假设容器启动请求对应的容器规格为1核500m内存,使用2核1g内存的容器模板文件来为用户启动安全容器。则安全容器启动完成后,将该安全容器的容器规格调整为1核500m内存。
78.通过将启动的安全容器的规格调整为容器启动请求对应的容器规格,既能确保安全容器的容器规格满足用户需求,又能实现按需分配系统资源,避免造成资源浪费。
79.在本技术的另一些实施例中,为了进一步提高响应用户使用安全容器的响应速度,还可以将基于容器模板文件快速启动安全容器的方案与提供资源池的方案相结合。具体地,通过步骤s1-s3的操作创建一个或多个容器模板文件,基于创建的容器模板文件通过步骤101-103的操作快速启动一定数目的安全容器实例,将启动的安全容器实例存储在资源池中。当容器引擎接收到用户的容器启动请求时,从该资源池中获取一个安全容器实例,将获取的安全容器实例分配给该用户使用。在此过程中实时监测资源池中剩余的安全容器实例的数目,当监测到资源池包括的安全容器实例的数目小于预设阈值时,再次基于创建的容器模板文件通过步骤101-103的操作快速启动预设数目个安全容器实例,将启动的预
设数目个安全容器实例补充到资源池中。
80.通过上述方式在资源池中提供一定数量的安全容器实例,用户请求使用安全容器时直接将资源池中的安全容器实例分配给用户,使得用户的使用请求能够及时得到响应,大大减小用户的等待时间。当资源池中安全容器实例的数目小于阈值时,再基于容器模板文件快速启动安全容器实例,将启动的安全容器实例存储到资源池中,使得资源池能够得到快速补充。
81.为了便于理解本技术实施例提供的安全容器的启动方法,下面结合附图进行说明。图2示出了启动安全容器的一种示意性的流程图。a1:容器引擎接收用户的创建请求。a2:启动安全容器进程,通过安全容器进程解析该创建请求。a3:根据对创建请求的解析结果,判断该创建请求是容器模板创建请求还是容器启动请求,如果是容器模板创建请求,则执行步骤a4,如果是容器启动请求,则执行步骤a7。a4:冷启动微虚机。a5:等待该微虚机的客户虚拟机中的代理程序成功启动。a6:采用快照技术保存该微虚机当前的运行状态信息和客户虚拟机的内存镜像,得到容器模板文件。a7:获取容器模板文件。a8:根据当前的容器配置信息,修改该容器模板文件中微虚机的运行状态信息包括的微虚机的配置信息。a9:基于修改后的容器模板文件中微虚机的运行状态信息启动该微虚机。a10:容器引擎根据该容器模板文件中客户虚拟机的内存镜像,连接到该客户虚拟机中的代理程序。a11:通过该代理程序修改该客户虚拟机的配置信息。a12:通过代理程序创建用户的工作负载。
82.在本技术实施例中,在微虚机、客户虚拟机和代理程序都启动完毕后,采用快照技术将已启动的微虚机的运行状态信息和客户虚拟机的内存镜像保存为容器模板文件。在客户虚拟机和代理程序都启动成功后创建容器模板文件,将客户虚拟机和代理程序的启动结果包含在容器模板文件中。如此容器模板文件中包含了一个完整的且已经启动成功的微虚机,因此基于容器模板文件启动安全容器时,无需重新启动客户虚拟机的操作系统和代理程序,大大减少了安全容器启动时的cpu开销,缩短了安全容器的启动时间。
83.本技术实施例还提供一种安全容器启动装置,该装置用于执行上述任一实施例提供的安全容器启动方法。如图3所示,该装置包括:
84.接收模块201,用于接收容器启动请求;
85.获取模块202,用于获取容器模板文件,容器模板文件中包括已启动的安全容器中微虚机的运行状态信息和客户虚拟机的内存镜像;
86.启动模块203,用于根据容器模板文件启动安全容器。
87.在获取模块202获取容器模板文件之前,该装置还包括:模板创建模块,用于接收容器模板创建请求;采用快照技术生成已启动的安全容器对应的容器模板文件;将容器模板文件存储在设定的存储介质中。
88.模板创建模块,具体用于冷启动微虚机;确定微虚机的客户虚拟机中的代理程序启动;采用快照技术保存微虚机当前的运行状态信息和客户虚拟机的内存镜像,得到容器模板文件。
89.获取模块202,用于从容器启动请求包括的容器实例的配置信息中,获取容器实例的容器规格;根据容器规格,从当前存储的所有容器模板文件中获取一个容器模板文件。
90.获取模块202,具体用于判断当前存储的每个容器模板文件中是否存在满足容器规格的容器模板文件;如果是,则获取满足容器规格的容器模板文件;如果否,则从每个容
器模板文件中随机获取一个容器模板文件。
91.该装置还包括:规格调整模块,用于基于随机获取的容器模板文件启动安全容器后,将启动的安全容器的规格调整为容器规格。
92.获取模块202,用于根据容器启动请求包括的模板标识,获取模板标识对应的容器模板文件。
93.获取模块202,具体用于从当前正在运行的至少一个安全容器中选择一个安全容器;对选择的安全容器中微虚机当前的运行状态信息和客户虚拟机的内存数据进行软拷贝,得到容器模板文件。
94.该装置还包括:存储模块,用于将软拷贝得到的容器模板文件存储在设定的存储介质中。
95.启动模块203,用于根据当前的容器配置信息,修改运行状态信息包括的微虚机的配置信息;基于修改后的运行状态信息启动微虚机;根据客户虚拟机的内存镜像,连接到客户虚拟机中的代理程序;通过代理程序修改客户虚拟机的配置信息。
96.启动模块203,还用于在资源池包括的安全容器实例的数目小于预设阈值时,根据容器模板文件启动预设数目个安全容器实例;将预设数目个安全容器实例存储在资源池中。
97.本技术的上述实施例提供的安全容器启动装置与本技术实施例提供的安全容器启动方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
98.本技术实施方式还提供一种电子设备,以执行上述安全容器启动方法。请参考图4,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。如图4所示,电子设备4包括:处理器400,存储器401,总线402和通信接口403,所述处理器400、通信接口403和存储器401通过总线402连接;所述存储器401中存储有可在所述处理器400上运行的计算机程序,所述处理器400运行所述计算机程序时执行本技术前述任一实施方式所提供的安全容器启动方法。
99.其中,存储器401可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口403(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
100.总线402可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器401用于存储程序,所述处理器400在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述安全容器启动方法可以应用于处理器400中,或者由处理器400实现。
101.处理器400可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器400中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器400可以是通用处理器,包括处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用
处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器401,处理器400读取存储器401中的信息,结合其硬件完成上述方法的步骤。
102.本技术实施例提供的电子设备与本技术实施例提供的安全容器启动方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
103.本技术实施方式还提供一种与前述实施方式所提供的安全容器启动方法对应的计算机可读存储介质,请参考图5,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的安全容器启动方法。
104.需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
105.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的安全容器启动方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
106.需要说明的是:
107.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
108.类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
109.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
110.以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1