CN111190688B - 一种面向云数据中心的Docker迁移方法及系统 - Google Patents

一种面向云数据中心的Docker迁移方法及系统 Download PDF

Info

Publication number
CN111190688B
CN111190688B CN201911316029.XA CN201911316029A CN111190688B CN 111190688 B CN111190688 B CN 111190688B CN 201911316029 A CN201911316029 A CN 201911316029A CN 111190688 B CN111190688 B CN 111190688B
Authority
CN
China
Prior art keywords
container
migration
node
load
migrated
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
CN201911316029.XA
Other languages
English (en)
Other versions
CN111190688A (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201911316029.XA priority Critical patent/CN111190688B/zh
Publication of CN111190688A publication Critical patent/CN111190688A/zh
Application granted granted Critical
Publication of CN111190688B publication Critical patent/CN111190688B/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开一种面向云数据中心的Docker迁移方法及系统,收集集群中各个物理节点的负载信息值并量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停运行的情况,产生反馈信息,在超载或空载节点上使用热点容器选择算法选择待迁移的容器,并根据待迁移容器的资源需求向量和其他节点的剩余资源量做亲和度匹配,选出目标节点集。然后在目标节点集中,根据概率选择算法选择最佳目标节点,将待迁移的容器迁移到目标节点恢复执行。本发明以最小迁移量、最短迁移时间和最低能耗为原则,进行容器迁移方法的设计,可以有效减少集群由于某个计算节点出现故障带来的损失,提高现有集群的可靠性和利用率,实现负载均衡,为集群提供了更高的可用性。

Description

一种面向云数据中心的Docker迁移方法及系统
技术领域
本发明属于计算机应用领域,具体涉及一种面向云数据中心的Docker迁移方法及系统。
背景技术
云计算作为一种新兴的计算模式,近几年受到越来越多的关注和应用,随着云服务规模的扩大,数据中心不断的扩张,为了可以在大规模的云服务平台下有效实现容灾和负载均衡,将计算资源进行有效分配,在线迁移技术就不得不引起人们的重视。同时,高性能计算的发展也面临着众多挑战,其中最突出的两个问题是系统的低可靠和高耗能。针对以上问题,如何通过迁移技术和迁移策略保证并行程序的可靠运行以及集群的负载均衡更是研究的重点。
传统模式下,由于任务的计算量非常庞大并且依赖的环境非常复杂,单纯的做任务迁移很容易出现迁移代价过大和环境不兼容的情况,因此可以考虑通过虚拟机迁移来解决兼容性和迁移代价过高的问题,从而提高计算资源的利用率,但是在高性能计算中心,由于需要充分利用计算资源的硬件能力,使用虚拟机来运行任务会有大概30%的性能损失,所以并不是最佳的方案选择。而随着人们容器概念的理解不断深入,以及最近几年Docker容器的持续火热使人们对云服务的模式产生了新的思考,容器将给云带来更轻便,更灵活,更密集的服务能力。
Docker容器是一种轻量级的虚拟化解决方案,通过引入分层文件系统构建和高效的镜像机制,提高了资源利用率,极大地提升了用户体验。但是相比于虚拟机,一方面Docker容器目前还没有一套成熟的迁移机制。另一方面,在操作系统的角度来看,容器就相当于一个个的进程组在其中运行,而正是容器与内核这种密切的关联对容器的迁移技术提出了挑战,迁移过程中的状态信息及资源都分散在操作系统甚至内核之中,容器的迁移也就变的更加复杂。
通过研究发现,要实现云数据中心的灾备和集群的负载均衡,提高现有集群的可靠性和资源利用率,研究并实现一种Docker容器的迁移方法及系统具有十分重要的意义。
发明内容
为解决现有技术中存在的问题,本发明目的在于提供一种面向云数据中心的Docker迁移方法及系统,本发明能够有效减少集群由于某个计算节点出现故障带来的损失,提高现有集群的可靠性和利用率,同时实现集群各计算节点之间的负载均衡,为集群提供了更高的可用性。
为实现上述目的,本发明采用的技术方案如下:
一种面向云数据中心的Docker迁移方法,包括如下步骤:
S1,设定集群节点的双阈值(即超载阈值和空载阈值),收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停的情况,则触发迁移,并产生反馈信息;
S2,根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的热点容器;然后再根据目标节点选择算法,将待迁移热点容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,根据概率算法选择最佳目标节点,再将待迁移热点容器的ID和目标节点的IP地址信息传递出去;
S3,获取待迁移容器的ID和目标节点的IP地址信息,检测该待迁移热点容器能否被迁移以及和目标节点是否匹配,然后选择迁移方法,将待迁移容器迁移到目标节点并恢复运行。
S1中,收集各个物理节点的负载信息时,通过第三方库psutil间隔时间T获取整个集群中各物理节点和容器的各项性能监控数据,T值根据节点负载变化动态调整。
S1中,设定超载阈值,当节点某项负载值达到超载阈值,触发迁移。具体的,为了防止触发迁移过程中出现峰值误触发现象,设置为未来监测的N个某一项负载值有K个超过设定的阈值,则再触发迁移。
设定空载阈值,当某个节点的所有负载值都低于设定的空载阈值时,触发迁移。
S2中,热点容器选择算法是根据被触发节点的触发类型和该节点上容器的负载特征选择迁移的容器;
如果是触发类型是超载,对于某一超载负载(例如CPU负载),利用最佳适应算法按照该负载(CPU)与超载部分的使用率差值对容器进行一次排序;然后利用历史的负载使用率数据和回归算法拟合,预测该节点上每个容器的负载增长速度,根据增长速度再做一次排序,对两次排序进行加权,优先迁移占有量高且增长速度块的容器,直至阈值达到正常范围;
如果触发类型是空载,将该节点的剩余容器都标注为热点容器,如果有合适的目标节点(即所有负载值始终低于超载阈值的节点),则将该节点迁移出去,然后将该节点休眠,以降低能耗;如果没有合适的目标节点,则不进行迁移。
在进行目标节点选择算法时,进行资源属性向量化,以各种资源利用率为统一单位进行归一化处理,然后计算亲和度(即待迁移容器的属性向量和其他节点的属性向量的余弦值),对其他的物理节点进行资源类型的亲和度排序,从而选择最佳目标节点;同时要使目标节点的负载始终低于超载阈值,如果没有合适节点,开启额外的休眠节点或者产生超载告警信息。
目标节点选择算法过程中,从排好的物理节点集合中按预设比例选出前K个满足资源需求的节点组成目标物理节点子集,采用概率算法从前K个节点中选出最终的目标节点,概率算法同时保证亲和度越高的节点被选中的概率越大。
前k个节点中第i个节点被选中的概率Pi通过以下公式确定:
Figure BDA0002325853210000031
其中,Ri为与节点i的亲和度,亲和度越高的节点被选中的概率越高。
S3中,选择迁移方法时,对于容器中运行的不同应用程序的要求使用不同的迁移方法,迁移方法包括冷迁移和热迁移。
对实时性要求不高的容器(即可以承受秒级暂停),则进行冷迁移,实时性要求高的容器(即不能承受暂停的容器)使用热迁移;冷迁移时,使用共享存储或者私有镜像仓库的方式,将容器镜像传输或者挂载到目标节点,使用镜像重新执行容器,进行恢复;热迁移基于CRIU工具来实现。
一种实现所述面向云数据中心的Docker迁移方法的系统,包括监控模块、决策模块、迁移模块和评估模块,其中:
监控模块:用于收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停的情况,则触发迁移,并产生反馈信息给决策模块;
决策模块:用于根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的热点容器;然后再根据目标节点选择算法,将待迁移热点容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,使用概率算法选择最佳目标节点,再将待迁移热点容器的ID和目标节点的IP地址信息传递给迁移模块;
迁移模块:用于获取待迁移容器的ID和目标节点的IP地址信息,检测该待迁移热点容器能否被迁移,以及和目标节点是否匹配,然后选择迁移方法,将待迁移容器迁移到目标节点并恢复运行。
所述系统还包括评估模块,评估模块用于在迁移完成后,记录此次迁移的源节点和目标节点的IP地址,迁移容器的ID,迁移时间消耗和迁移次数,用于后续的动态阈值调整。
本发明具有如下有益效果:
本发明通过收集集群中各个物理节点的负载信息值并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停运行的情况,产生告警信息,根据告警信息,在超载或空载节点上使用热点容器选择算法选择待迁移的容器,并根据待迁移容器的资源需求向量和其他节点的剩余资源量做亲和度匹配,选出目标节点集。然后在目标节点集中,根据概率选择算法选择最佳目标节点,将待迁移的容器迁移到目标节点恢复执行。本发明以最小迁移量、最短迁移时间和最低能耗为原则,进行容器迁移方法的设计,可以有效减少集群由于某个计算节点出现故障带来的损失,提高现有集群的可靠性和利用率,同时实现集群各计算节点之间的负载均衡,为集群提供了更高的可用性。
附图说明
图1是本发明一种面向云数据中心的Docker迁移方法结构图。
图2是本发明一种面向云数据中心的Docker迁移系统框架图。
图3是本发明一种面向云数据中心的Docker迁移方法流程图。
图4是本发明一种面向云数据中心的节点负载判断触发迁移的机制图。
图5是本发明一种面向云数据中心的被迁移容器选择的流程图。
图6是本发明一种面向云数据中心的Docker冷迁移示意图。
图7是本发明一种面向云数据中心的Docker基于CRIU工具的热迁移示意图。
具体实施方式
下面结合说明书附图和实施例来对本发明做进一步的说明。
本发明的面向云数据中心的Docker迁移方法,包括如下步骤:
S1,设定集群节点的双阈值(即超载阈值和空载阈值),收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停的情况,则触发迁移,并产生反馈信息;
S2,根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的热点容器;然后再根据目标节点选择算法,将待迁移热点容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,根据概率算法选择最佳目标节点,再将待迁移热点容器的ID和目标节点的IP地址信息传递出去;
S3,获取待迁移容器的ID和目标节点的IP地址信息,检测该待迁移热点容器能否被迁移,以及和目标节点是否匹配,然后选择迁移方法,将待迁移容器迁移到目标节点并恢复运行。
如图1所示,该迁移调度框架主要基于Docker容器技术,研究云环境下的容器迁移机制,并通过改进热点容器选择算法,目标节点选择算法以及迁移算法来减少不必要的开销,降低迁移代价。
整个发明的具体框架图参见图2,框架主要划分为监控模块、决策模块迁移模块和评估模块。各个模块的功能和整个容器动态迁移方法如下:首先监控模块主要负责收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到超载阈值、低于空载阈值或者由于损坏导致容器暂停的情况,产生反馈信息给决策模块。决策模块根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的容器,将空载节点上的剩余所有容器标注为待迁移的容器,并根据待迁移容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,根据概率算法选择最佳目标节点,然后将待迁移容器的ID和目标节点的IP地址信息传递给迁移模块。迁移模块不仅负责检测该容器能否被迁移和目标节点是否匹配,还需要根据最小迁移量算法,将待迁移容器迁移到目标节点并恢复运行。评估模块记录此次迁移信息和迁移代价即迁移所消耗的时间和迁移次数。整个发明的具体迁移流程图参见图3。
作为本发明优选的实施方案,S1中,通过第三方库psutil间隔时间T获取整个集群中各物理节点和容器的各项性能监控数据。T值可以根据节点负载变化动态调整。当负载的某一项未来监测的N个负载值有K个(根据实验情况设定)接近超载阈值时,系统将处于不稳定状态,这时容器迁移将会被触发以减小物理主机负载。同理,当检测到某个节点的所有负载值都低于空载阈值时,这时空载节点上的所有容器也将迁移出去,并将该空载节点休眠来减少能耗。可以根据不同需求自行设置阈值,以提高灵活性。定义某一物理节点的CPU、内存使用率的最大阈值和最小阈值分别为Ucmax、Ucmin、Ummax、Ummin。物理节点的负载判断触发机制参见图4。
作为本发明优选的实施方案,S1中,设置集群节点的cpu和内存负载双阈值,设定超载阈值,当节点某项负载值达到超载阈值,触发迁移。设定空载阈值,当某个节点的所有负载值都低于设定的空载阈值时,触发迁移。通过监测节点负载值变化来触发迁移,为了防止触发迁移过程中出现峰值误触发现象,设置为未来监测的N个某一项负载值有K个超过设定的阈值,则再触发迁移。同时设置空载阈值,将容器迁移在尽可能少的物理节点上,然后将空闲节点休眠,能够节省大量能耗。
作为本发明优选的实施方案,S2中,为了提高集群的整体性能,尽量平衡使用各个物理节点的资源,本算法根据被触发节点的触发类型和该节点上容器的负载特征选择迁移的容器。例如超载节点是CPU负载达到阈值,利用最佳适应算法按照CPU负载与超载部分的使用率差值对容器进行一次排序,然后利用历史的负载使用率数据和回归算法拟合,预测该节点上每个容器的负载增长速度,根据增长速度再做一次排序,对两次排序进行加权,优先迁移占有量高且增长速度块的容器,直到超载节点的CPU使用率达到正常范围之内。空载节点即把所有的容器标注为热点容器。参见图5。
作为本发明优选的实施方案,S2中,考虑到容器可能在较短的时间内在CPU和内存占有量等可能产生重要变化。如果一个容器当前占有量较大,列为热点容器,而在一段时间过去之后,容器的CPU、内存利用率大大降低,那么这次迁移是不必要的,减少了不必要的迁移。热点容器选择算法(以CPU负载超载为例)步骤如下:
输入:热点节点集合S={s1,s2,s3…sn}
步骤1,对热点节点Si上的所有容器Ci={ci1,ci2,ci3…cin}的CPU负载值和超载部分值相减,对差值进行排序,优先排序正值,得到排序序列pri1。
步骤2,对该热点节点上的所有容器,用历史的负载使用率数据和回归算法拟合,按照增长速度排序,得到排序序列pri2。
步骤3,对两次排序结果进行加权重排,得到最终排序序列pri3。
pri3(Ci)=pri1(Ci)*μ+pri2(Ci)*(1-μ)
输出:待迁移的热点容器排序集合。
按照排序序列pri3迁移容器,直到热点节点的CPU负载值低于超载阈值。
其中:S:热点服务器集合,Si:第i个热点服务器,Ci:是服务器Si上的容器集合,pri1:根据预测算法对热点容器进行排序,pri2:根据容器cpu占有率对热点容器排序,pri3:对pri1和pri2进行综合排序。
作为本发明优选的实施方案,S2中,在进行目标节点选择算法时步骤如下:
步骤1,计算好每一个容器所需要的各种资源条件和每个物理节点现有的资源状况,并进行属性向量化。例如,对于某个节点Ni的CPU资源、内存资源和带宽资源向量化为(Ncpu,Nmem),同时对待迁移容器Ci的CPU资源、内存资源和带宽资源向量化为(Ccpu,Cmem),以各种资源利用率为统一单位进行归一化处理。
步骤2,通过计算待迁移容器的属性向量和其他节点的属性向量的余弦值,对其他的物理节点进行资源类型的匹配度排序。
步骤3,从排好的物理节点集合中按一定比例选出前k个满足资源需求的节点组成目标物理节点子集,确保目标节点的负载值始终低于超载阈值。对于超载节点没有合适的目标物理节点(即负载值始终低于超载阈值的节点)情况,如果有休眠节点,可以迁移到休眠节点,没有则产生告警信息。对于空载节点没有合适的目标物理节点,则不进行迁移。
步骤4,采用概率算法从前k个节点中选出最终的目标节点。其中,前k个节点中第i个节点被选中的概率Pi由以下公式决定
Figure BDA0002325853210000081
其中,Ri为与节点i的亲和度。即亲和度越高的节点被选中的概率越高。
作为本发明优选的实施方案,S2中,避免了传统算法的弊端,即传统算法通常选择当前集群中性能最好负载最轻的节点作为目标节点。但是当集群的规模较大时,这种方法会使系统中出现剧烈抖动现象,即在某一时刻有大量容器同时迁移到该节点上造成该节点负载急剧上升而需要将容器迁出,造成集群稳定性较差。
作为本发明优选的实施方案,S3中,选择迁移方法时,对于容器中运行的不同应用程序的要求使用不同的迁移方法,迁移方法包括冷迁移和热迁移。实时性要求不高的应用程序即可以承受秒级短暂暂停,可以采用冷迁移,使用save&load命令,将目前的容器状态commit生成新的镜像,然后把该镜像保存导出传输到目标容器,重新恢复执行;而传输的方式可以上传公共仓库,或者线下保存,再拷贝到目标节点,参见图6。实时性要求高的应用程序即不能承受短暂暂停的可以采用热迁移,通常使用CRIU工具来实现。整体思路是对一个容器进行checkpoint操作,冻结正在运行的应用程序进程,并将其导出为磁盘上的文件集合,使用这一系列文件在目标节点上进行容器的restore恢复工作,参见图7。
本发明设计了一种实现所述面向云数据中心的Docker迁移方法的系统,包括监控模块、决策模块、迁移模块和评估模块,其中:
监控模块:用于收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停的情况,则触发迁移,并产生反馈信息给决策模块;
决策模块:用于根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的热点容器;然后再根据目标节点选择算法,将待迁移热点容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,使用概率算法选择最佳目标节点,再将待迁移热点容器的ID和目标节点的IP地址信息传递给迁移模块;
迁移模块:用于获取待迁移容器的ID和目标节点的IP地址信息,检测该待迁移热点容器能否被迁移,以及和目标节点是否匹配,然后选择迁移方法,将待迁移容器迁移到目标节点并恢复运行。
所述系统还包括评估模块,评估模块用于在迁移完成后,记录此次迁移的源节点和目标节点的IP地址,迁移容器的ID,迁移时间消耗和迁移次数,用于后续的动态阈值调整。
实施例
为了实现上述目的,本实施例设计并实现了一种能够处理节点间负载均衡及容灾的高效完备的容器动态迁移系统,主要采用如下技术方案:
本实施例的面向云数据中心的Docker迁移系统划分为监控模块、决策模块、迁移模块和评估模块,利用该系统进行迁移的方法包括以下步骤:
步骤1,首先监控模块主要负责收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停的情况来触发迁移,并产生反馈信息给决策模块。
步骤2,决策模块根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的容器。
步骤3,决策模块根据目标节点选择算法,将待迁移容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,根据概率算法选择最佳目标节点,然后将待迁移容器的ID和目标节点的IP地址信息传递给迁移模块。
步骤4,迁移模块不仅负责检测该容器能否被迁移和目标节点是否匹配,还需要选择迁移方法,将待迁移容器迁移到目标节点并恢复运行。
步骤5,迁移完成后,评估模块记录此次迁移信息和迁移代价。
以下通过特定的具体实例说明本发明的实施方式。首先设定各物理节点的CPU、内存利用率对应的超载阈值为70%和80%,空载阈值为5%,排序的加权系数μ为0.5。当负载达到设定阈值后,对其未来的20个阈值进行观测,每次观测间隔时间为1s,如果至少有15个值大于阈值,则会触发迁移,设定概率选择算法k值为3,分别生成不同数量级和不同大小级别的容器进行试验。然后使用基于预测的热点容器选择算法、基于匹配概率的目标节点选择算法和CRIU来实现整个迁移。
步骤1,监测整个集群各个节点的负载情况。例如某个节点的CPU负载在设定的时间内多次超过阈值,触发迁移。
步骤2,在触发迁移的节点上选择待迁移的热点容器。超载情况先根据CPU负载占有率对节点上的容器按照最佳适应算法进行排序;再利用回归算法和历史负载数据对容器进行新的排序;对两次排序结果进行加权得到最终的迁移顺序。空载情况将空载节点的所有剩余容器标注为热点容器。
步骤3,按照上一步得到的迁移顺序,顺序迁移热点节点上的容器,直到节点上的负载值低于60%或者将剩余所有容器迁移完毕,将节点设为休眠状态。
步骤4,对每一个需要迁移的容器,用资源匹配和概率选择算法,选择最佳的目标节点和迁移方法,进行容器的迁移和恢复。
步骤5,记录此次迁移的信息,迁移次数和时间代价。
实验表明,在有此迁移系统的云数据中心中,各个节点的负载情况相差比较大,而实现自动迁移的,各个节点负载更加均衡,并且通过合并容器,集群的能耗更低。
综合以上分析,本发明的数据中心内部集群节点之间的Docker容器迁移方法及系统,通过分析容器的动态迁移过程,以最小迁移量、最短迁移时间和最低能耗为原则,进行动态迁移时热点容器、目标节点的选择和具体迁移算法的优化,可以有效减少集群由于某个计算节点出现故障带来的损失,提高现有集群的可靠性和利用率,同时实现集群各计算节点之间的负载均衡,为集群提供了更高的可用性。
本发明是一种适应当今云计算技术发展现状的技术发明,可以有效的提高云数据中心的资源利用率和集群稳定性,本发明可能产生的经济效益将取决于推广的范围和应用程度,如果能够很好地利用,将对容器技术和云计算技术的推广以及利用都将有非常重要的作用,对国民经济的发展起到强有力的推动效果,将产生较好的经济效益。所以该发明创造将会对未来技术市场的走向能起到很重要的作用。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (9)

1.一种面向云数据中心的Docker迁移方法,其特征在于,包括如下步骤:
S1,设定集群节点的超载阈值和空载阈值,收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停的情况,则触发迁移,并产生反馈信息;
S2,根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的热点容器;然后再根据目标节点选择算法,将待迁移热点容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,根据概率算法选择最佳目标节点,再将待迁移热点容器的ID和目标节点的IP地址信息传递出去;
S3,获取待迁移容器的ID和目标节点的IP地址信息,检测该待迁移热点容器能否被迁移以及和目标节点是否匹配,然后选择迁移方法,将待迁移容器迁移到目标节点并恢复运行;
S2中,热点容器选择算法是根据被触发节点的触发类型和该节点上容器的负载特征选择迁移的容器;
如果是触发类型是超载,对于某一超载负载,利用最佳适应算法按照该负载与超载部分的使用率差值对容器进行一次排序;然后利用历史的负载使用率数据和回归算法拟合,预测该节点上每个容器的负载增长速度,根据增长速度再做一次排序,对两次排序进行加权,优先迁移占有量高且增长速度块的容器,直至阈值达到正常范围;
如果触发类型是空载,将该节点的剩余容器都标注为热点容器,如果有合适的目标节点,则将该节点迁移出去,然后将该节点休眠;如果没有合适的目标节点,则不进行迁移;所述合适的目标节点为所有负载值始终低于超载阈值的节点;
在进行目标节点选择算法时,进行资源属性向量化,以各种资源利用率为统一单位进行归一化处理,然后计算亲和度,对其他的物理节点进行资源类型的亲和度排序,从而选择最佳目标节点;同时要使目标节点的负载始终低于超载阈值,如果没有合适节点,开启额外的休眠节点或者产生超载告警信息;所述亲和度为待迁移容器的属性向量和其他节点的属性向量的余弦值。
2.根据权利要求1所述一种面向云数据中心的Docker迁移方法,其特征在于,S1中,收集各个物理节点的负载信息时,通过第三方库psutil间隔时间T获取整个集群中各物理节点和容器的各项性能监控数据,T值根据节点负载变化动态调整。
3.根据权利要求1所述一种面向云数据中心的Docker迁移方法,其特征在于,S1中:
设定超载阈值,当节点某项负载值达到超载阈值,触发迁移,具体的:当设置为未来监测的N个某一项负载值有K个超过设定的阈值时,则再触发迁移,以防止触发迁移过程中出现峰值误触发现象;
设定空载阈值,当某个节点的所有负载值都低于设定的空载阈值时,触发迁移。
4.根据权利要求1所述一种面向云数据中心的Docker迁移方法,其特征在于,目标节点选择算法过程中,从排好的物理节点集合中按预设比例选出前K个满足资源需求的节点组成目标物理节点子集,采用概率算法从前K个节点中选出最终的目标节点,概率算法同时保证亲和度越高的节点被选中的概率越大。
5.根据权利要求4所述一种面向云数据中心的Docker迁移方法,其特征在于,前k个节点中第i个节点被选中的概率Pi通过以下公式确定:
Figure FDA0003832827020000021
其中,Ri为与节点i的亲和度,亲和度越高的节点被选中的概率越高。
6.根据权利要求1所述一种面向云数据中心的Docker迁移方法,其特征在于,S3中,选择迁移方法时,对于容器中运行的不同应用程序的要求使用不同的迁移方法,迁移方法包括冷迁移和热迁移。
7.根据权利要求6所述一种面向云数据中心的Docker迁移方法,其特征在于,对实时性要求不高的容器,则进行冷迁移,实时性要求高的容器使用热迁移;冷迁移时,使用共享存储或者私有镜像仓库的方式,将容器镜像传输或者挂载到目标节点,使用镜像重新执行容器,进行恢复;热迁移基于CRIU工具来实现;
所述对实时性要求不高的容器为能够承受秒级暂停的容器,实时性要求比较高的容器为不能承受暂停的容器。
8.一种实现权利要求1-7任意一项所述面向云数据中心的Docker迁移方法的系统,其特征在于,包括监控模块、决策模块、迁移模块和评估模块,其中:
监控模块:用于收集各个物理节点的负载信息并进行量化,当监测到某个节点负载达到设定阈值或者由于损坏导致容器暂停的情况,则触发迁移,并产生反馈信息给决策模块;
决策模块:用于根据反馈信息,在超载节点上根据热点容器选择算法选择待迁移的热点容器;然后再根据目标节点选择算法,将待迁移热点容器的资源需求向量和其他节点的剩余资源向量做余弦匹配,使用概率算法选择最佳目标节点,再将待迁移热点容器的ID和目标节点的IP地址信息传递给迁移模块;
迁移模块:用于获取待迁移容器的ID和目标节点的IP地址信息,检测该待迁移热点容器能否被迁移以及和目标节点是否匹配,然后选择迁移方法,将待迁移容器迁移到目标节点并恢复运行。
9.根据权利要求8所述一种实现 面向云数据中心的Docker迁移方法的 系统,其特征在于,还包括评估模块,评估模块用于在迁移完成后,记录此次迁移的源节点和目标节点的IP地址,迁移容器的ID,迁移时间消耗和迁移次数。
CN201911316029.XA 2019-12-19 2019-12-19 一种面向云数据中心的Docker迁移方法及系统 Active CN111190688B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911316029.XA CN111190688B (zh) 2019-12-19 2019-12-19 一种面向云数据中心的Docker迁移方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911316029.XA CN111190688B (zh) 2019-12-19 2019-12-19 一种面向云数据中心的Docker迁移方法及系统

Publications (2)

Publication Number Publication Date
CN111190688A CN111190688A (zh) 2020-05-22
CN111190688B true CN111190688B (zh) 2022-12-09

Family

ID=70706105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911316029.XA Active CN111190688B (zh) 2019-12-19 2019-12-19 一种面向云数据中心的Docker迁移方法及系统

Country Status (1)

Country Link
CN (1) CN111190688B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880939A (zh) * 2020-08-07 2020-11-03 曙光信息产业(北京)有限公司 容器动态迁移方法、装置及电子设备
CN112256387B (zh) * 2020-10-12 2023-06-27 麒麟软件有限公司 一种容器云平台中容器迁移方法
CN112416530B (zh) * 2020-12-08 2023-12-22 西藏宁算科技集团有限公司 弹性管理集群物理机节点的方法、装置及电子设备
CN112511649B (zh) * 2020-12-21 2022-08-26 新疆品宣生物科技有限责任公司 多接入边缘计算方法及设备
US20220334870A1 (en) * 2021-04-16 2022-10-20 International Business Machines Corporation Automatic Container Migration System
US11797282B2 (en) 2021-05-06 2023-10-24 Red Hat, Inc. Optimizing services deployment in a cloud computing environment
CN113312339B (zh) * 2021-07-28 2021-10-29 腾讯科技(深圳)有限公司 一种数据迁移的方法及装置、计算机设备和存储介质
CN113742081A (zh) * 2021-09-10 2021-12-03 中国航空工业集团公司西安航空计算技术研究所 一种基于容器技术的分布式任务迁移方法及分布式系统
CN114466067B (zh) * 2021-12-21 2023-08-04 天翼云科技有限公司 一种数据迁移的方法及装置、电子设备
CN114265704B (zh) * 2022-03-03 2022-05-17 环球数科集团有限公司 一种基于凸优化的混合容器云调度系统
CN115118729A (zh) * 2022-06-28 2022-09-27 中国电信股份有限公司 容器迁移方法、系统和存储介质
CN115361349B (zh) * 2022-07-26 2023-08-15 支付宝(杭州)信息技术有限公司 资源使用方法和装置
CN115269126B (zh) * 2022-09-28 2022-12-27 中国人寿保险股份有限公司上海数据中心 一种基于余弦相似度的云平台反亲和调度系统
CN116938943B (zh) * 2023-09-15 2024-01-12 北京城建智控科技股份有限公司 云主机调度方法、装置、设备和存储介质
CN117610970B (zh) * 2024-01-04 2024-04-02 成都开元精创信息技术有限公司 一种数据迁移工作的智能评估方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718364A (zh) * 2016-01-15 2016-06-29 西安交通大学 一种云计算平台中计算资源能力动态评估方法
CN107992353A (zh) * 2017-07-31 2018-05-04 南京邮电大学 一种基于最小迁移量的容器动态迁移方法及系统
CN108182105A (zh) * 2017-12-12 2018-06-19 苏州大学 基于Docker容器技术的局部动态迁移方法及控制系统
CN110134495A (zh) * 2019-05-21 2019-08-16 山东大学 一种容器跨主机在线迁移方法、存储介质及终端设备
CN110389838A (zh) * 2019-07-24 2019-10-29 北京邮电大学 一种适用于虚拟资源的实时调度和在线迁移管控方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092526B (zh) * 2011-10-31 2016-03-30 国际商业机器公司 在存储设备间进行数据迁移的方法和装置
US10805184B2 (en) * 2015-07-28 2020-10-13 Amazon Technologies, Inc. Data analytics and management of computing infrastructures
US11153271B2 (en) * 2018-02-16 2021-10-19 Apple Inc. Managing bearers in a radio access network
US10664324B2 (en) * 2018-05-30 2020-05-26 Oracle International Corporation Intelligent workload migration to optimize power supply efficiencies in computer data centers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718364A (zh) * 2016-01-15 2016-06-29 西安交通大学 一种云计算平台中计算资源能力动态评估方法
CN107992353A (zh) * 2017-07-31 2018-05-04 南京邮电大学 一种基于最小迁移量的容器动态迁移方法及系统
CN108182105A (zh) * 2017-12-12 2018-06-19 苏州大学 基于Docker容器技术的局部动态迁移方法及控制系统
CN110134495A (zh) * 2019-05-21 2019-08-16 山东大学 一种容器跨主机在线迁移方法、存储介质及终端设备
CN110389838A (zh) * 2019-07-24 2019-10-29 北京邮电大学 一种适用于虚拟资源的实时调度和在线迁移管控方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Grid testing engine: a infrastructure for constructing grid testing environment;Wang Yinfeng ET AL;《Journal of Xi"an Jiaotong University》;20070801;第41卷(第8期);全文 *
一种面向节能的虚拟机在线迁移解决方案;赵丹等;《计算机技术与发展》;20171019(第02期);全文 *
云计算环境下虚拟机在线迁移策略研究;苗国义等;《计算机测量与控制》;20130825(第08期);全文 *
虚拟机集群自适应负载均衡策略;孙虎;《重庆大学学报》;20120615;全文 *

Also Published As

Publication number Publication date
CN111190688A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN111190688B (zh) 一种面向云数据中心的Docker迁移方法及系统
CN110389838B (zh) 一种适用于虚拟资源的实时调度和在线迁移管控方法
US10055262B1 (en) Distributed load balancing with imperfect workload information
CN110134495B (zh) 一种容器跨主机在线迁移方法、存储介质及终端设备
CN105653591B (zh) 一种工业实时数据分级存储及迁移方法
CN108182105B (zh) 基于Docker容器技术的局部动态迁移方法及控制系统
CN109120715A (zh) 一种云环境下动态负载均衡方法
CN110231976B (zh) 一种基于负载预测的边缘计算平台容器部署方法及系统
CN103139302A (zh) 考虑负载均衡的实时副本调度方法
US8935501B2 (en) Apparatus, method, and recording medium storing a program for selecting a destination storage based on a buffer size
CN104375897A (zh) 基于最小相对负载不均衡度的云计算资源调度方法
CN103595805A (zh) 一种基于分布式集群的数据放置方法
CN110096350B (zh) 基于集群节点负载状态预测的冷热区域划分节能存储方法
CN108196935A (zh) 一种面向云计算的虚拟机节能迁移方法
WO2020134364A1 (zh) 一种虚拟机迁移方法、云计算管理平台和存储介质
CN115718644A (zh) 一种面向云数据中心的计算任务跨区迁移方法及系统
CN110688213A (zh) 一种基于边缘计算的资源管理方法、系统及电子设备
Tao et al. Load feedback-based resource scheduling and dynamic migration-based data locality for virtual hadoop clusters in openstack-based clouds
CN112799597A (zh) 面向流数据处理的分级存储容错方法
Karthikeyan et al. Saldeft: Self-adaptive learning differential evolution based optimal physical machine selection for fault tolerance problem in cloud
CN105393518B (zh) 分布式缓存控制方法及装置
Selvi et al. Popularity (hit rate) based replica creation for enhancing the availability in cloud storage
Lin et al. A workload-driven approach to dynamic data balancing in MongoDB
Qin et al. A heterogeneous hybrid storage method based on ceph erasure code
Mao et al. A fine-grained and dynamic MapReduce task scheduling scheme for the heterogeneous cloud environment

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