CN108469982B - 一种容器在线迁移方法 - Google Patents

一种容器在线迁移方法 Download PDF

Info

Publication number
CN108469982B
CN108469982B CN201810198276.3A CN201810198276A CN108469982B CN 108469982 B CN108469982 B CN 108469982B CN 201810198276 A CN201810198276 A CN 201810198276A CN 108469982 B CN108469982 B CN 108469982B
Authority
CN
China
Prior art keywords
migration
container
data
criu
resource
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.)
Active
Application number
CN201810198276.3A
Other languages
English (en)
Other versions
CN108469982A (zh
Inventor
童薇
冯丹
严康
邓竣中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201810198276.3A priority Critical patent/CN108469982B/zh
Publication of CN108469982A publication Critical patent/CN108469982A/zh
Application granted granted Critical
Publication of CN108469982B publication Critical patent/CN108469982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种容器在线迁移方法,属于计算系统虚拟化技术领域。本发明方法首先采集迁移源端和迁移目的端的资源使用情况;之后根据迁移源端和迁移目的端的资源使用情况制定迁移规则;再将迁移规则发送至迁移控制端;之后迁移控制端将迁移规则应用到容器迁移的路径上;最后利用CRIU和部署的迁移规则执行容器迁移。本发明方法根据当前源端和目的端的资源使用情况来制定和分配用于迁移的资源,通过动态地迁移控制规则确定容器迁移的路径,相较现有技术本发明方法实现了对容器迁移的可控性,提供给用户灵活的选择,实现了资源的合理分配。

Description

一种容器在线迁移方法
技术领域
本发明属于计算系统虚拟化技术领域,更具体地,涉及一种容器在线迁移方法。
背景技术
随着越来越多的用户使用容器部署有状态的工作任务,对现有的容器集群管理软件提出了新的需求,包括更长的生命周期,配置依赖,有状态的故障转移以及对性能的要求,因此容器集群管理软件开始支持有状态容器在线迁移。目前的有状态容器在线迁移是基于CRIU(Checkpoint/Restore In Userspace,用户空间的检查点/恢复)技术实现的,CRIU可以保存容器中应用程序的执行状态并在新的主机上快速恢复应用程序的执行,但是这种容器在线迁移方式是不可控的,这种不可控主要体现在如下方面:
1、容器迁移性能的不可预测性;
容器迁移性能的不可预测性体现在容器应用迁移时间的无法预测,这种不可预测性来源于可用计算资源的不确定,迁移时可用网络带宽的不确定等原因。相同的迁移数据量,网络带宽不确定会导致迁移时间的不确定;如果在迁移的过程中利用压缩去重等冗余删除技术减少迁移数据量,其迁移时间还会受限于可用的计算资源;
2、容器迁移过程中资源使用的不可控;
容器迁移会占用网络带宽资源以及目的端的内存资源,如果在迁移的过程中利用压缩,去重等机制,则还会占用源端的内存资源和CPU资源,这些资源的使用是不受制约的,过量的使用甚至会对同一主机或同一虚拟机的其他应用带来影响。我们希望能够控制迁移过程中资源的使用,给其他应用带来尽可能小影响的同时,实现资源的合理分配;
3、容器迁移路径固定;
当前的容器迁移方案中,容器迁移时容器数据的流动路径固定,无法根据物理资源的使用情况作出符合迁移规则的选择,可能导致资源的竞争和浪费。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提出一种容器在线迁移方法,其目的在于根据迁移源端和迁移目的端的资源使用情况制定迁移规则,之后将迁移规则发送至迁移控制端,接着迁移控制端将迁移规则应用到容器迁移的路径上,最后利用CRIU和部署的迁移规则执行容器迁移。由此解决现有容器在线迁移技术迁移性能、资源使用和路径不可控的技术问题。
为实现上述目的,本发明提供了一种容器迁移方法,所述方法包括:
(1)采集迁移源端和迁移目的端的资源使用情况;
(2)根据迁移源端和迁移目的端的资源使用情况制定迁移规则;
(3)将迁移规则发送至迁移控制端;
(4)迁移控制端将迁移规则应用到容器迁移的路径上;
(5)利用CRIU和部署的迁移规则执行容器迁移。
进一步地,所述步骤(1)中资源具体包括迁移源端和迁移目的端的处理器资源,内存资源和网络带宽资源。
进一步地,所述步骤(2)中迁移规则包括:迁移源端和迁移目的端地址、容器迁移的资源使用上限、容器迁移采用的数据拷贝策略、容器迁移的冗余删除策略、容器迁移的磁盘/内存缓存策略和容器迁移路径。
进一步地,所述资源使用上限包括资源使用率的上限和资源使用时间的上限。
进一步地,所述容器迁移路径包括路径中是否采用磁盘/内存缓存数据、有无压缩/加密阶段和具体压缩/加密算法;
所述数据拷贝策略包括数据预拷贝和数据后拷贝。
进一步地,所述步骤(3)中首先与迁移控制端建立网络通信连接,再将迁移规则发送给容器迁移控制端。
进一步地,所述步骤(4)具体包括:
从迁移规则中读取出迁移源端和迁移目的端的地址,建立源端与目的端的网络连接;
从迁移规则中读取迁移源端和迁移目的端的资源使用上限,分别在迁移源端和迁移目的端启动CRIU容器进程,并设置CRIU容器进程的资源使用上限;
从迁移规则中读取冗余删除策略,若有冗余删除策略,则以容器的方式在迁移源端启动冗余删除部分,在迁移目的端启动冗余恢复部分,设置冗余删除/恢复容器的资源使用上限;
连接迁移源端的CRIU容器和冗余删除容器,连接迁移目的端的冗余恢复容器和CRIU容器;
连接迁移源端的冗余删除容器和迁移源端的迁移地址,连接迁移目的端的冗余恢复容器和迁移目的端的迁移地址,从而构成一条迁移路径;
从迁移规则中读取出数据拷贝策略,设置CRIU容器的数据拷贝策略;
从迁移规则中读取出磁盘/内存缓存策略,设置冗余删除/恢复容器迁移数据时的磁盘/内存缓存策略。
进一步地,所述迁移源端与迁移目的端通过Cgroup技术限制CRIU容器进程资源使用上限。
进一步地,所述步骤(5)中执行容器迁移时容器迁移数据依据迁移规则经过CRIU快照部分,冗余删除容器,网络中传输,冗余恢复容器和CRIU恢复部分,完成迁移数据的流动。
进一步地,所述迁移数据流动过程中,若资源占用时间小于资源使用时间的上限,则在资源占用结束后立即释放资源;若资源占用时间大于资源使用时间的上限,则在资源的使用时间耗尽时停止资源的使用并释放资源。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:
(1)本发明方法通过动态地迁移控制规则确定容器迁移的路径,再加上容器迁移路径上的资源使用限制,只要给定迁移数据量,可以预测出迁移时间。例如,1GB内存页数据迁移,网络带宽限制为100MB/s,则迁移时间在10s左右;
(2)本发明方法根据当前源端和目的端的资源使用情况来制定和分配用于迁移的资源,在迁移的过程中,迁移进程无法使用超过规则制定的资源上限,无法抢占其他应用的资源,能实现资源的合理分配;
(3)本发明方法提供给用户灵活的选择,这种灵活性体现在高性能容器迁移以及迁移过程中的资源使用之间选择,如果用户迁移应用对于性能的要求并没有那么高,或者分配给应用程序迁移的资源不充足,如CPU资源不足可能无法利用冗余删除策略,网络带宽资源不足可能需要磁盘或内存缓存迁移数据,推迟传输等等,总而言之,这种灵活性是可以给用户提供控制平面的。
附图说明
图1是本发明方法的流程图;
图2是本发明方法的数据平面示意图;
图3是本发明方法的快照过程流程图;
图4是本发明方法的恢复过程流程图;
图5是LZ4压缩算法在本发明方法中的应用流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明方法的使用流程如图1所示,用户或系统管理员首先给定容器迁移的源端和目的端,然后客户端根据源端和目的端反馈的资源使用情况制定迁移规则并发送给控制器,控制器将迁移规则应用到迁移的数据平面,数据平面按照控制器制定的规则执行应用程序的迁移。在具体实施方式中,我们将利用一个压缩的例子详细介绍如何使用该平台部署软件定义的迁移策略。
本实施例包含控制平面和数据平面软件,具体运行流程如下:
1、用户或系统管理员在客户端上给定容器迁移的源端和目的端,该平台反馈给用户源端和目的端的资源使用情况;
2、用户制定迁移规则,该迁移规则应该详细说明迁移策略具备如下特征:
(21)迁移源端和目的端的地址(如IP地址和端口号);
(22)采用预拷贝还是后拷贝;
(23)是否采用冗余删除策略以及什么冗余删除策略(比如LZ4压缩);
(24)迁移进程能使用的处理器资源上限(包含源端和目的端能占用的处理器资源上限以及占用时间);
(25)迁移进程能使用的内存资源上限(包含源端和目的端能占用的内存资源以及占用时间);
(26)迁移进程能使用的带宽资源上限;
3、用户向控制器发送迁移规则,控制器接收迁移规则;用户使用客户端与控制器建立TCP连接,并发送迁移规则给控制器。
4、控制器根据迁移规则连接数据平面;
(41)从迁移规则中读取出源端和目的端的迁移地址,在目的端绑定套接字和IP地址,端口号,进入监听状态,在源端发起请求连接目的端,完成源端和目的端的网络连接;
(42)在源端建立共享网络文件系统,在目的端挂载源端的网络文件系统,用于源端和目的端的应用数据(非应用状态)共享;
(43)从迁移规则中读取出源端和目的端的处理器资源限制,内存资源限制,网络带宽限制参数,分别在源端和目的端设置CRIU容器进程的资源使用上限,设置CRIU容器进程的端口映射,并启动CRIU容器进程;
(44)从迁移规则中读取出有无冗余删除策略,以及冗余删除规则,假如迁移规则中包含LZ4压缩策略,那么以容器的方式在源端启动LZ4压缩部分,在目的端启动LZ4解压部分,可选地,启动的冗余删除容器输入端口与输出端口直连;
(45)连接源端的CRIU容器的输出端口与冗余删除容器的输入端口,连接目的端的冗余恢复容器输出端口和CRIU容器的输入端口;
(46)连接源端的冗余删除容器输出端口和源端的迁移地址,连接目的端的冗余恢复容器输入端口和目的端的迁移地址,从而构成一条迁移路径;
(47)设置迁移策略,预拷贝还是后拷贝。
5、软件定义迁移平台利用CRIU和部署的迁移规则完成应用程序迁移的数据流动;特别需要注意的是:在容器迁移的数据流动过程中,如果资源占用时间小于资源的使用时间设定,则可以在资源占用结束后立即释放;如果资源占用时间大于资源的使用时间设定,则在资源的使用时间耗尽时停止资源的使用并释放,例如压缩过程中,超过处理器资源使用时间限制则立刻停止压缩策略,开始迁移,在目的端只解压被压缩的数据,然后合并未压缩部分来恢复数据。
具体的数据平面实现架构如图2所示:
1、快照过程主要是利用CRIU对迁移进程进行快照:
为方便描述该过程的步骤,特定义CRIU进程为跟踪进程,迁移进程为被跟踪进程。快照过程具体流程图如图3所示,过程主要执行如下步骤:
(a)跟踪进程首先利用Linux内核提供的ptrace接口暂停被跟踪进程;
(b)跟踪进程向被跟踪进程上下文插入一小段执行代码,并恢复被跟踪进程的执行;
(c)被跟踪进程执行跟踪进程插入的代码,该代码用于给寄生虫代码分配内存空间,并创建子进程用于执行寄生虫代码;
(d)寄生虫代码执行时与跟踪进程建立套接字通信,用于接收跟踪进程命令;
(e)跟踪进程发送命令给寄生虫代码,命令如:收集处理器寄存器状态,内存状态,网络状态等等,也即是对迁移进程做快照。
2、从源端迁移数据到目的端:
从源端迁移数据到目的端的数据平面当前存在四种方式,如图2所示:
简单流:CRIU先将源端的数据保存到硬盘,接着利用scp/rsync将数据同步到目的端的硬盘,然后恢复阶段利用目的端的硬盘镜像数据恢复迁移应用。
目的端上的页服务器:CRIU将源端的数据直接保存在目的端的硬盘,然后恢复阶段利用目的端的硬盘镜像数据恢复迁移应用。
源端上的页服务器:CRIU将源端的数据保存在源端的硬盘,然后恢复阶段读取源端的硬盘镜像数据恢复迁移应用。
后拷贝:该数据平面描述是先将应用运行所需的最小工作集迁移到目的端,然后在应用运行过程中通过每次产生的缺页中断来请求源端的内存页。
这四种方式的数据平面很固化,难以动态的选择,并且在迁移过程中占用的网络带宽无法控制。如果占用网络带宽较少,迁移性能会很差,如果占用网络带宽较多,会影响其他应用的网络性能。
本发明在容器迁移的数据平面中的关键路径上加入新的抽象,而这样的抽象层可以通过控制器进行编程控制。数据平面的实现主要体现在两个方面:
一方面:资源使用限制:利用Linux cgroup接口对CRIU能使用的内存资源,磁盘资源,处理器资源,网络带宽进行限制。其中内存资源和处理器资源的限制既包含使用量的限制,也包含占用时间的限制。磁盘资源和网络带宽的使用限制只包含使用量的限制。
另一方面:迁移数据路径的更改:提供定义数据路径的接口,如是否选择冗余删除策略,冗余删除策略编写接口等,控制平面会根据定义的策略构建相应的数据路径。
数据平面的路径抽象包含如下部分:
(a)在CRIU对迁移进程进行快照之前:控制器给CRIU限制内存资源,处理器资源使用上限,默认是不进行内存和处理器资源的限制;
(b)CRIU执行快照完,在迁移之前:CRIU需要按照控制器制定的冗余删除策略和资源使用限制,利用处理器资源和内存资源进行冗余删除,经过冗余删除阶段后,迁移的数据可能存在冗余删除过,或未冗余删除过两类数据,该数据平面提供元数据结构标记数据的形式,提前传输到目的端以确保在目的端数据可以正确地分类恢复,接着CRIU根据控制器限定的网络带宽将数据通过网络传输到目的端,如果网络带宽不足以传输内存页数据,可以根据迁移规则将部分迁移数据缓存在源端的内存/硬盘中,推迟传输。
(c)CRIU迁移数据到达目的端:CRIU首先恢复迁移进程的进程状态,然后根据先前的元数据信息恢复内存数据。内存数据的数据平面也是可以控制的,迁移过来的数据可以先选择存入硬盘或内存,然后根据指定的规则从硬盘或内存中按内存页一页一页恢复或者并行多页同时恢复,另外结合共享内存的特性,子进程可以用父进程的内存页数据进行数据恢复。
具体的实施方式后文将以LZ4压缩策略为例进行详细介绍。虽然以LZ4压缩策略为例,但本发明不局限于单一压缩算法,也不局限于通用的压缩策略,只需要用户制定编码与对应的解码规则以及迁移过程中的资源限制规则,都可以在本平台中得到有效执行。
3、恢复过程主要是利用CRIU恢复迁移进程:
恢复过程流程图如图4所示,主要执行如下步骤:
(a)跟踪进程从迁移数据中读取被跟踪进程的寄存器状态文件,并进行反序列化;
(b)跟踪进程恢复被跟踪进程原先的堆栈数据;
(c)跟踪进程先进行内存页映射的恢复,后续按需恢复内存页;
(d)跟踪进程利用ptrace接口恢复被跟踪进程;
4、LZ4压缩策略在软件定义的容器迁移平台中的应用,LZ4压缩策略在软件定义的容器迁移平台中的应用流程图如图5所示,详细步骤如下:
(a)用户在客户端中给定迁移源端和目的端地址,资源信息采集软件收集源端和目的端的处理器,内存,网络资源的使用情况并反馈给客户端。
(b)用户根据资源使用情况编写迁移规则,迁移规则如:
{0(1/0表示有无处理器资源限制),1(占用处理器核数比例),无穷大(处理器资源占用时间∞,单位秒),
0(1/0表示有无内存资源限制),1(占用内存资源比例),无穷大(内存资源占用时间∞,单位秒),
lz4(定义压缩策略,默认会有lz4,zlib,lzo可供选择),
0(1/0表示有无带宽限制),无穷大(表示所有带宽用于迁移,可设置多少用于迁移,单位MB/s),
0(1/0表示有无硬盘限制),无穷大(表示该硬盘都用于存储迁移数据,可设置多少用于迁移,单位MB),
lz4(定义解压策略,默认会有lz4,zlib,lzo可供选择),
1(1/0表示是否采用并行内存页恢复),
1(1/0表示是否采用写时复制数据恢复),
1(1/0表示预拷贝/后拷贝)
2(如图2所示,1表示简单迁移数据流动;2表示利用目的端上的页服务器;3表示利用源端上的页服务器;4表示后拷贝)
}
(c)用户向控制器发送迁移规则
(d)控制平面读取迁移控制规则,如图5所示,只需要在原始的数据平面中加入压缩与解压两部分,步骤如下:
(d1)获取源端和目的端的迁移地址,发起远程系统调用在目的端绑定套接字和IP地址,端口号,进入监听状态,在源端发起请求连接目的端,完成源端和目的端的网络连接;
(d2)在源端建立共享网络文件系统,在目的端挂载网络文件系统,用于源端和目的端的应用数据(非应用状态)共享;
(d3)从迁移规则中读取出源端和目的端的处理器资源限制,内存资源限制,网络带宽限制参数,迁移规则中没有限制则直接启动CRIU容器进程;
(d4)从迁移规则中读取出LZ4压缩策略,由于没有资源的使用限制,则直接在源端启动LZ4压缩部分,在目的端启动LZ4解压部分;
(d5)连接源端的CRIU容器的输出端口与LZ4压缩容器的输入端口,连接目的端的LZ4解压容器输出端口和CRIU容器的输入端口;
(d6)连接源端的LZ4压缩容器输出端口和源端的迁移地址,连接目的端的LZ4解压容器输入端口和目的端的迁移地址,从而构成一条迁移路径;
(d7)设置迁移策略为预拷贝;
(d8)在目的端设置页服务器,压缩过的内存页数据直接通过网络存储在目的端,而不需要在源端缓存。
(d9)设置并行内存页恢复;
(d10)设置父子进程之间采用写时复制的内存页数据恢复。
(e)数据平面按照设置的路径规则执行容器迁移详细步骤如下:
(e1)CRIU对迁移容器进行暂停,并收集迁移容器进程的处理器寄存器状态,数据堆栈状态;
(e2)CRIU直接发送处理器寄存器状态,数据堆栈状态到目的端进行序列化存储;
(e3)CRIU将内存镜像数据通过映射端口发送到LZ4压缩容器,LZ4压缩容器压缩数据后将内存镜像元数据和数据发送到目的端,用于LZ4解压容器进行数据的恢复。程序中元数据结构:
struct page_server_iov{
u32cmd;
u32nr_pages;
u64vaddr;
u64caddr;
u64clen;
u64dst_id;
};
cmd用于LZ4压缩抽象层发送目的端的RPC系统调用;nr_pages和vaddr用于记录未压缩的内存数据信息,caddr和clen用于记录压缩后的内存数据信息,dst_id用于记录内存镜像数据的写入位置。
(e4)目的端LZ4解压抽象层首先获取步骤3)发送过来的元数据,并行读取序列化的内存数据,对比vaddr与caddr,nr_pages*PAGE_SIZE与clen,如果相等说明不需要解压该内存数据,如果不等则需要经过LZ4抽象层解压,然后将该内存数据写入到迁移容器进程的内存指定位置dst_id,也即是完成迁移容器的状态恢复。
(e5)以当前状态检查点恢复迁移容器的执行。
以上内容本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种容器在线迁移方法,其特征在于,所述方法包括:
(1)采集迁移源端和迁移目的端的资源使用情况;
(2)根据迁移源端和迁移目的端的资源使用情况制定迁移规则;步骤(2)中迁移规则包括:迁移源端和迁移目的端地址、容器迁移的资源使用上限、容器迁移采用的数据拷贝策略、容器迁移的冗余删除策略、容器迁移的磁盘/内存缓存策略和容器迁移路径;
(3)将迁移规则发送至迁移控制端;
(4)迁移控制端将迁移规则应用到容器迁移的路径上;步骤(4)具体包括:
从迁移规则中读取出迁移源端和迁移目的端的地址,建立源端与目的端的网络连接;
从迁移规则中读取迁移源端和迁移目的端的资源使用上限,分别在迁移源端和迁移目的端启动CRIU容器进程,并设置CRIU容器进程的资源使用上限;
从迁移规则中读取冗余删除策略,若有冗余删除策略,则以容器的方式在迁移源端启动冗余删除部分,在迁移目的端启动冗余恢复部分,设置冗余删除/恢复容器的资源使用上限;
连接迁移源端的CRIU容器和冗余删除容器,连接迁移目的端的冗余恢复容器和CRIU容器;
连接迁移源端的冗余删除容器和迁移源端的迁移地址,连接迁移目的端的冗余恢复容器和迁移目的端的迁移地址,从而构成一条迁移路径;
从迁移规则中读取出数据拷贝策略,设置CRIU容器的数据拷贝策略;
从迁移规则中读取出磁盘/内存缓存策略,设置冗余删除/恢复容器迁移数据时的磁盘/内存缓存策略;
(5)利用CRIU和部署的迁移规则执行容器迁移;
所述步骤(5)中执行容器迁移时容器迁移数据依据迁移规则经过CRIU快照部分,冗余删除容器,网络中传输,冗余恢复容器和CRIU恢复部分,完成迁移数据的流动;
其中,(a)在CRIU对迁移进程进行快照之前:控制器给CRIU限制内存资源,处理器资源使用上限;
(b)CRIU执行快照完,在迁移之前:CRIU需要按照控制器制定的冗余删除策略和资源使用限制,利用处理器资源和内存资源进行冗余删除,经过冗余删除阶段后,迁移的数据存在冗余删除过,或未冗余删除过两类数据,数据平面提供元数据结构标记数据的形式,提前传输到目的端以确保在目的端数据正确地分类恢复,接着CRIU根据控制器限定的网络带宽将数据通过网络传输到目的端,如网络带宽不足以传输内存页数据,根据迁移规则将部分迁移数据缓存在源端的内存/硬盘中,推迟传输;
(c)CRIU迁移数据到达目的端:CRIU首先恢复迁移进程的进程状态,然后根据先前的元数据信息恢复内存数据;内存数据的数据平面是可控制的,迁移过来的数据先选择存入硬盘或内存,然后根据指定的规则从硬盘或内存中按内存页一页一页恢复或者并行多页同时恢复,另外结合共享内存的特性,子进程用父进程的内存页数据进行数据恢复。
2.根据权利要求1所述的一种容器在线迁移方法,其特征在于,所述步骤(1)中资源具体包括迁移源端和迁移目的端的处理器资源,内存资源和网络带宽资源。
3.根据权利要求1所述的一种容器在线迁移方法,其特征在于,所述资源使用上限包括资源使用率的上限和资源使用时间的上限。
4.根据权利要求1所述的一种容器在线迁移方法,其特征在于,所述容器迁移路径包括路径中是否采用磁盘/内存缓存数据、有无压缩/加密阶段和具体压缩/加密算法;
所述数据拷贝策略包括数据预拷贝和数据后拷贝。
5.根据权利要求1所述的一种容器在线迁移方法,其特征在于,所述步骤(3)中首先与迁移控制端建立网络通信连接,再将迁移规则发送给容器迁移控制端。
6.根据权利要求1所述的一种容器在线迁移方法,其特征在于,所述迁移源端与迁移目的端通过Cgroup技术限制CRIU容器进程资源使用上限。
7.根据权利要求1所述的一种容器在线迁移方法,其特征在于,所述迁移数据流动过程中,若资源占用时间小于资源使用时间的上限,则在资源占用结束后立即释放资源;若资源占用时间大于资源使用时间的上限,则在资源的使用时间耗尽时停止资源的使用并释放资源。
CN201810198276.3A 2018-03-12 2018-03-12 一种容器在线迁移方法 Active CN108469982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810198276.3A CN108469982B (zh) 2018-03-12 2018-03-12 一种容器在线迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810198276.3A CN108469982B (zh) 2018-03-12 2018-03-12 一种容器在线迁移方法

