面向Docker容器的在线迁移系统实现和优化方法技术方案

技术编号:21850777 阅读:16 留言:0更新日期:2019-08-14 00:22
本发明专利技术提供一种面向Docker容器的在线迁移系统实现和优化方法,所述在线迁移系统实现和优化方法至少包括如下步骤:基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;按照执行Pre‑Copy机制的方式实现内存的迭代同步;在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。

Implementation and optimization of online migration system for Docker container

【技术实现步骤摘要】
面向Docker容器的在线迁移系统实现和优化方法
本专利技术属于虚拟化
,尤其涉及一种面向Docker容器的在线迁移系统实现和优化方法。
技术介绍
云计算作为一种新兴的计算模式,近几年受到越来越多的关注和应用,随着云服务规模的扩大,数据中心不断的扩张,为了可以在大规模的云服务平台下有效实现负载均衡,将计算资源进行有效分配,在线迁移技术便逐渐引起人们的重视。传统模式下,云计算的核心内容是虚拟化技术,通过虚拟机来提高计算资源的利用率。目前虚拟机的热迁移技术也相对成熟。而随着人们对容器概念理解的不断深入以及最近几年Docker的持续火热,使人们对云服务的模式产生了新的思考,容器将给云带来更轻便、更灵活、更密集的服务能力。不同于虚拟机,容器通过共享主机内核可以弹性分配计算资源,进一步提高了资源利用率,在操作系统的角度来看,容器就相当于一个个的进程组在其中运行,而正是容器与内核之间密切的关联而对容器的热迁移技术提出了挑战,迁移过程中的状态信息及资源都分散在操作系统甚至内核之中,容器的热迁移也就变的更加复杂,但在云服务均衡调度的需求下,容器的热迁移技术亟待解决。Docker容器作为现在最受业界欢迎的容器技术,但还没有一个很好地支持Docker容器在线迁移的产品,虽然目前Docker原生可以支持容器的冷迁移和容器实时状态的离线迁移,但这并不能很好满足那些实时性要求高的应用。例如,公开号为CN107526626A的专利文献公开了一种基于CRIU的Docker容器热迁移方法及系统,该方案基于Docker容器配置信息重构容器创建命令进而实现Docker容器配置迁移,结合共享存储和非共享存储特点,采用不同Docker镜像分发方法实现Docker容器文件系统迁移,以避免现有方案直接迁移容器磁盘文件造成的Dockerdaemon重启问题。通过将volume源进行归一化处理,并在此基础上提出volume热迁移算法,简化了Docker容器的volume迁移。通过引入Docker仓库安全机制以及Rsync+SSH网络通信机制,该方案能够在非共享存储环境中保证迁移过程中迁移数据的机密性和完整性。本专利技术是为了解决Docker容器在云环境下的在线迁移问题及优化方案,针对Docker容器的特点分析并解决该迁移系统实现的技术难点。不同于其它的容器,Docker容器的特点在于它不依赖于平台,引入容器的镜像机制,提供一种交付标准,而正是镜像层次关系的引入带来了容器迁移的第一个问题:如何根据镜像层之间的父子关系从不同的文件系统驱动中隔离出容器所依赖的运行环境的镜像数据。第二个问题就是如何实现进程的在线迁移。第三个问题则是迁移后目的机Docker如何动态识别迁移容器并继续保持对该容器的管理权限。本专利技术解决了这三个问题,实现Docker容器在线迁移系统,并针对Docker容器的镜像机制特点提出了镜像数据冗余传输处理的优化方法,减少容器的总体迁移时间。在线迁移系统是指能够对Docker容器的实时状态进行迁移时能够保持Dockerdaemon始终处于开启状态的系统。此外,一方面由于申请人所理解的本领域技术人员与审查部门必然有所差异;另一方面由于专利技术人做出本专利技术时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本专利技术不具备这些现有技术的特征,相反本专利技术已经具备现有技术的所有特征,而且申请人保留依据审查指南相关规定随时在
技术介绍
中增加相关现有技术之权利。
技术实现思路
如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。针对现有技术之不足,本专利技术提供一种面向Docker容器的在线迁移系统实现和优化方法,所述在线迁移系统实现和优化方法至少包括如下步骤:基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;按照执行Pre-Copy机制的方式实现内存的迭代同步;在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。通过上述方式至少能够达到如下技术效果:一者,基于本地镜像层层级关系的分析来进行Docker容器所需镜像数据的收集,可以实现端到端的Docker容器数据迁移,具有良好的扩展性。二者,在Docker容器镜像迁移过程中,更细粒度地避免了冗余数据传输,加速镜像迁移。三者,基于Pre-Copy算法的内存迭代同步增量内存脏页面数据可以控制容器迁移过程中的宕机时间在预设的阈值范围内,有效提升Docker容器服务质量。根据一种优选实施方式,所述镜像层数据的整合收集至少包括如下步骤:基于当前文件系统和容器号确定该容器的镜像层标签之间的父子层级关系,并基于所述容器号收集容器的配置信息;基于所述容器号和容器配置文件在镜像管理目录中整合镜像层元数据信息及容器镜像元数据信息;基于所述容器配置文件的挂载点字段确定数据卷挂载点信息。通过上述方式至少能够达到如下技术效果:一者,迁移后Docker容器在目的端依然拥有分层结构的镜像数据。二者,迁移后的Docker容器与源端迁移前的状态及配置保持一致。三者,迁移后的Docker容器在数据卷中保存的状态信息在目的端保持一致。根据一种优选实施方式,内存的迭代同步至少包括如下步骤:创建第一检查点镜像文件,按照存放至指定目录的方式将其同步至所述目的机容器,并按照配置-pre-dump参数以使得源机容器的服务进程保持开启的方式完成内存的第一轮迭代同步;按照将所述第一检查点镜像文件作为父镜像并指定-parent参数的方式创建第二轮迭代同步的第二检查点镜像文件;在所述第二检查点镜像文件满足第一阈值条件、第二阈值条件和第三阈值条件中的至少一个的情况下,按照将所述第二检查点镜像文件同步至目的机容器的方式完成内存的迭代同步。通过上述方式至少能够达到如下技术效果:一者,赋予Docker容器增量内存检查点创建和恢复的能力。二者,指明上一轮内存同步的数据,基于上一轮内存数据内容,保存这一轮被修改过的内存脏页面数据内容。三者,根据预设的宕机时间阈值范围,将控制待传输的内存脏页面数据在一定范围之内,有效减少Docker容器在线迁移的宕机时间,同时避免了内存修改频繁导致大量冗余数据的传输。根据一种优选实施方式,所述第一阈值条件配置为需要传送的内存文件小于第一设定阈值;所述第二阈值条件配置为迭代次数大于第二设定阈值;所述第三阈值条件配置为相邻的两次迭代同步过程中各自对应的内存文件大小的比值大于第三设定阈值。根据一种优选实施方式,所述容器恢复操作至少包括如下步骤:按照指定容器号和内存镜像文件的方式启动所述目的机容器;在按照执行本地化判断的方式确定待恢复容器属于异地迁移容器的情况下,按照将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中的方式以使得所述目的机容器能够对异地迁移容器进行识别;在所述容器恢复操作执行成功的情况下,生成迁移成功消息并反馈至源机容器,或者在所述容器恢复操作执行失败的情况下,生成恢复失败消息并反馈至源机容器以重启容器服务。根据一本文档来自技高网
...

