一种应用容器的启动方法及系统技术方案

技术编号:14058653 阅读:201 留言:0更新日期:2016-11-27 11:53
本发明专利技术涉及一种应用容器的启动方法及系统,该方法包括:创建应用运行所需应用容器,并配置运行环境;安装运行所需应用;创建保存检查点文件的目录;启动运行所需应用;运行所需应用启动完成后,启动热迁移模块,冻结应用容器及应用进程;保存热迁移模块收集应用容器和应用所使用的资源到检查点目录;再次启动所述应用容器时,先创建应用运行所需应用容器,再读取保存在硬盘上的检查点数据;解析所述检查点数据,恢复所述应用容器的所需资源,恢复所需应用的进程,启动应用容器。该系统包括:应用运行模块、第一保存恢复模块、第二保存恢复模块和数据存储模块。本发明专利技术利用应用容器热迁移技术,实现了应用容器启动的加速。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种应用容器的启动方法及系统
技术介绍
近年来,随着计算机技术的不断发展,以Docker为代表的应用容器技术作为轻量级虚拟化技术,广泛应用于云计算、安全、智能操作系统等领域。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的应用容器中,然后发布到任何流行的Linux机器上。Docker应用容器可以为应用提供一个虚拟化的运行环境,各个应用容器之间完全隔离,相互之间不会有任何接口,而且几乎没有性能开销,可以很容易地在主机上运行。应用容器热迁移技术,如CRIU技术,可以将应用容器及应用容器中运行的应用冻结,并将应用容器状态及所使用的资源保存到检查点数据文件中,写入到硬盘上,之后可以在同一个或不同的主机上的应用容器中恢复出原来的应用,继续从冻结之前的状态开始运行,应用容器热迁移技术与现有的一些应用容器迁移方法如docker的export和save方法相比,不同点在于docker export导出应用容器会丢失历史记录和元数据,而docker save只能用于迁移应用容器的镜像而不能用于迁移单个应用容器。只有应用容器热迁移技术如CRIU能够在迁移的时候保存应用容器的状态,恢复应用容器的时候继续从冻结之前的状态开始运行。目前,对于运行某些应用的应用容器来说,启动的时候需要向内存中写入大量数据,初始化时间非常长,整个启动过程需要耗费大量的时间,而且每次启动的时候都要重复这一过程,使得用户每次启动应用容器后都要要等待很久,大大降低了用户体验。
技术实现思路
本专利技术的目的在于,提供一种应用容器的启动方法及系统,它利用应用容器热迁移技术,将应用容器启动过程由直接启动应用容器改变为从应用容器检查点恢复已经初始化完毕的状态,加速了应用容器启动的过程,大大提升了用户体验。为了实现上述目的,一方面,本专利技术提供了一种应用容器的启动方法,该方法包括以下步骤:创建应用运行所需应用容器,并配置运行环境,以及在应用容器中安装运行所需应用。在存储器上创建保存检查点数据文件的目录,检查点数据文件用于存储应用容器和应用所使用的资源;启动运行所需应用的进程,以及启动热迁移模块,冻结应用容器及应用进程;热迁移模块用于收集应用容器和应用所使用的资源,保存到检查点目录。再次启动应用容器时,先创建相应的应用容器,读取保存在存储器上的检查点数据;以及解析检查点数据,恢复应用容器的所需资源,恢复所需应用的进程,启动应用容器。另一方面,本专利技术提供了一种应用容器的启动系统,该系统包括:应用运行模块,用于创建应用运行所需应用容器,并配置运行环境,以及在应用容器中安装运行所需应用。第一保存恢复模块,用于在存储器上创建保存检查点数据文件的目录,检查点数据文件用于存储应用容器和应用所使用的资源;启动运行所需应用的进程,以及启动热迁移模块,冻结应用容器及应用进程;热迁移模块用于收集应用容器和应用所使用的资源,保存到检查点目录。第二保存恢复模块,用于再次启动应用容器时,先创建相应的应用容器,读取保存在存储器上的检查点数据;以及解析检查点数据,恢复应用容器的所需资源,恢复所需应用的进程,启动应用容器。本专利技术提供的一种应用容器的启动方法及系统,通过对包含已经启动好的应用的应用容器进行冻结和状态存储,并在下一次启动应用容器的时候直接从检查点恢复应用容器和应用,同时采用应用容器热迁移技术,提高了应用容器的启动速度,提升了用户体验度。附图说明图1为本专利技术实施例提供的一种应用容器的启动方法的方法流程图;图2为本专利技术实施例提供的一种应用容器的启动系统的结构框图。具体实施方式下面通过附图和实施例,对本专利技术的技术方案作进一步的详细描述。图1为本专利技术实施例提供的一种应用容器的启动方法的方法流程图。如图1所示,该方法包括步骤101-103。步骤101,创建应用运行所需应用容器,并配置运行环境,以及在应用容器中安装运行所需应用。在docker中创建应用运行所需要的应用容器。应用容器的镜像应选择应用运行所需要的操作系统,在应用容器中应配置应用运行所需要的运行环境,其中,运行环境包括应用运行所依赖的其他程序、库文件和配置环境变量,以使应用能够在应用容器中正常启动。步骤102,在存储器上创建保存检查点数据文件的目录,检查点数据文件用于存储应用容器和应用所使用的资源;启动运行所需应用的进程,以及启动热迁移模块,冻结应用容器及应用进程;热迁移模块用于收集应用容器和应用所使用的资源,保存到检查点目录。将应用容器作为一组进程树,通过CRIU(热迁移模块)指令获取其pid,通过/proc/$pid/task/目录获取相关线程,冻结应用容器及运行在应用容器中的应用进程。其中,CRIU指令可以内置于docker引擎中,这样可以直接根据运行应用的应用容器的ID或者名称,通过执行docker checkpoint指令冻结应用容器及运行在应用容器中的应用进程。CRIU程序会收集应用容器和应用所使用的所有资源及与应用相关的应用容器状态,写入检查点目录中,(同时还会写入CRIU文件描述符)。除本地资源外,CRIU程序还会收集应用与外部服务器链接的状态,如服务器IP地址、端口号、HTTP请求报文等等,将这些信息单独保存到一个检查点文件中,然后断开外部链接。CRIU程序可以选择一个工作路径,在其中写入应用容器状态保存记录日志。步骤103,再次启动应用容器时,先创建相应的应用容器,读取保存在存储器上的检查点数据;以及解析检查点数据,恢复应用容器的所需资源,恢复所需应用的进程,启动应用容器。当再次启动该应用容器的时候,利用步骤102中使用的应用容器,保证应用能够正常启动。同时,调用CRIU指令,读取步骤102中写入检查点目录中的数据文件。当不使用步骤102中使用的应用容器时,可以重复步骤101创建一个新的可用的应用容器。CRIU解析检查点数据,找出哪些进程共享哪些资源,恢复共享资源,调用fork()函数恢复进程,恢复除了内存映射、计时器、证书和线程外的所有基础任务,恢复其他资源,最后读取应用与外部服务器链接状态保存文件内容,与外部服务器重新建立连接,使整个应用容器正常启动。可选地,当要在不同主机上启动应用容器时,可以重复步骤102,在非本地主机上创建一个新的可用的应用容器。同时要将步骤102中写入检查点目录中的数据文件通过网络或其他途径拷贝到新的主机上指定的检查点目录中,再通过调动CRIU指令读取数据。本专利技术提供的一种应用容器热迁移技术加速应用容器启动方法,通过对包含已经启动好的应用的应用容器进行冻结和状态存储,并在下一次启动应用容器的时候直接从检查点恢复应用容器和应用,同时采用应用容器热迁移技术,提高了应用容器的启动速度,提升了用户体验度。图2为本专利技术实施例提供的一种应用容器热迁移技术加速应用容器启动系统的结构框图。如图2所示,该装置500包括应用运行模块501、第一保存恢复模块502、第二保存恢复模块503和数据存储模块504。其中,应用运行模块501,用于创建应用运行所需应用容器,并配置运行环境,以及在应用容器中安装运行所需应用。第一保存恢复模块502,用于创建保存检查点文件的目录,启动运行所需应用,以及启动热迁移模块,冻结应用容器及应本文档来自技高网...
一种应用容器的启动方法及系统