Publications (2)

Publication Number Publication Date
CN108469982A CN108469982A (zh) 2018-08-31
CN108469982B true CN108469982B (zh) 2021-03-26

Family

ID=63264345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810198276.3A Active CN108469982B (zh) 2018-03-12 2018-03-12 一种容器在线迁移方法

Country Status (1)

Country Link
CN (1) CN108469982B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961145A (zh) * 2018-09-11 2022-01-21 创新先进技术有限公司 数据迁移方法及装置
US11175939B2 (en) * 2019-05-09 2021-11-16 International Business Machines Corporation Dynamically changing containerized workload isolation in response to detection of a triggering factor
CN110351336B (zh) * 2019-06-10 2020-05-19 西安交通大学 一种基于docker容器的边缘服务迁移方法
CN111459416B (zh) * 2020-04-24 2021-02-23 杭州网银互联科技股份有限公司 一种基于分布式存储的热迁移系统及其迁移方法
CN112286640B (zh) * 2020-11-11 2024-04-02 杭州电子科技大学 一种基于CRIU的Podman自动迁移系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885829A (zh) * 2014-04-16 2014-06-25 中国科学院软件研究所 一种基于统计的虚拟机跨数据中心动态迁移优化方法
CN104113574A (zh) * 2013-04-19 2014-10-22 中国科学院计算技术研究所 一种广域网可信虚拟机的安全迁移方法及系统
CN106155778A (zh) * 2016-07-07 2016-11-23 中国科学院声学研究所 一种应用容器的启动方法及系统
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及系统
CN106970824A (zh) * 2017-03-07 2017-07-21 华中科技大学 一种基于带宽感知的虚拟机迁移压缩方法及系统
CN107526626A (zh) * 2017-08-24 2017-12-29 武汉大学 一种基于CRIU的Docker容器热迁移方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113574A (zh) * 2013-04-19 2014-10-22 中国科学院计算技术研究所 一种广域网可信虚拟机的安全迁移方法及系统
CN103885829A (zh) * 2014-04-16 2014-06-25 中国科学院软件研究所 一种基于统计的虚拟机跨数据中心动态迁移优化方法
CN106155778A (zh) * 2016-07-07 2016-11-23 中国科学院声学研究所 一种应用容器的启动方法及系统
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及系统
CN106970824A (zh) * 2017-03-07 2017-07-21 华中科技大学 一种基于带宽感知的虚拟机迁移压缩方法及系统
CN107526626A (zh) * 2017-08-24 2017-12-29 武汉大学 一种基于CRIU的Docker容器热迁移方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LXC Container Migration in Cloudlets under Multipath TCP;Yuqing Qiu等;《2017 IEEE 41st Annual Computer Software and Applications Conference》;20171231;全文 *
Migrating LinuX Containers Using CRIU;Simon Pickartz等;《ISC High Performance 2016: High Performance Computing》;20161006;第674-684页 *

