CN110119377A - 面向Docker容器的在线迁移系统实现和优化方法 - Google Patents
面向Docker容器的在线迁移系统实现和优化方法 Download PDFInfo
- Publication number
- CN110119377A CN110119377A CN201910342058.7A CN201910342058A CN110119377A CN 110119377 A CN110119377 A CN 110119377A CN 201910342058 A CN201910342058 A CN 201910342058A CN 110119377 A CN110119377 A CN 110119377A
- Authority
- CN
- China
- Prior art keywords
- container
- file
- mirror image
- mirror
- image
- 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.)
- Granted
Links
Classifications
-
- 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/119—Details of migration of file systems
-
- 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/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种面向Docker容器的在线迁移系统实现和优化方法,所述在线迁移系统实现和优化方法至少包括如下步骤:基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;按照执行Pre‑Copy机制的方式实现内存的迭代同步;在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。
Description
技术领域
本发明属于虚拟化技术领域,尤其涉及一种面向Docker容器的在线迁移系统实现和优化方法。
背景技术
云计算作为一种新兴的计算模式,近几年受到越来越多的关注和应用,随着云服务规模的扩大,数据中心不断的扩张,为了可以在大规模的云服务平台下有效实现负载均衡,将计算资源进行有效分配,在线迁移技术便逐渐引起人们的重视。传统模式下,云计算的核心内容是虚拟化技术,通过虚拟机来提高计算资源的利用率。目前虚拟机的热迁移技术也相对成熟。而随着人们对容器概念理解的不断深入以及最近几年Docker的持续火热,使人们对云服务的模式产生了新的思考,容器将给云带来更轻便、更灵活、更密集的服务能力。不同于虚拟机,容器通过共享主机内核可以弹性分配计算资源,进一步提高了资源利用率,在操作系统的角度来看,容器就相当于一个个的进程组在其中运行,而正是容器与内核之间密切的关联而对容器的热迁移技术提出了挑战,迁移过程中的状态信息及资源都分散在操作系统甚至内核之中,容器的热迁移也就变的更加复杂,但在云服务均衡调度的需求下,容器的热迁移技术亟待解决。Docker容器作为现在最受业界欢迎的容器技术,但还没有一个很好地支持Docker容器在线迁移的产品,虽然目前Docker原生可以支持容器的冷迁移和容器实时状态的离线迁移,但这并不能很好满足那些实时性要求高的应用。例如,公开号为CN107526626A的专利文献公开了一种基于CRIU的Docker容器热迁移方法及系统,该方案基于Docker容器配置信息重构容器创建命令进而实现Docker容器配置迁移,结合共享存储和非共享存储特点,采用不同Docker镜像分发方法实现Docker容器文件系统迁移,以避免现有方案直接迁移容器磁盘文件造成的Docker daemon重启问题。通过将volume源进行归一化处理,并在此基础上提出volume热迁移算法,简化了Docker容器的volume迁移。通过引入Docker仓库安全机制以及Rsync+SSH网络通信机制,该方案能够在非共享存储环境中保证迁移过程中迁移数据的机密性和完整性。
本发明是为了解决Docker容器在云环境下的在线迁移问题及优化方案,针对Docker容器的特点分析并解决该迁移系统实现的技术难点。不同于其它的容器,Docker容器的特点在于它不依赖于平台,引入容器的镜像机制,提供一种交付标准,而正是镜像层次关系的引入带来了容器迁移的第一个问题:如何根据镜像层之间的父子关系从不同的文件系统驱动中隔离出容器所依赖的运行环境的镜像数据。第二个问题就是如何实现进程的在线迁移。第三个问题则是迁移后目的机Docker如何动态识别迁移容器并继续保持对该容器的管理权限。本发明解决了这三个问题,实现Docker容器在线迁移系统,并针对Docker容器的镜像机制特点提出了镜像数据冗余传输处理的优化方法,减少容器的总体迁移时间。在线迁移系统是指能够对Docker容器的实时状态进行迁移时能够保持Docker daemon始终处于开启状态的系统。
此外,一方面由于申请人所理解的本领域技术人员与审查部门必然有所差异;另一方面由于发明人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留依据审查指南相关规定随时在背景技术中增加相关现有技术之权利。
发明内容
如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。
针对现有技术之不足,本发明提供一种面向Docker容器的在线迁移系统实现和优化方法,所述在线迁移系统实现和优化方法至少包括如下步骤:基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;按照执行Pre-Copy机制的方式实现内存的迭代同步;在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。通过上述方式至少能够达到如下技术效果:一者,基于本地镜像层层级关系的分析来进行Docker容器所需镜像数据的收集,可以实现端到端的Docker容器数据迁移,具有良好的扩展性。二者,在Docker容器镜像迁移过程中,更细粒度地避免了冗余数据传输,加速镜像迁移。三者,基于Pre-Copy算法的内存迭代同步增量内存脏页面数据可以控制容器迁移过程中的宕机时间在预设的阈值范围内,有效提升Docker容器服务质量。
根据一种优选实施方式,所述镜像层数据的整合收集至少包括如下步骤:基于当前文件系统和容器号确定该容器的镜像层标签之间的父子层级关系,并基于所述容器号收集容器的配置信息;基于所述容器号和容器配置文件在镜像管理目录中整合镜像层元数据信息及容器镜像元数据信息;基于所述容器配置文件的挂载点字段确定数据卷挂载点信息。通过上述方式至少能够达到如下技术效果:一者,迁移后Docker容器在目的端依然拥有分层结构的镜像数据。二者,迁移后的Docker容器与源端迁移前的状态及配置保持一致。三者,迁移后的Docker容器在数据卷中保存的状态信息在目的端保持一致。
根据一种优选实施方式,内存的迭代同步至少包括如下步骤:创建第一检查点镜像文件,按照存放至指定目录的方式将其同步至所述目的机容器,并按照配置-pre-dump参数以使得源机容器的服务进程保持开启的方式完成内存的第一轮迭代同步;按照将所述第一检查点镜像文件作为父镜像并指定-parent参数的方式创建第二轮迭代同步的第二检查点镜像文件;在所述第二检查点镜像文件满足第一阈值条件、第二阈值条件和第三阈值条件中的至少一个的情况下,按照将所述第二检查点镜像文件同步至目的机容器的方式完成内存的迭代同步。通过上述方式至少能够达到如下技术效果:一者,赋予Docker容器增量内存检查点创建和恢复的能力。二者,指明上一轮内存同步的数据,基于上一轮内存数据内容,保存这一轮被修改过的内存脏页面数据内容。三者,根据预设的宕机时间阈值范围,将控制待传输的内存脏页面数据在一定范围之内,有效减少Docker容器在线迁移的宕机时间,同时避免了内存修改频繁导致大量冗余数据的传输。
根据一种优选实施方式,所述第一阈值条件配置为需要传送的内存文件小于第一设定阈值;所述第二阈值条件配置为迭代次数大于第二设定阈值;所述第三阈值条件配置为相邻的两次迭代同步过程中各自对应的内存文件大小的比值大于第三设定阈值。
根据一种优选实施方式,所述容器恢复操作至少包括如下步骤:按照指定容器号和内存镜像文件的方式启动所述目的机容器;在按照执行本地化判断的方式确定待恢复容器属于异地迁移容器的情况下,按照将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中的方式以使得所述目的机容器能够对异地迁移容器进行识别;在所述容器恢复操作执行成功的情况下,生成迁移成功消息并反馈至源机容器,或者在所述容器恢复操作执行失败的情况下,生成恢复失败消息并反馈至源机容器以重启容器服务。
根据一种优选实施方式,将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中至少包括如下步骤:在所述待恢复容器属于本地容器的情况下,直接启动所述待恢复容器;在所述待恢复容器属于异地迁移容器的情况下,根据镜像层之间的父子关系将待恢复容器的镜像层元数据和可读写层均加载至镜像层存储驱动;读取容器配置文件至容器对象结构中;基于所述容器对象结构获取容器的镜像ID并加载其镜像元数据至镜像存储驱动中;将该容器对象注册至容器缓存管理结构中;根据加载的容器信息获取数据卷的挂载信息并将其注册至数据卷的管理驱动对象中。
根据一种优选实施方式,所述镜像层数据至少包括镜像层元数据,所述镜像层元数据按照如下步骤进行收集:基于容器号确定/image/fs-driver/layerdb/mounts中的容器号所对应的目录;根据所述目录下的parent文件记录信息,在/image/fs-driver/layerdb/sha256/layer-id确定父镜像层的镜像层元数据;基于parent文件迭代的方式收集镜像层元数据。
根据一种优选实施方式,所述镜像层数据还包括镜像元数据和数据卷数据,所述镜像元数据和数所述据卷数据按照如下步骤进行收集:基于容器配置文件中json数据的Image字段解析确定容器的镜像ID,在/image/fs-driver/imagedb/目录中完成镜像元数据的收集;基于所述数据卷挂载点信息的json数据中的Name和Source字段确定数据卷的挂载位置并定位数据卷根目录以完成数据卷数据的收集。
本发明还提供一种面向Docker容器的在线迁移系统,所述在线迁移系统至少包括文件传输模块、内存同步模块、容器控制模块和冗余处理模块,其中:所述文件传输模块配置为基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;所述冗余处理模块配置为基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;所述内存同步模块配置为按照执行Pre-Copy机制的方式实现内存的迭代同步;所述容器控制模块配置为在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。
根据一种优选实施方式,所述文件传输模块还配置为按照如下步骤完成所述镜像层数据的整合收集:基于当前文件系统和容器号确定该容器的镜像层标签之间的父子层级关系,并基于所述容器号收集容器的配置信息;基于所述容器号和容器配置文件在镜像管理目录中整合镜像层元数据信息及容器镜像元数据信息;基于所述容器配置文件的挂载点字段确定数据卷挂载点信息。
根据一种优选实施方式,内存同步模块配置为创建第一检查点镜像文件,按照存放至指定目录的方式将其同步至所述目的机容器,并按照配置-pre-dump参数以使得源机容器的服务进程保持开启的方式完成内存的第一轮迭代同步;按照将所述第一检查点镜像文件作为父镜像并指定-parent参数的方式创建第二轮迭代同步的第二检查点镜像文件;在所述第二检查点镜像文件满足第一阈值条件、第二阈值条件和第三阈值条件中的至少一个的情况下,按照将所述第二检查点镜像文件同步至目的机容器的方式完成内存的迭代同步。
根据一种优选实施方式,迁移失败处理模块配置为按照指定容器号和内存镜像文件的方式启动所述目的机容器;在按照执行本地化判断的方式确定待恢复容器属于异地迁移容器的情况下,按照将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中的方式以使得所述目的机容器能够对异地迁移容器进行识别。
根据一种优选实施方式,迁移失败处理模块还配置为在所述容器恢复操作执行成功的情况下,生成迁移成功消息并反馈至源机容器,或者在所述容器恢复操作执行失败的情况下,生成恢复失败消息并反馈至源机容器以重启容器服务。
本发明的有益技术效果:
(1)本发明是第一个实现对Docker容器的在线迁移的系统,迁移过程对用户透明,宕机时间限制在秒级。
(2)本发明支持了对不同的主流文件系统的整合以及迁移,不同的文件系统的迁移方式有所不同。
(3)本发明支持源机容器迁移失败后恢复的服务保障机制,当容器在目的机无法恢复或恢复失败时,源机根据反馈信息对容器进行恢复,保证迁移过程中服务的可靠性。
(4)本发明提供的镜像数据冗余处理技术,可以在保证容器恢复的情况下减少迁移过程中的数据传输,减少总体的迁移时间。
附图说明
图1是本发明优选的基于Docker容器在线迁移的应用环境示意图;
图2是本发明优选的在线迁移系统的架构示意图;和
图3是本发明优选的镜像冗余处理的流程示意图。
附图标记列表
1:基础层 2:迁移数据层 3:功能层
4:应用层 5:源机容器 6:目的机容器
7:传输端 8:守护进程 9:镜像层
10:容器 11:AUFS文件系统 12:Overlay文件系统
13:Overlay2文件系统 14:内存单元 15:镜像驱动
16:动态加载模块 17:顶层镜像层 18:底层镜像层
19:第一文件 20:第二文件 21:第三文件
22:第四文件
101:初始化模块 102:CRIU模块 103:RPC通信模块
104:迁移控制模块 301:文件传输模块 302:内存同步模块
303:容器控制模块 304:冗余处理模块 305:镜像整合模块
306:迁移失败处理模块 401:实时状态离线迁移模块
402:实时状态在线迁移模块 10a:第一容器 10b:第二容器
18a:第一底层镜像层 18b:第二底层镜像层
具体实施方式
下面结合附图进行详细说明。
为了便于理解,将本发明的技术用语进行如下解释。
基础技术层:为在线迁移框架系统实现,所必须的技术实现,不涉及到具体的独创性功能,而是迁移流程所必需的技术内容。
迁移数据层:涉及到需要迁移的数据,从容器的角度分析,将所有相关且需要迁移的数据归为迁移数据层。
功能层:迁移过程中的具体功能模块,每个部分都包含容器迁移所特有的功能实现
应用层:结合功能的实现具体应用到数据中心的实际场景,完成对应用的离线迁移或在线迁移。
源机容器:迁移过程中将判定哪些容器需要进行迁移,将需要迁移的容器所在的物理主机称源机,迁移之前该容器为源机容器
目的机容器:需要决定将容器迁移到指定的物理主机上运行,改物理主机为目的机,迁移到目的机上的容器为目的机容器。
守护进程:一种在后台运行的特殊程序,用于执行特定的系统任务,其可以在系统引导时自动启动并且一直运行直到系统关闭。或者其可以在需要的时候启动并且在完成任务后便自动关闭结束。例如Unix操作系统便具有很多在后台运行的守护进程,从而实现不同的管理任务。
容器:一种开源应用引擎,能够将软件打包成标准化单元以用于开发、交付和部署。
内存单元:一个容器运行在物理机上,该容器在该物理机上占有的内存数据的内容为内存单元。
镜像驱动:该驱动保存容器镜像相关的信息,通过该信息及文件系统驱动类型(AUFS、OVERLAY或OVERLAY2)来对镜像层数据进行组织和管理
动态加载模块:负责将中途从异地物理机上迁移到目的机上的容器相关的管理上下文数据可以加载到目的机正在运行的Docker Daemon之中,使得该迁移容器可以直接被目的机上的Docker Daemon进行管理。
实施例1
如图2所示,本发明提供一种面向Docker容器的在线迁移系统,至少包括基础层1、迁移数据层2、功能层3和应用层4。迁移数据层2至少包括容器配置数据、镜像层数据、镜像层元数据、镜像元数据和数据卷数据,从而能够为功能层3和应用层4提供数据支撑。功能层3用于对迁移数据层2中的数据进行例如是整合、冗余处理、内存迭代处理以为数据的迁移提供准备基础。应用层4用于完成容器的在线迁移或离线迁移。
优选的,基础层1至少包括初始化模块101、CRIU模块102、RPC通信模块103和迁移控制模块104。初始化模块101用于在源端和目的端检测并构建Docker容器在线迁移所需要的其他基础模块及功能模块。一者,初始化模块101能够检测两端系统环境配置信息是否满足迁移要求,系统环境配置信息至少包括CPU、内核版本、CRIU版本、Docker版本及其他所需的工具信息。二者,初始化模块101能够构建好通信模块和迁移控制模块,保证迁移过程能正常进行。CRIU模块102用于支持对Docker容器进程的例如是内核信息、内存状态等实时状态信息的检查点备份及恢复,在源端进行备份,目的端可进行恢复。RPC通信模块103用于支持源端和目的端的通信功能,通过远程调用的方式来实现两端迁移状态同步。迁移控制模块104用于控制整个迁移流程,结合RPC通信模块控制两端在整个迁移过程逐步进行相应操作来完成整个Docker容器的迁移。
优选的,功能层3至少包括文件传输模块301、内存同步模块302、容器控制模块303、冗余处理模块304、镜像整合模块305和迁移失败处理模块306。文件传输模块301用于在源端分析一个容器在本地所依赖的所有文件数据,并将文件数据或目录信息进行统一整合,传输到目的端对应的路径下供迁移后的Docker容器使用。内存同步模块302用于Docker容器内部进程所依赖的内存部分的迁移,该内存状态的迁移需要通过迭代同步的过程,即每一轮的内存同步只同步基于上一轮有所改动的内存页面的数据,从而将需要同步的内存数据压缩到一定阈值范围之内,使得最后一轮关机同步内存的时间尽可能短,保证对用户透明的迁移体验。容器控制模块303用于基于在线迁移的流程,要对迁移容器的拥有绝对的控制能力,在对应的步骤节点完成能够完成对容器的检查点备份、检查点恢复、关机、启动、销毁等操作。冗余处理模块304用于在传输容器镜像层文件过程中,由于不同的镜像层之间可能存在冗余的文件数据以及目的端可能已经存在相同的镜像层,该模块用于分析不同镜像层之间的冗余数据和目的端的镜像层缓存从而避免冗余数据的迁移。镜像整合模块304用于将迁移到目的机镜像层和目的端的镜像层缓存信息进行层级关系的调整,来重新构建不同镜像层之间的父子关系,来作为一个镜像整体为容器提供数据访问的能力。迁移失败处理模块306用于容错处理,该系统考虑到各种迁移过程中可能出现的异常或错误情况,在尽可能保证容器数据正确性和服务可靠性的前提下设立多种错误处理机制来避免因迁移失败导致的服务不可访问以及数据不一致的情况。错误情况主要分为两类:一者,目的机迁移容器启动失败,此时本模块将消除目的端迁移部分的数据,在源端进行恢复来保证服务的可靠性。二者,源端和目的端断开连接响应超时,当目的端恢复容器后因网络原因并不能将启动成功或失败的信息发回到源端,导致源端无法感知到迁移容器的运行情况,为了保证容器服务运行的一致性。此时保留源端容器数据,不做任何操作。
优选的,应用层4至少包括实时状态离线迁移模块401和实时状态在线迁移模块402。实时状态离线迁移模块401用于实现容器的离线迁移。实时状态在线迁移模块402用于实现容器的在线迁移。
为了便于理解,将本发明的实时状态离线迁移模块401和实时状态在线迁移模块402的工作原理进行详细论述。
当需要对容器进行离线迁移时,实时状态离线迁移模块401开启,使得初始化模块101对两端进行环境信息监测及各模块的构建,此时不需要构建内存同步模块302和CRIU模块102,并基于RPC通信模块103通知迁移控制模块104此次迁移为离线迁移。迁移控制模块104开始协调各功能模块进行迁移工作。具体的,容器控制模块303关闭指定迁移容器,文件传输模块301开始对迁移数据层所有数据进行两端同步,并在数据同步过程中通过冗余处理模块304避免不必要的冗余数据传输,然后在目的端的镜像整合模块305对迁移过来的数据层中的镜像数据进行整合,结合目的端的镜像层数据缓存信息调整镜像层之间的层级关系,随后容器控制模块303在目的端启动迁移容器并在源端销毁迁移容器信息。若该过程中发生任何异常将通知迁移失败处理模块306对异常进行分析并执行相关措施。
当需要对容器进行在线迁移时,实时状态在线迁移模块402开启,使得初始化模块101对两端进行环境信息监测及各模块的构建,基于RPC通信模块103通知迁移控制模块104此次迁移为在线迁移,首先通知文件传输模块301开始对迁移数据层所有数据进行两端同步,并在数据同步过程中通过冗余处理模块304避免不必要的冗余数据传输,然后内存同步模块302结合CRIU模块102来进行迭代内存同步。当达到迭代停止的阈值条件时,基于RPC通信模块103通知容器控制模块303关闭源端容器进行最后一轮内存同步,目的端的容器控制模块303将基于容器内存的检查点文件进行容器启动及实时状态的恢复,然后在目的端的镜像整合模块305对迁移过来的数据层中的镜像数据进行整合,结合目的端的镜像层数据缓存信息调整镜像层之间的层级关系,随后容器控制模块303在目的端启动迁移容器并在源端销毁迁移容器信息。若该过程中发生任何异常将通知迁移失败处理模块306对异常进行分析并执行相关措施。
优选的,面向Docker容器的在线迁移系统包括存储器、一个或多个处理器以及一个或多个编程模块。编程模块至少包括初始化模块、CRIU模块、RPC模块、迁移控制模块、文件传输模块、冗余处理模块、镜像整合模块、迁移失败处理模块、实时状态离线迁移模块和实时状态在线迁移模块中的一个或几个。编程模块被存储在存储器上并且能够由一个或多个处理器执行动作。动作至少包括基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成镜像层数据的整合收集;基于父镜像层与子镜像层之间的Diff命令以确定镜像层数据的最新版本,并实现镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成镜像层数据的迭代同步;按照执行Pre-Copy机制的方式实现内存的迭代同步;以及在镜像层数据和内存的迭代同步均执行完成的情况下,执行目的机容器的容器恢复操作。
优选的,初始化模块可以是具有在源端和目的端检测并构建Docker容器在线迁移所需要的其他基础模块的服务器。CRIU模块可以是能够将进程状态保存为文件并且通过文件对进程进行恢复的服务器。RPC通信模块可以是具有无线通信功能的通信芯片。迁移控制模块104可以是能够控制整个迁移流程的服务器。文件传输模块301可以是能够分析容器在本地所依赖的所有文件数据,并将文件数据或目录信息进行统一整合的服务器。内存同步模块302可以是能够将内存状态进行迭代同步的服务器。容器控制模块303可以是能够对容器进行检查点备份、检查点恢复、关机、启动、销毁等操作的服务器。冗余处理模块304可以是能够分析不同镜像层之间的冗余数据和目的端的镜像层缓存的服务器。镜像整合模块305可以是能够将迁移到目的机镜像层和目的端的镜像层缓存信息进行层级关系调整的服务器。迁移失败处理模块306可以是能够在尽可能保证容器数据正确性和服务可靠性的前提下通过设立多种错误处理机制来避免因迁移失败导致的服务不可访问以及数据不一致的服务器。实时状态离线迁移模块401和实时状态在线迁移模块402可以是能够供第三方进行访问控制的客户端。
优选的,实时状态离线迁移模块401连接至初始化模块101和RPC通信模块103。实时状态在线迁移模块402连接至初始化模块101和RPC通信模块103,RPC通信模块103连接至迁移控制模块104。迁移容器模块104连接至容器控制模块303。文件传输模块301、内存同步模块302、冗余处理模块304和镜像整合模块305均连接至迁移控制模块104。
实施例2
本实施例是对实施例1的进一步改进,重复的内容不再赘述。
如图1所示,源机容器5和目的机容器6通过传输端7进行连接,从而能够实现两者之间数据的相互传输。通过传输端7可以将源机容器5和目的机容器6接入本发明的在线迁移系统,从而可以通过CRIU模块实现容器进程的在线迁移。源机容器5和目的机容器6均配置为具有守护进程8、镜像层9、容器10和内存单元14。守护进程8用于接收客户端发起的请求并对请求进行相应处理。镜像层9配置为至少能够支持AUFS文件系统11、Overlay文件系统12和Overlay2文件系统13的工作模式。内存单元14中配置有镜像驱动15,进而通过镜像驱动15能够实现容器10的启动。优选的,容器10可以包括若干个第一容器10a和至少一个第二容器10b。第一容器10a是不需要进行迁移的容器。第二容器10b是需要进行迁移的容器。
优选的,如图1所示,本发明还提供一种面向Docker容器的在线迁移系统实现和优化方法,在源机容器实现对容器镜像层数据的收集,以容器的可读写层为入口,根据镜像层之间的父子关系,构建该容器所需要的所有镜像层数据,镜像层数据包括镜像层的实际数据,镜像层元数据以及镜像元数据信息。将容器所需的所有镜像层数据传输到目的机容器的对应目录之下后,利用CRIU模块,并基于Pre-Copy迁移机制,执行对源机容器内存和可读写层的迭代同步;当迭代满足Stop-and-Copy的阈值条件时,关闭源机容器上的容器服务,进行最后一轮迭代同步;同步完成后,动态加载该迁移容器的相关存储驱动信息,使得目的机容器可以识别该迁移容器并进行管理,最后根据迭代同步的内存镜像恢复容器的实时状态完成迁移过程。具体的,面向Docker容器的在线迁移系统实现和优化方法至少包括如下步骤:
S1:基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制。
优选的,针对AUFS文件系统11、Overlay文件系统12和Overlay2文件系统13采用不同的整合收集机制。收集的镜像层信息至少包括容器配置信息、镜像层数据、镜像层元数据、镜像元数据和数据卷数据,通过数据所在位置的信息整合可以为镜像数据冗余处理提供基础。具体的,镜像层数据的整合收集至少包括如下步骤:
A1:基于当前文件系统和容器号确定该容器的镜像层标签之间的父子层级关系,例如,可以将upper_dir作为lower_dir1的父镜像层,将lower_die1作为lower_dir2的父镜像层,进而通过上述配置找到整个镜像的所有镜像层之间的父子层级关系。
A2:根据容器号收集容器的配置信息。例如,可以根据容器号在目录/containers中收集容器的配置信息。容器的配置信息至少包括容器名称、容器数据卷挂载地址、容器依赖的镜像ID、容器的创建时间和容器的上次启动时间。
A3:根据容器号及容器配置文件config.v2.json在镜像管理目录image/中整合镜像层元数据信息和容器镜像元数据信息。
A4:基于容器配置文件config.v2.json的挂载点字段确定数据卷挂载点信息。例如,根据MountPoints的json结构的Name和Source字段分析确定该数据卷是挂载在默认数据卷挂载点,还是自定义的数据挂载点,最后定位到数据卷根目录。
为了便于理解,结合不同的文件系统将整合收集机制的具体配置方法进行详细论述。
优选的,AUFS文件系统11具有三个子目录/diff、/mnt和/layers。目录/diff用于存放镜像层的实际数据。目录/mnt用于存放所有容器的联合挂载点。目录/layers用于存放所有层级父子关系。首先,根据容器号,在容器根目录下的/image/layerdb/mounts/container_id/mounts-id文件中获取联合挂载/mnt的目录mnt_id。其次,根据该mnt_id,在/diff子目录下找到顶层镜像层入口,同时分析在/layers目录下该mnt_id对应文件里记录的所有父镜像层parent_ids。最后,根据父镜像层id,收集在/diff目录下的所有父镜像层数据。
优选的,Overlay文件系统12根目录下便是所有镜像层目录,具体包括顶层镜像层和底层镜像层。根据容器号以及mounts-id文件记录的信息得到容器的顶层镜像层目录id。在overlay找到对应的id目录后,即为顶层镜像层信息,根据该镜像层目录中的lower-id文件迭代获取所有父镜像层信息。
优选的,Overlay2文件系统13根目录下就是所有镜像层目录加上镜像层目录id后形成的短名称目录。每个镜像层目录下至少包括子目录/diff、link文件和lower文件。子目录/diff用于存储镜像层的实际数据。link文件用于记录该镜像层短名称。lower文件用于记录该镜像层的所有父镜像层的短名称链接信息。根据lower文件就可以收集到所有该容器的所有镜像层信息。同时通过完成镜像层短名称到镜像层目录id的映射过程解析便找到对应的镜像层目录。
优选的,AUFS文件系统11、Overlay文件系统12和Overlay2文件系统13的镜像层元数据的收集过程均相同。具体的,根据容器号找到/image/fs-driver/layerdb/mounts中的容器id对应目录,根据该目录下的parent文件记录信息,在/image/fs-driver/layerdb/sha256/layer-id找到父镜像层的镜像层元数据,如此根据parent文件迭代收集镜像层元数据。
优选的,在收集镜像元数据时,根据容器的配置文件config.v2.json中json数据的Image字段解析得到该容器的镜像id,然后在/image/fs-driver/imagedb/目录收集镜像元数据即可。
S2:基于父镜像层与子镜像层之间的Diff命令的比较以删除镜像层数据的旧版本,并基于传输端7完成最新版本的镜像层数据在源机容器5与目的机容器6之间的传输以完成镜像层数据的迭代同步。
具体的,基于镜像层级之间的父子关系可以按照逐层调用Diff命令比较的方式确认每个文件的最新版本的所在位置,从而可以确定镜像层9中需要迁移的最新文件。通过将文件的旧版本进行删除,可以减小数据的迁移量,并减少迁移时间。优选的,在容器配置AUFS文件系统11或Overlay2文件系统13的情况下,AUFS文件系统11或Overlay2文件系统13均配置为具有至少一个顶层镜像层17和多个底层镜像层18。顶层镜像层17和底层镜像层18均拥有文件数据的最新版本,容器的运行环境仅依赖于文件数据的最新版本,而与其旧版数据无关。因此,通过逐层调用Diff命令比较的方式便可以将旧版数据进行删除。例如,如图3所示,当容器配置AUFS文件系统时,其可以具有顶层镜像层17、第一底层镜像层18a和第二底层镜像层18b。第二底层镜像层中具有第一文件、第二文件、第三文件和第四文件。第二底层镜像层中具有第一文件、第三文件和第四文件。顶层镜像层17具有第三文件和第四文件。第二底层镜像层18b与第一底层镜像层18a首先执行Diff命令,当第二底层镜像层18b与第一底层镜像层18a具有相同的文件时,选取第一底层镜像层18a中的文件作为最新版本,并将第二底层镜像层中的文件作为旧版本以将其删除。当第一底层镜像层18a与顶层镜像层17执行Diff时,选取顶层镜像层17中的文件作为最新版本,并将第一底层镜像层中的文件作为旧版本以删除。最终可以确定第一文件的最新版本位于第一底层镜像层18a中。第二文件的最新版本位于第二底层镜像层18b中。第三文件和第四文件的最新版本均位于顶层镜像层17中。当将第一文件、第二文件、第三文件和第四文件的最新版本的位置确定完成后,便将其各自的最新版本传输至目的机容器的镜像层9中。
优选的,在容器配置Overlay文件系统12的情况下,Overlay文件系统12配置为仅具有一个顶层镜像层17和一个底层镜像层18。此时顶层镜像层17拥有底层文件的硬链接,只需将顶层镜像层17中的文件同步至目的机容器6中即可,并不需要将底层镜像层18中的文件同步至目的机容器。
S3:基于CRIU模块按照执行Pre-Copy机制的方式实现容器进程的在线迁移。
优选的,完成容器镜像层中数据的迁移后,基于CRIU模块102按照Pre-Copy的迁移机制实现内存的迭代同步。内存的迭代同步至少包括如下步骤:
B1:源机容器5为其迁移容器10b创建第一检查点镜像文件,通过存放至指定目录的方式将其同步至目的机容器6,并且通过设置-pre-dump参数以使得源机容器5的服务进程保持开启状态,进而完成内存的第一轮迭代同步。例如,指定目录可以通过--checkpoint-dir设置,默认为/var/lib/docker/containers/<containerID>/checkpints,同步过程依然利用rsync进行同步。-pre-dump参数为布尔变量,是用于指示该轮迭代需要上一轮内存迭代数据作为基础来备份内存增量数据。
B2:以第一检查点镜像文件为父镜像并通过指定-parent参数以创建第二轮迭代同步的第二检查点镜像文件。
B3:在第二检查点镜像文件满足第一阈值条件、第二阈值条件和第三阈值条件中的至少一个的情况下,将第二检查点镜像文件同步至目的机容器的方式完成内存的迭代同步。第一阈值条件是需要传送的内存文件小于第一设定阈值。例如可以将设定阈值设置为5000kb。第二阈值条件是迭代次数大于第二设定阈值。例如可以将第二设定阈值设定为8次。第三阈值条件是相邻的两次迭代同步过程各自对应的内存文件大小的比值大于第三设定阈值。例如可以将第三设定阈值设置为0.8。内存文件大小的比值大于第三设定阈值表明迭代过程并未明显减小内存。优选的,第二检查点镜像文件可以包括内存、内核等实时状态以及内存文件数据。
优选的,当第二检查点镜像文件不满足第一阈值条件、第二阈值条件和第三阈值条件中的任一项的情况下,以上一轮迭代同步过程中的检查点镜像文件作为父镜像,并再次通过设定-parent参数以创建下一轮的检查点镜像文件,直至检查点镜像文件满足第一阈值条件、第二阈值条件和第三阈值条件中的至少一个。
S4:在完成内存和容器镜像层数据的迭代同步的情况下,执行目的机容器6的容器恢复操作。
优选的,当容器镜像数据和内存均从源机容器5同步到目的机容器6的情况下,执行目的机容器恢复。例如,目的机容器的恢复首先需要将其容器镜像层相关信息加载到对应的镜像驱动15,使得目的机容器6的守护进程8可以通过镜像驱动15来对第二容器10b进行管理。优选的,可以按照修改Docker源码、增添对第二容器10b的本地化判断以及镜像驱动15的动态加载模块16的方式能够完成容器管理权限的在线迁移。Docker源码是指Docker源代码。通过修改Docker源码能够修改容器启动流程。在Docker容器启动过程添加动态加载模块来加载迁移容器所有配置、镜像、数据卷等相关信息到Docker daemon中进行管理。具体的,目的机容器6的容器恢复操作至少包括如下步骤:
C1:指定容器号和内存镜像文件以启动目的机容器6的容器10,使得守护进程8按照执行本地化判断的方式判断待恢复容器是属于本地容器还是属于异地迁移容器。恢复容器属于本地容器是指该容器在本地进行实时状态的备份并关闭,但本地Docker管理驱动已经有该容器的相关信息,因此无需进行动态加载。恢复容器属于异地迁移容器是指该容器是从另一个节点迁移到本机的,在迁移之前本机Docker管理驱动并没有该迁移容器所有相关信息,因此需要动态加载模块进行加载。本地化判断可以基于对容器缓存管理结构的分析而判断待恢复容器是否属于本地容器。例如,基于容器ID信息在Docker镜像管理驱动中查找该容器对应的配置信息及容器镜像的所有镜像层数据是否已经成功加载,若查找失败说明该容器不属于本地容器,需要进行动态加载。
C2:在基于本地化判断确定待恢复容器属于异地迁移容器的情况下,启动动态加载模块16以将待恢复容器的配置信息和底层镜像信息动态加载至对应的镜像存储驱动中,使得目的机容器6的守护进程8能够识别该异地迁移容器。例如,待恢复容器的配置信息可以是容器配置文件config.v2.json。
C3:在待恢复容器的容器恢复操作执行成功后,将迁移成功消息反馈至源机容器5,否则,将恢复失败信息反馈至源机容器5以使得源机容器5能够及时重启该容器服务。例如,当守护进程可以查看该容器所处的运行状态,且该容器提供的服务可以正常访问时,则表明容器恢复操作执行成功。
实施例3
本实施例是对前述实施例的进一步改进,重复的内容不再赘述。
优选的,动态加载模块16配置为按照如下步骤将待恢复容器的相关配置信息和底层镜像信息动态加载至对应的镜像存储驱动中:
D1:判断待恢复容器是否属于本地容器,在待恢复容器属于本地容器的情况下,直接启动待恢复容器。
D2:在待恢复容器属于异地迁移容器的情况下,根据镜像层之间的父子关系将待恢复容器的镜像层元数据加载至镜像层存储驱动,并将可读写层加载至镜像层存储驱动。
D3:加载容器信息。例如,读取docker/containers/id/目录下的容器配置文件config.v2.json至容器对象结构中。
D4:根据加载的容器对象结构获得该容器的镜像ID,并加载其镜像元数据到镜像存储驱动。
D5:注册容器对象到容器缓存管理结构。
D6:根据加载的容器信息得到数据卷的挂载信息并将该挂载信息注册到数据卷的管理驱动对象中。
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。
Claims (10)
1.面向Docker容器的在线迁移系统实现和优化方法,其特征在于,所述在线迁移系统实现和优化方法至少包括如下步骤:
基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;
基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;
按照执行Pre-Copy机制的方式实现内存的迭代同步;
在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。
2.根据权利要求1所述的在线迁移系统实现和优化方法,其特征在于,所述镜像层数据的整合收集至少包括如下步骤:
基于当前文件系统和容器号确定该容器的镜像层标签之间的父子层级关系,并基于所述容器号收集容器的配置信息;
基于所述容器号和容器配置文件在镜像管理目录中整合镜像层元数据信息及容器镜像元数据信息;
基于所述容器配置文件的挂载点字段确定数据卷挂载点信息。
3.根据权利要求2所述的在线迁移系统实现和优化方法,其特征在于,内存的迭代同步至少包括如下步骤:
创建第一检查点镜像文件,按照存放至指定目录的方式将其同步至所述目的机容器,并按照配置-pre-dump参数以使得源机容器的服务进程保持开启的方式完成内存的第一轮迭代同步;
按照将所述第一检查点镜像文件作为父镜像并指定-parent参数的方式创建第二轮迭代同步的第二检查点镜像文件;
在所述第二检查点镜像文件满足第一阈值条件、第二阈值条件和第三阈值条件中的至少一个的情况下,按照将所述第二检查点镜像文件同步至目的机容器的方式完成内存的迭代同步。
4.根据权利要求3所述的在线迁移系统实现和优化方法,其特征在于,所述第一阈值条件配置为需要传送的内存文件小于第一设定阈值;
所述第二阈值条件配置为迭代次数大于第二设定阈值;
所述第三阈值条件配置为相邻的两次迭代同步过程中各自对应的内存文件大小的比值大于第三设定阈值。
5.根据权利要求4所述的在线迁移系统实现和优化方法,其特征在于,所述容器恢复操作至少包括如下步骤:
按照指定容器号和内存镜像文件的方式启动所述目的机容器;
在按照执行本地化判断的方式确定待恢复容器属于异地迁移容器的情况下,按照将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中的方式以使得所述目的机容器能够对异地迁移容器进行识别;
在所述容器恢复操作执行成功的情况下,生成迁移成功消息并反馈至源机容器,或者
在所述容器恢复操作执行失败的情况下,生成恢复失败消息并反馈至源机容器以重启容器服务。
6.根据权利要求5所述的在线迁移系统实现和优化方法,其特征在于,将待恢复容器的配置信息和底层镜像信息动态加载至镜像存储驱动中至少包括如下步骤:
在所述待恢复容器属于本地容器的情况下,直接启动所述待恢复容器;
在所述待恢复容器属于异地迁移容器的情况下,根据镜像层之间的父子关系将待恢复容器的镜像层元数据和可读写层均加载至镜像层存储驱动;
读取容器配置文件至容器对象结构中;
基于所述容器对象结构获取容器的镜像ID并加载其镜像元数据至镜像存储驱动中;
将该容器对象注册至容器缓存管理结构中;
根据加载的容器信息获取数据卷的挂载信息并将其注册至数据卷的管理驱动对象中。
7.根据权利要求6所述的在线迁移系统实现和优化方法,其特征在于,所述镜像层数据至少包括镜像层元数据,所述镜像层元数据按照如下步骤进行收集:
基于容器号确定/image/fs-driver/layerdb/mounts中的容器号所对应的目录;
根据所述目录下的parent文件记录信息,在/image/fs-driver/layerdb/sha256/layer-id确定父镜像层的镜像层元数据;
基于parent文件迭代的方式收集镜像层元数据。
8.根据权利要求7所述的在线迁移系统实现和优化方法,其特征在于,所述镜像层数据还包括镜像元数据和数据卷数据,所述镜像元数据和数所述据卷数据按照如下步骤进行收集:
基于容器配置文件中json数据的Image字段解析确定容器的镜像ID,在/image/fs-driver/imagedb/目录中完成镜像元数据的收集;
基于所述数据卷挂载点信息的json数据中的Name和Source字段确定数据卷的挂载位置并定位数据卷根目录以完成数据卷数据的收集。
9.面向Docker容器的在线迁移系统,其特征在于,所述在线迁移系统至少包括文件传输模块(301)、内存同步模块(302)、容器控制模块(303)和冗余处理模块(304),其中:
所述文件传输模块(301)配置为基于不同的容器文件系统及其镜像层的父子关系确定镜像层数据的整合收集机制以完成所述镜像层数据的整合收集;
所述冗余处理模块(304)配置为基于父镜像层与子镜像层之间的Diff命令以确定所述镜像层数据的最新版本,并实现所述镜像层数据的最新版本在源机容器与目的机容器之间的传输以完成所述镜像层数据的迭代同步;
所述内存同步模块(302)配置为按照执行Pre-Copy机制的方式实现内存的迭代同步;
所述容器控制模块(303)配置为在所述镜像层数据和所述内存的迭代同步均执行完成的情况下,执行所述目的机容器的容器恢复操作。
10.根据权利要求9所述的在线迁移系统,其特征在于,所述文件传输模块(301)还配置为按照如下步骤完成所述镜像层数据的整合收集:
基于当前文件系统和容器号确定该容器的镜像层标签之间的父子层级关系,并基于所述容器号收集容器的配置信息;
基于所述容器号和容器配置文件在镜像管理目录中整合镜像层元数据信息及容器镜像元数据信息;
基于所述容器配置文件的挂载点字段确定数据卷挂载点信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910342058.7A CN110119377B (zh) | 2019-04-24 | 2019-04-24 | 面向Docker容器的在线迁移系统实现和优化方法 |
US16/774,028 US10768973B1 (en) | 2019-04-24 | 2020-01-28 | Method for implementation and optimization of online migration system for dockers container |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910342058.7A CN110119377B (zh) | 2019-04-24 | 2019-04-24 | 面向Docker容器的在线迁移系统实现和优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110119377A true CN110119377A (zh) | 2019-08-13 |
CN110119377B CN110119377B (zh) | 2021-01-15 |
Family
ID=67521566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910342058.7A Active CN110119377B (zh) | 2019-04-24 | 2019-04-24 | 面向Docker容器的在线迁移系统实现和优化方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10768973B1 (zh) |
CN (1) | CN110119377B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971468A (zh) * | 2019-12-12 | 2020-04-07 | 广西大学 | 一种基于脏页预测的延迟拷贝增量式容器检查点处理方法 |
CN111309446A (zh) * | 2020-03-10 | 2020-06-19 | 山东汇贸电子口岸有限公司 | 一种基于分层管理的快速发布大量docker镜像的方法 |
CN111432006A (zh) * | 2020-03-30 | 2020-07-17 | 中科九度(北京)空间信息技术有限责任公司 | 一种轻量级资源虚拟化与分配方法 |
CN111459416A (zh) * | 2020-04-24 | 2020-07-28 | 杭州网银互联科技股份有限公司 | 一种基于分布式存储的热迁移系统及其迁移方法 |
CN111523111A (zh) * | 2020-04-20 | 2020-08-11 | 北京中软华泰信息技术有限责任公司 | 一种用于k8s环境的docker白名单执行控制方法 |
CN112379924A (zh) * | 2020-11-04 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种基于容器模板的国产应用跨系统迁移方法 |
CN113608840A (zh) * | 2021-08-10 | 2021-11-05 | 中国联合网络通信集团有限公司 | 容器迁移方法和装置 |
CN113806323A (zh) * | 2020-06-11 | 2021-12-17 | 中移(苏州)软件技术有限公司 | 数据处理方法、装置、电子设备和计算机存储介质 |
CN113806009A (zh) * | 2021-08-05 | 2021-12-17 | 厦门市美亚柏科信息股份有限公司 | 一种Docker容器自动重建方法、终端设备及存储介质 |
CN113835930A (zh) * | 2021-09-26 | 2021-12-24 | 杭州谐云科技有限公司 | 一种基于云平台的缓存服务恢复方法、系统和装置 |
CN115292051A (zh) * | 2022-09-26 | 2022-11-04 | 城云科技(中国)有限公司 | 一种gpu资源pod的热迁移方法、装置及应用 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10970258B2 (en) * | 2018-02-23 | 2021-04-06 | Red Hat, Inc. | Managing container-image layers |
CN112328359B (zh) * | 2020-10-30 | 2022-06-17 | 烽火通信科技股份有限公司 | 避免容器集群启动拥塞的调度方法和容器集群管理平台 |
US11748153B2 (en) * | 2020-11-25 | 2023-09-05 | International Business Machines Corporation | Anticipated containerized infrastructure used in performing cloud migration |
US20210208863A1 (en) * | 2020-12-23 | 2021-07-08 | Intel Corporation | Methods and apparatus for loading of a container image |
US11556499B2 (en) * | 2021-01-21 | 2023-01-17 | International Business Machines Corporation | Container image migration service |
CN113220418B (zh) * | 2021-05-07 | 2022-11-08 | 烽火通信科技股份有限公司 | 一种基于容器的资源管理方法和装置 |
US11765098B1 (en) * | 2022-03-22 | 2023-09-19 | Amazon Technologies, Inc. | Customized cross-premise resource selection for containerized applications |
US20230315678A1 (en) * | 2022-03-29 | 2023-10-05 | International Business Machines Corporation | Storage driver for managing a multiple layer file system on the cloud |
US11983081B1 (en) * | 2022-11-16 | 2024-05-14 | Dell Products, L.P. | Orchestration of container failover between nodes of a cluster |
CN115629827B (zh) * | 2022-12-22 | 2023-03-10 | 中国西安卫星测控中心 | 一种基于共享内存的Linux服务器多应用进程调度方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224466A (zh) * | 2015-11-17 | 2016-01-06 | 广州亦云信息技术有限公司 | 一种基于Docker的集成测试方法及系统 |
CN105893133A (zh) * | 2016-03-31 | 2016-08-24 | 乐视控股(北京)有限公司 | 基于容器技术的应用服务无缝迁移方法和系统 |
US20160274928A1 (en) * | 2015-03-20 | 2016-09-22 | International Business Machines Corporation | Virtual machine migration between hypervisor virtual machines and containers |
CN106528224A (zh) * | 2016-11-03 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种Docker容器的内容更新方法、服务器及系统 |
CN107291527A (zh) * | 2017-05-23 | 2017-10-24 | 华为技术有限公司 | 预拷贝迁移停止预判方法及装置 |
CN107590033A (zh) * | 2017-09-07 | 2018-01-16 | 网宿科技股份有限公司 | 一种创建docker容器的方法、装置和系统 |
CN107992353A (zh) * | 2017-07-31 | 2018-05-04 | 南京邮电大学 | 一种基于最小迁移量的容器动态迁移方法及系统 |
CN108182105A (zh) * | 2017-12-12 | 2018-06-19 | 苏州大学 | 基于Docker容器技术的局部动态迁移方法及控制系统 |
CN109271249A (zh) * | 2018-07-27 | 2019-01-25 | 暨南大学 | 一种基于P.haul框架的云容器预拷贝在线迁移方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9766945B2 (en) * | 2015-06-25 | 2017-09-19 | Wmware, Inc. | Virtual resource scheduling for containers with migration |
US10812582B2 (en) * | 2016-03-10 | 2020-10-20 | Vmware, Inc. | Management of applications across nodes using exo-clones |
US10200471B2 (en) * | 2016-05-23 | 2019-02-05 | Google Llc | Workload migration across a hybrid network |
-
2019
- 2019-04-24 CN CN201910342058.7A patent/CN110119377B/zh active Active
-
2020
- 2020-01-28 US US16/774,028 patent/US10768973B1/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160274928A1 (en) * | 2015-03-20 | 2016-09-22 | International Business Machines Corporation | Virtual machine migration between hypervisor virtual machines and containers |
CN105224466A (zh) * | 2015-11-17 | 2016-01-06 | 广州亦云信息技术有限公司 | 一种基于Docker的集成测试方法及系统 |
CN105893133A (zh) * | 2016-03-31 | 2016-08-24 | 乐视控股(北京)有限公司 | 基于容器技术的应用服务无缝迁移方法和系统 |
CN106528224A (zh) * | 2016-11-03 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种Docker容器的内容更新方法、服务器及系统 |
CN107291527A (zh) * | 2017-05-23 | 2017-10-24 | 华为技术有限公司 | 预拷贝迁移停止预判方法及装置 |
CN107992353A (zh) * | 2017-07-31 | 2018-05-04 | 南京邮电大学 | 一种基于最小迁移量的容器动态迁移方法及系统 |
CN107590033A (zh) * | 2017-09-07 | 2018-01-16 | 网宿科技股份有限公司 | 一种创建docker容器的方法、装置和系统 |
CN108182105A (zh) * | 2017-12-12 | 2018-06-19 | 苏州大学 | 基于Docker容器技术的局部动态迁移方法及控制系统 |
CN109271249A (zh) * | 2018-07-27 | 2019-01-25 | 暨南大学 | 一种基于P.haul框架的云容器预拷贝在线迁移方法 |
Non-Patent Citations (4)
Title |
---|
L MA等: "efficient service handoff across edge servers via docker container migration", 《DOI.ACM.ORG》 * |
LELE M等: "Efficient service handoff across edge servers via", 《IN PROCEEDINGS OF THE SECOND ACM/IEEE SYMPOSIUM ON》 * |
吴松等: "操作系统虚拟化的研究现状与展望", 《计算机研究与发展》 * |
毛祺等: "基于docker swarm集群的容器迁移策略的实现", 《信息技术》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971468A (zh) * | 2019-12-12 | 2020-04-07 | 广西大学 | 一种基于脏页预测的延迟拷贝增量式容器检查点处理方法 |
CN110971468B (zh) * | 2019-12-12 | 2022-04-05 | 广西大学 | 一种基于脏页预测的延迟拷贝增量式容器检查点处理方法 |
CN111309446A (zh) * | 2020-03-10 | 2020-06-19 | 山东汇贸电子口岸有限公司 | 一种基于分层管理的快速发布大量docker镜像的方法 |
CN111432006A (zh) * | 2020-03-30 | 2020-07-17 | 中科九度(北京)空间信息技术有限责任公司 | 一种轻量级资源虚拟化与分配方法 |
CN111432006B (zh) * | 2020-03-30 | 2023-03-31 | 中科九度(北京)空间信息技术有限责任公司 | 一种轻量级资源虚拟化与分配方法 |
CN111523111A (zh) * | 2020-04-20 | 2020-08-11 | 北京中软华泰信息技术有限责任公司 | 一种用于k8s环境的docker白名单执行控制方法 |
CN111523111B (zh) * | 2020-04-20 | 2023-07-07 | 北京中软华泰信息技术有限责任公司 | 一种用于k8s环境的docker白名单执行控制方法 |
CN111459416A (zh) * | 2020-04-24 | 2020-07-28 | 杭州网银互联科技股份有限公司 | 一种基于分布式存储的热迁移系统及其迁移方法 |
CN113806323A (zh) * | 2020-06-11 | 2021-12-17 | 中移(苏州)软件技术有限公司 | 数据处理方法、装置、电子设备和计算机存储介质 |
CN112379924B (zh) * | 2020-11-04 | 2023-03-07 | 福建亿榕信息技术有限公司 | 一种基于容器模板的国产应用跨系统迁移方法 |
CN112379924A (zh) * | 2020-11-04 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种基于容器模板的国产应用跨系统迁移方法 |
CN113806009A (zh) * | 2021-08-05 | 2021-12-17 | 厦门市美亚柏科信息股份有限公司 | 一种Docker容器自动重建方法、终端设备及存储介质 |
CN113608840B (zh) * | 2021-08-10 | 2023-06-20 | 中国联合网络通信集团有限公司 | 容器迁移方法和装置 |
CN113608840A (zh) * | 2021-08-10 | 2021-11-05 | 中国联合网络通信集团有限公司 | 容器迁移方法和装置 |
CN113835930A (zh) * | 2021-09-26 | 2021-12-24 | 杭州谐云科技有限公司 | 一种基于云平台的缓存服务恢复方法、系统和装置 |
CN113835930B (zh) * | 2021-09-26 | 2024-02-06 | 杭州谐云科技有限公司 | 一种基于云平台的缓存服务恢复方法、系统和装置 |
CN115292051B (zh) * | 2022-09-26 | 2023-01-03 | 城云科技(中国)有限公司 | 一种gpu资源pod的热迁移方法、装置及应用 |
CN115292051A (zh) * | 2022-09-26 | 2022-11-04 | 城云科技(中国)有限公司 | 一种gpu资源pod的热迁移方法、装置及应用 |
Also Published As
Publication number | Publication date |
---|---|
US10768973B1 (en) | 2020-09-08 |
CN110119377B (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119377A (zh) | 面向Docker容器的在线迁移系统实现和优化方法 | |
US11099956B1 (en) | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations | |
US11294768B2 (en) | Live browsing of backed up data residing on cloned disks | |
US20240320107A1 (en) | Hypervisor-independent reference copies of virtual machine payload data | |
US10698866B2 (en) | Synchronizing updates across cluster filesystems | |
Ma et al. | Efficient live migration of edge services leveraging container layered storage | |
US11349917B2 (en) | Replication handling among distinct networks | |
US11789638B2 (en) | Continuing replication during storage system transportation | |
US8326800B2 (en) | Seamless upgrades in a distributed database system | |
US20190354628A1 (en) | Asynchronous replication of synchronously replicated data | |
US9235482B2 (en) | Consistent data retrieval in a multi-site computing infrastructure | |
US11200124B2 (en) | Assigning backup resources based on failover of partnered data storage servers in a data storage management system | |
US20200089409A1 (en) | Redundant distributed data storage system | |
EP3961365A1 (en) | Synchronously replicating datasets and other managed objects to cloud-based storage systems | |
US8688645B2 (en) | Incremental restore of data between storage systems having dissimilar storage operating systems associated therewith | |
US20220253219A1 (en) | Transitioning Between Replication Sources For Data Replication Operations | |
CN102394923A (zh) | 一种基于n×n陈列结构的云系统平台 | |
US20050055328A1 (en) | Method and apparatus for data integration | |
JPH0713751A (ja) | ファイル・システムの副作用の選択的追加装置 | |
JP2007525765A (ja) | データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法 | |
US10852985B2 (en) | Persistent hole reservation | |
WO2023070025A1 (en) | Declarative provisioning of storage | |
CN115168318A (zh) | 数据迁移的控制方法、装置和存储介质及电子设备 | |
EP4204942A1 (en) | Creating a virtual storage system | |
Walters et al. | High Availability |
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 |