【技术保护点】
1.面向Docker容器的在线迁移系统实现和优化方法,其特征在于,所述在线迁移系统实现和优化方法至少包括如下步骤:基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;按照执行Pre‑Copy机制的方式实现内存的迭代同步;在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。

【技术特征摘要】
1.面向Docker容器的在线迁移系统实现和优化方法,其特征在于,所述在线迁移系统实现和优化方法至少包括如下步骤:基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;按照执行Pre-Copy机制的方式实现内存的迭代同步;在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。2.根据权利要求1所述的在线迁移系统实现和优化方法,其特征在于,所述镜像层数据的整合收集至少包括如下步骤:基于当前文件系统和容器号确定该容器的镜像层标签之间的父子层级关系,并基于所述容器号收集容器的配置信息;基于所述容器号和容器配置文件在镜像管理目录中整合镜像层元数据信息及容器镜像元数据信息;基于所述容器配置文件的挂载点字段确定数据卷挂载点信息。3.根据权利要求2所述的在线迁移系统实现和优化方法,其特征在于,内存的迭代同步至少包括如下步骤:创建第一检查点镜像文件,按照存放至指定目录的方式将其同步至所述目的机容器,并按照配置-pre-dump参数以使得源机容器的服务进程保持开启的方式完成内存的第一轮迭代同步;按照将所述第一检查点镜像文件作为父镜像并指定-parent参数的方式创建第二轮迭代同步的第二检查点镜像文件;在所述第二检查点镜像文件满足第一阈值条件、第二阈值条件和第三阈值条件中的至少一个的情况下,按照将所述第二检查点镜像文件同步至目的机容器的方式完成内存的迭代同步。4.根据权利要求3所述的在线迁移系统实现和优化方法,其特征在于,所述第一阈值条件配置为需要传送的内存文件小于第一设定阈值;所述第二阈值条件配置为迭代次数大于第二设定阈值;所述第三阈值条件配置为相邻的两次迭代同步过程中各自对应的内存文件大小的比值大于第三设定阈值。5.根据权利要求4所述的在线迁移系统实现和优化方法,其特征在于,所述容器恢复操作至少包括如下步骤:按照指定容器号和内存镜像文件的方式启动所述目的机容器;在按照执行本地化判断的方式确定待恢复容器属于异地迁移容器的情况下,按照将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中的方式以使得所述目的机容器能够对异地迁移容器进行识别;在所述容器恢复操作执行成功的情况下,生成迁移成功消息并反馈至源机容器,或者在所述容器恢复操作执行失败的情况下,生成恢复失败消息并反馈至源机容器以重启容器服务。6.根据权利要求5所述的在线迁移系统实现和优化方法,其特征在于,将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中至少包括如下步骤:在所述待恢复容器属于本地容器的情况...

【专利技术属性】
技术研发人员:吴松金海徐波
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1