Also Published As

Publication number Publication date
CN108469982A (zh) 2018-08-31

Similar Documents

Publication Publication Date Title
CN108469982B (zh) 一种容器在线迁移方法
US9547562B1 (en) Boot restore system for rapidly restoring virtual machine backups
US8499191B2 (en) Failure recovery method for information processing service and virtual machine image generation apparatus
US8307154B2 (en) System and method for performing rapid data snapshots
US8713273B2 (en) Generating and using checkpoints in a virtual computer system
EP2577450B1 (en) Virtual machine migration techniques
US8402236B2 (en) Computer system managing volume allocation and volume allocation management method
US7840766B2 (en) Storage system and method of producing recovery volume
US7392357B2 (en) Snapshot format conversion method and apparatus
US20210263762A1 (en) Storage device-assisted live virtual machine migration
US11182188B2 (en) Elastic replication of virtual machines
US9588787B2 (en) Runtime virtual process creation for load sharing
US10572184B2 (en) Garbage collection in data storage systems
US8140790B2 (en) Failure management method in thin provisioning technology for storage
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
US20060005189A1 (en) Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
JP6046978B2 (ja) 情報処理装置およびその方法
US10649848B2 (en) Checkpoint and restart
US20230125719A1 (en) Systems and methods for continuous data protection comprising storage of completed i/o requests intercepted from an i/o stream using touch points
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
EP3926471A1 (en) Storage device-assisted live virtual machine migration
US11416157B2 (en) Storage device and data migration method
US11860802B2 (en) Instant recovery as an enabler for uninhibited mobility between primary storage and secondary storage
US20220244979A1 (en) System and method of vm recovery on s3 compatible object storage
US10983717B1 (en) Uninterrupted block-based restore using a conditional construction container

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