【技术保护点】
一种应用容器的启动方法,其特征在于,包括以下步骤:创建应用运行所需应用容器,并配置运行环境,以及在所述应用容器中安装运行所需应用;在存储器上创建保存检查点数据文件的目录,所述检查点数据文件用于存储所述应用容器和应用所使用的资源;启动所述运行所需应用的进程,以及启动热迁移模块,冻结应用容器及应用进程;所述热迁移模块用于收集应用容器和应用所使用的资源,保存到所述检查点目录;再次启动所述应用容器时,先创建相应的应用容器,读取保存在存储器上的检查点数据;以及解析所述检查点数据,恢复所述应用容器的所需资源,恢复所需应用的进程,启动应用容器。

【技术特征摘要】
1.一种应用容器的启动方法,其特征在于,包括以下步骤:创建应用运行所需应用容器,并配置运行环境,以及在所述应用容器中安装运行所需应用;在存储器上创建保存检查点数据文件的目录,所述检查点数据文件用于存储所述应用容器和应用所使用的资源;启动所述运行所需应用的进程,以及启动热迁移模块,冻结应用容器及应用进程;所述热迁移模块用于收集应用容器和应用所使用的资源,保存到所述检查点目录;再次启动所述应用容器时,先创建相应的应用容器,读取保存在存储器上的检查点数据;以及解析所述检查点数据,恢复所述应用容器的所需资源,恢复所需应用的进程,启动应用容器。2.根据权利要求1所述的方法,其特征在于,所述再次启动所述应用容器为在非本地主机上启动所述应用容器时,包括以下步骤,将本地主机上存储的检查点数据文件拷贝到非本地主机上指定的检查点目录;通过所述热迁移模块读取所述检查点目录的检查点数据;以及解析所述检查点数据,恢复所述应用容器和应用所需要的资源,恢复应用进程,启动应用容器。3.根据权利要求1所述的方法,其特征在于,所述启动热迁移模块,冻结应用容器及应用进程步骤包括:收集所述应用容器中应用进程与其子进程构成的树,并冻结所有进程;收集所述应用容器和所述应用中使用的资源,保存到所述检查点目录中;所述应用包括进程和线程;所述资源包括文件描述符和内存状态。4.根据权利要求1所述的方法,其特征...

【专利技术属性】
技术研发人员:朱小勇
申请(专利权)人:中国科学院声学研究所上海尚恩华科网络科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1