CN103023799B - 用于虚拟机迁移的中央控制器和虚拟机迁移方法 - Google Patents
用于虚拟机迁移的中央控制器和虚拟机迁移方法 Download PDFInfo
- Publication number
- CN103023799B CN103023799B CN201110305788.3A CN201110305788A CN103023799B CN 103023799 B CN103023799 B CN 103023799B CN 201110305788 A CN201110305788 A CN 201110305788A CN 103023799 B CN103023799 B CN 103023799B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- data stream
- migration
- link
- unit
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种用于虚拟机迁移的中央控制器,可以包括:获取单元,用于获得网络拓扑、链路带宽信息、和通信业务量信息;和数据流局部化单元,用于根据网络拓扑和当前通信业务量,执行数据流局部化处理,减少流经骨干网络的数据流,得到优化后的虚拟机位置放置方案。位于服务器中的系统管理单元的虚拟机迁移单元可以根据优化后的虚拟机位置放置方案或局部最优的虚拟机位置放置方案,执行虚拟机迁移处理。
Description
技术领域
本发明涉及数据中心领域,具体地,涉及一种虚拟机(VirtualMachine,VM)迁移设备和虚拟机迁移方法。
背景技术
由于服务需求的持续增长,用户需要把大量服务器部署在同一数据中心内,从而形成巨大的计算和服务能力。数据中心网络主要由以太网、或一些数据中心特有的拓扑结构所搭建。随着互联网和云计算服务等应用的发展,数据中心的规模日益增大,当前的数据中心包含着成千上万台的服务器和交换机。另外,数据中心通常同时支持多种不同的应用,其中一些应用要求数据中心内部不同服务器之间的大量数据通信。
数据中心内广泛使用的虚拟机技术给服务器的放置提供了额外的自由度。虚拟机迁移技术不仅提供初次部署虚拟机时的位置选择,更能让用户在虚拟机运行时自由地在数据中心内转移虚拟机。用户可以根据具体的性能需求实时优化虚拟机的位置放置方案。例如,将负载不大的一些虚拟机转移到少数几台物理服务器中,以达到节能的目的。
随着数据中心规模的扩大,数据中心的网络性能逐渐成为制约数据中心性能提升的瓶颈。很多数据中心拓扑为每一对源与目的地址提供了多条可选路由路径,然而传统的基于最短路径和散列的路由算法往往不能有效利用这些冗余路径,造成一部分链路的拥塞和另一部分链路的空置。不平衡的负载分布导致部分数据中心网络处于拥塞状态,从而影响途经该部分网络数据流的吞吐量和延迟。
传统技术通过调节路由路径来优化负载平衡。然而,过多的穿过骨干网络的数据流依然可能阻塞部分网络。在这样的情况下,只有通过改变虚拟机的相对位置才能实质性地缓解网络拥塞。
参考文献[1](ImprovingtheScalabilityofDataCenterNetworkwithTraffic-awareVirtualMachinePlacement,X.Meng等,Infocom2010)提出了使用聚类的方法来优化虚拟机的位置放置,从而降低网络中的数据传输代价。这个方法根据虚拟机的通信矩阵、和服务器间的通信代价,首先在中心控制器上对虚拟机和服务器进行聚类,然后将虚拟机迁移到对应的服务器上去,从而实现虚拟机的位置放置优化。
具体地,中心控制器首先周期性的从系统管理单元(hypervisor)或边缘交换机上提取虚拟机间的通信矩阵信息。收集到足够的信息之后,中心服务器运行服务器空位聚类算法和虚拟机聚类算法,得到虚拟机的新的位置放置。之后,中心控制器将相应的迁移指令发送给位于系统管理单元中的迁移控制器,由迁移控制器来完成虚拟机的实际迁移过程。
但是,在参考文献[1]的方案中,并未将虚拟机的迁移代价考虑在优化过程之中。事实上,迁移虚拟机涉及到大量的块数据传输,容易对数据中心网络造成短时间的拥塞。相对于调整虚拟机得到的收益,迁移虚拟机的代价常常是不可以忽略的。而在参考文献[1]的方案中,虚拟机的位置计算并未采用增量方式,即在下一轮的优化过程中并未考虑上一轮虚拟机的位置。这样的方案常常会造成不必要的、接近100%的虚拟机迁移率(即,所有虚拟机都需要迁移)。这样的迁移方案会在一个中型数据中心(~1000台服务器,~10000台虚拟机)中产生短时间的超过10TB的额外数据传输需求,从而阻塞网络,影响正常运行的软件和服务。
另外,参考文献[1]旨在优化数据传输代价函数。该代价函数对应平均意义上的网络负载。在均衡网络中,优化该函数能够提高数据吞吐量。然而,实际数据中心网络中,链路负载存在着很大的不平衡。而影响吞吐量和延迟的关键参数并不是平均意义上的数据传输代价,而是局部位置的拥塞情况。因而,为了解决局部拥塞链路,需要更直接的优化策略。
发明内容
本发明提出了一种虚拟机迁移设备和虚拟机迁移方法,用于提高数据中心网络负载平衡并消除拥塞。根据本发明,首先,在当前网络拓扑与流量数据中周期性地检测网络拥塞。如果检测到持续存在的拥塞,则触发虚拟机位置放置优化和迁移。根据本发明,首先,执行数据流局部化处理,通过改进的Kernighan-Lin算法(多路θ-Kernighan-Lin算法)实现快速的启发性优化,能够粗粒度地快速提高总体数据流的局部化,使得较少的数据流经骨干网络。然后,针对已局部化的每个局部区域,执行局部最优处理,使用精细的局部启发式搜索,寻找局部最优的虚拟机位置放置方案,使得链路负载较为均衡。最后,根据优化后的虚拟机位置放置方案,执行虚拟机迁移处理。
根据本发明的第一方案,提出了一种用于虚拟机迁移的中央控制器,可以包括:获取单元,用于获得网络拓扑、链路带宽信息、和通信业务量信息;和数据流局部化单元,用于根据网络拓扑和当前通信业务量,执行数据流局部化处理,减少流经骨干网络中的拥塞链路的数据流,得到优化后的虚拟机位置放置方案。
优选地,中央控制器还可以包括:局部最优化单元,针对已由所述数据流局部化单元局部化的每个局部区域,基于当前通信业务量,执行局部最优处理,使用精细的局部启发式搜索,均衡链路负载,得到局部最优的虚拟机位置放置方案。
优选地,中央控制器还可以包括:拥塞状态判断单元,用于根据所述获取单元所获得的链路带宽信息和通信业务量,检测当前网络中是否存在拥塞链路,如果存在拥塞链路,则所述拥塞状态判断单元通知所述数据流局部化单元执行数据流局部化处理。
更优选地,判别拥塞链路的标准可以是预先设置的。
优选地,所述数据流局部化单元可以以位于同一拓扑层的交换机/服务器/虚拟机为节点,交换机/服务器/虚拟机间的通信业务量为权重,构成一个有权无向图,并采用改进的Kernighan-Lin图划分算法执行数据流局部化处理。
更优选地,所述数据流局部化单元可以按照从核心层到边缘层的顺序,在控制每轮处理所允许移动的虚拟机个数的同时,分层递归执行多路θ-Kernighan-Lin处理。
优选地,所述局部最优化单元可以采用模拟退火算法,以总拥塞链路数最小为优化目标,搜索得到局部最优的虚拟机位置放置方案。
更优选地,所述局部最优化单元可以基于Metropolis准则,搜索得到局部最优的虚拟机位置放置方案。
根据本发明的第二方案,提出了一种虚拟机迁移方法,可以包括:周期性地获取网络拓扑、链路带宽信息和通信业务量信息;和根据网络拓扑和当前通信业务量,执行数据流局部化处理,减少流经骨干网络中的拥塞链路的数据流,得到优化后的虚拟机位置放置方案。
优选地,虚拟机迁移方法还可以包括:
针对已局部化的每个局部区域,基于当前通信业务量,执行局部最优处理,使用精细的局部启发式搜索,均衡链路负载,得到局部最优的虚拟机位置放置方案。
优选地,可以根据优化后的虚拟机位置放置方案或局部最优的虚拟机位置放置方案,执行虚拟机迁移处理。
优选地,虚拟机迁移方法还可以包括:根据所获得的链路带宽信息和通信业务量,检测当前网络中是否存在拥塞链路,如果存在拥塞链路,则执行数据流局部化处理。
更优选地,判别拥塞链路的标准可以是预先设置的。
优选地,可以以位于同一拓扑层的交换机/服务器/虚拟机为节点,交换机/服务器/虚拟机间的通信业务量为权重,构成一个有权无向图,并采用改进的Kernighan-Lin图划分算法执行数据流局部化处理。
更优选地,可以按照从核心层到边缘层的顺序,在控制每轮处理所允许移动的虚拟机个数的同时,分层递归执行多路θ-Kernighan-Lin处理。
优选地,可以采用模拟退火算法,以总拥塞链路数最小为优化目标,搜索得到局部最优的虚拟机位置放置方案。
更优选地,可以基于Metropolis准则,搜索得到局部最优的虚拟机位置放置方案。
根据本发明,针对网络中存在的持续性拥塞,有针对性地调整虚拟机位置放置,使得数据流具有更好的局部性,且链路负载更加平衡。负载平衡有利于提高网络的吞吐量,且有利于降低拥塞带来的延迟。本发明遵循增量式虚拟机调整方式,将上一周期虚拟机的位置放置作为下一次位置放置的优化起点,并限制最大的虚拟机迁移数量,使得虚拟机迁移的代价更加可控。增量式虚拟机调整方式也缩短了运行时间,使得本发明可以在十万台服务器数量级的数据中心使用。
附图说明
通过下面结合附图说明本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
图1是用于说明数据中心网络的网络拓扑和通信拥塞场景的示意图;
图2是用于说明虚拟机迁移的整体示意图;
图3是用于说明本发明一个具体实施例的结构方框图;
图4是用于说明本发明一个具体实施例的整体操作的流程图;
图5是用于说明数据流局部化处理S420的具体操作的流程图;
图6A是用于说明作为数据流局部化处理S420的一个具体实施例的多路θ-Kernighan-Lin处理的整体操作的流程图;
图6B是用于说明图6A中的迭代KL优化处理(Recursive-KL-Improve(C))S620的具体操作的流程图;
图6C是用于说明图6B中的θ-KL处理(θ-KL-Procedure(A,B))S6209的具体操作的流程图;
图7A是用于说明作为局部最优处理S430的一个具体实施例的模拟退火算法的具体操作的流程图;
图7B是用于说明图7A中的邻居搜索(Neighbor(s))S715的具体操作的流程图;以及
图7C是用于说明图7A中的链路利用率搜索(Energy(snew))S720的具体操作的流程图。
在本发明的所有附图中,相同或相似的结构和步骤均以相同或相似的附图标记标识。
具体实施方式
下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。
图1是用于说明数据中心网络的网络拓扑和通信拥塞场景的示意图。如图1所示,在数据中心中,交换机/路由器(为了行文简洁,本文中的“交换机”表示“交换机或路由器”)通常具有分层的网络拓扑。按照其所处的位置,可以分为核心交换机层、汇聚交换机层和边缘交换机层。虚拟机(VM)位于服务器上。边缘交换机与服务器相连。汇聚交换机连接边缘交换机。核心交换机连接汇聚交换机。虽然图1中仅示出了三个交换机层,但这并非对本发明的限制,例如,在典型的数据中心网络拓扑结构中,可以包含多个汇聚交换机层和多个核心交换机层。
图2是用于说明虚拟机迁移的整体示意图。如图2所示,为了实现虚拟机的迁移,通常可以按照以下的方式进行:首先,中央控制器从位于服务器中的系统管理单元(hypervisor)获取通信业务量信息;然后,中央控制器利用已知的网络拓扑信息和所获取的通信业务量信息,计算优化的虚拟机放置位置;中央控制器根据计算出的优化虚拟机放置位置,向位于服务器中的系统管理单元发送虚拟机迁移命令;最后,通过位于服务器中的系统管理单元执行虚拟机迁移。应当指出,中央控制器可以位于数据中心中指定的服务器上,也可以位于数据中心以外的其他计算设备上。在虚拟机迁移的整个处理中,如何得到优化的虚拟机放置位置是实现这一技术方案的关键所在。
图3是用于说明本发明一个具体实施例的结构方框图。如图3所示,中心控制器(虚拟机迁移设备)包括:获取单元310、拥塞状态判断单元315、数据流局部化单元320和局部最优化单元330;位于服务器上的系统管理单元包括:虚拟机迁移单元340。
获取单元310可以获得当前网络的最新拓扑结构和链路带宽信息,这些信息用于计算服务器间、交换机间的通信业务量。最新拓扑结构和链路带宽信息可以是静态或半静态地存储在中央控制器中,也可以通过自发现动态地获得。获取单元310还可以从边缘交换机或系统管理单元周期性地获得虚拟机间的通信业务量。
拥塞状态判断单元315可以根据获取单元310所获得的链路带宽信息和通信业务量,检测当前网络中是否存在处于持续拥塞状态的链路。如果不存在持续拥塞状态的链路,则不必执行虚拟机放置位置调整和虚拟机迁移处理。如果存在持续拥塞状态的链路,则拥塞状态判断单元315通知数据流局部化单元320执行数据流局部化处理。数据中心网络管理员可以设置判别拥塞链路的标准,用以适应不同应用的需求。
数据流局部化单元320可以根据拥塞状态判断单元315的指示,基于网络拓扑和当前通信业务量,执行数据流局部化处理,实现快速的启发性优化,能够粗粒度地快速提高总体数据流的局部化,使得较少的数据流经骨干网络。
局部最优化单元330可以判断数据流局部化后的结果是否已经满足拥塞优化目标(由用户设置)。如果已经满足拥塞优化目标,则直接将由数据流局部化单元320优化后的虚拟机位置放置方案通知给位于服务器中的系统管理单元的虚拟机迁移单元340。如果尚未满足拥塞优化目标,局部最优化单元330可以针对已局部化的每个局部区域,基于当前通信业务量,执行局部最优处理,使用精细的局部启发式搜索,寻找局部最优的虚拟机位置放置方案,使得链路负载较为均衡。局部最优化单元330可以将优化后的虚拟机位置放置方案通知给位于服务器中的系统管理单元的虚拟机迁移单元340。
虚拟机迁移单元340可以根据优化后的虚拟机位置放置方案,执行虚拟机迁移处理。
图4是用于说明本发明一个具体实施例的整体操作的流程图——VM放置位置优化和VM迁移4000。
如图4所示,在步骤S410,周期性地获取网络拓扑、链路带宽信息和通信业务量信息。
在步骤S415,根据所获得的链路带宽信息和通信业务量,检测当前网络中是否存在处于持续拥塞状态的链路。
当不存在持续拥塞状态的链路时(步骤S415“不存在”),返回步骤S410等待获取信息的下一周期。当存在持续拥塞状态的链路时(步骤S415“存在”),前进到步骤S420。
在步骤S420,基于网络拓扑和当前通信业务量,执行数据流局部化处理,实现快速的启发性优化,能够粗粒度地快速提高总体数据流的局部化,使得较少的数据流经骨干网络。例如,根据一个具体实施例,在步骤S420,可以执行多路θ-KL算法,快速提高一个有权无向图中的多聚类质量。输入是当前虚拟机位置放置,在这个状态下,按照由上到下分层次对优化当前虚拟机的位置聚类。除了借鉴高效的Kernighan-Lin图划分算法以外,在处理过程中增加了参数θ,从而能够将虚拟机迁移代价作为用户可设置的限制参数。
在步骤S425,判断优化后的虚拟机位置放置方案是否已经满足拥塞优化目标(由用户设置)。如果已经满足拥塞优化目标(步骤S425“是”),则直接执行步骤S440。如果尚未满足拥塞优化目标(步骤S425“否”),则顺序执行步骤S430。
之后,在步骤S430,针对已局部化的每个局部区域,基于当前通信业务量,执行局部最优处理,使用精细的局部启发式搜索,寻找局部最优的虚拟机位置放置方案,使得链路负载较为均衡。例如,根据一个具体实施例,在步骤S430,可以执行模拟退火算法,以总拥塞链路数最小为优化目标,搜索虚拟机位置放置的优化解。
最后,在步骤S440,发送虚拟机迁移指令,虚拟机迁移单元根据优化后的虚拟机位置放置方案,执行虚拟机迁移处理。
图5是用于说明数据流局部化处理S420的具体操作的流程图。
如图5所示,首先,在步骤S4210,根据网络拓扑,按照交换机的拓扑分层,对服务器进行空位分层,自上而下地进行二分优化。在每一层次中,以该层中的交换机/服务器/虚拟机为节点,交换机/服务器/虚拟机间的通信业务量为权重,构成一个有权无向图。
在步骤S4220,对所构成的有权无向图进行聚类,以每个聚类的流出流量为排序,交叉分为两部分(即,所有奇数排序位置的节点为一组,所有偶数排序位置的节点为一组),然后二分迭代执行θ-KL优化。
在步骤S4230,以通信业务量和步骤S4220的聚类结果为输入,执行θ-KL优化,得到通信代价优化后的二分聚类,由此完成虚拟机的位置布置调整,实现数据流局部化,使得通过骨干网络的数据流较少。
通过数据流局部化处理,虚拟机的通信会更加局部化,减少核心网络的压力。数据流局部化处理的时间复杂度低,但只能粗粒度地优化网络拥塞状况。如果该步优化结果达到满意的拥塞优化目标,则可以跳过局部最优处理,直接执行虚拟机迁移。
图6A是用于说明作为数据流局部化处理S420的一个具体实施例的多路θ-Kernighan-Lin处理的整体操作的流程图。
如图6A所示,首先,在步骤S605,初始化多路θ-Kernighan-Lin处理所需的数据结构。V为所有虚拟机的集合。Q是一个先进先出队列,支持推入(push())和弹出(pop())两种操作。队列Q的引入是为了实现分层次的递归优化。
在步骤S610,弹出当前一个节点给V,这个V是当前循环的虚拟机优化集合。
在步骤S615,根据数据中心网络拓扑的自然层次,将V中虚拟机聚类为多组。例如,在核心层,可以根据虚拟机连接的核心交换机,将虚拟机分组;在汇聚层,可以根据汇聚交换机,将虚拟机分组,以此类推。
在步骤S620,迭代调用图6B中所示Recursive-KL-Improve(C)处理。Recursive-KL-Improve(C)处理的输入为当前虚拟机分组V,输出为优化后的虚拟机分组。
在步骤S625中,根据当前分组是否处于数据中心的最边缘层次而决定是否继续划分子组,递归执行多路θ-Kernighan-Lin处理。
步骤S630将所有子组推入优化队列Q。
步骤S635检测队列Q是否为空,用以判断多路θ-Kernighan-Lin处理是否执行完毕。若队列Q非空,则返回步骤S610继续执行。否则,多路θ-Kernighan-Lin处理结束。
图6B是用于说明图6A中的迭代KL优化处理(Recursive-KL-Improve(C))S620的具体操作的流程图。
如图6B所示,首先,在步骤S6201,初始化Recursive-KL-Improve(C)处理所需的数据结构。C为输入中当前层次优化的虚拟机的集合。Q是一个先进先出队列,支持推入(push())和弹出(pop())两种操作。队列Q的引入是为了实现同层次二分优化。
在步骤S6203,弹出当前一个节点给V,这个V是当前循环的虚拟机优化集合。
在步骤S6205,根据V中每个节点的总业务量,将V排序。V中的节点是指数据中心网络拓扑的自然层次中,V所在层次的节点,如汇聚层中的汇聚交换机、或边缘层中的边缘交换机。
在步骤S6207,V被顺次交叉分为两组。这里的顺次交叉是指,依据步骤S6205中的排序结果,将所有奇数排序位置的节点归为一组A,所有偶数排序位置的节点归为另一组B。
在步骤S6209,迭代调用图6C中所示θ-KL-Procedure(A,B)处理。θ-KL-Procedure(A,B)处理的输入为当前虚拟机划分A和B,输出为优化后的虚拟机划分。
在步骤S6211,根据当前划分A和B是否能够继续细分,而决定是否继续迭代划分A和B。若能够继续细分(步骤S6211“否”),则在步骤S6213,将A和B加入优化队列Q等待执行。
在步骤S6215,检测队列Q是否为空,用以判断Recursive-KL-Improve(C)处理是否执行完毕。若队列Q非空,则返回步骤S6203继续执行。否则,Recursive-KL-Improve(C)处理结束。
图6C是用于说明图6B中的θ-KL处理(θ-KL-Procedure(A,B))S6209的具体操作的流程图。
如图6C所示,首先,在步骤S6291,初始化θ-KL-Procedure(A,B)处理所需的数据结构和变量。其中,D(v)代表从A集合移动虚拟机v到B集合(或从B到A),所产生的A和B间的业务量负增量。p代表虚拟机迁移数量,Ap与Bp代表优化的虚拟机划分。
在步骤S6293,在集合A和B中选择使函数gp达到最大的虚拟机对a和b,并在Ap与Bp中交换a与b。
在步骤S6295,判断虚拟机迁移数量是否在限制之内。若还在限制之内,则在更新p与D值(步骤S6297)后,返回S6293循环执行。若否,则跳转到S6299。
在步骤S6299,在所有优化中间结果中,选择一个使业务量负增量G达到最大(即业务量最小)的结果返回。
图7A是用于说明作为局部最优处理S430的一个具体实施例的模拟退火算法的具体操作的流程图。
如图7A所示,首先,在步骤S705,初始化模拟退火算法所需的数据结构和变量,其中,状态(s)是指虚拟机的位置放置,Energy(s)调用图7C的算法。
在步骤S710,判断搜索步数以及当前状态的目标函数值,决定是否继续搜索。若当前优化函数值(即最高链路利用率)已经达到满意数值,或者搜索步数达到最高搜索步数,则结束返回。否则,跳至S715继续搜索。
步骤S715和S720分别调用图7B与图7C中算法,以产生新的搜索状态,以及判断新状态的目标函数值。
在步骤S725,判断是否接受并跳转到新状态。判断的依据是通常使用的Metropolis准则,即如果温度差temp(k/kmax)为负值,则接受新状态作为当前状态,否则以概率exp(-temp(k/kmax)/T)接受新状态。这里,温差函数temp可以取为ln(k/kmax)。random()函数为随机数生成器,产生区间[0,1]内的实数。P()函数是Metropolis准则的概率函数。
在步骤S730和S735,更新当前状态变量和最优状态变量。
在步骤S740,累加循环变量。
图7B是用于说明图7A中的邻居搜索(Neighbor(s))S715的具体操作的流程图。
如图7B所示,首先,在步骤S7151,根据数据中心网络的拓扑结构和路由估计当前网络每条链路的利用率。然后,在步骤S7153,找出具有最高利用率的链路。最后,在步骤S7155,随机选择经过最拥塞链路的一对虚拟机并返回。
图7C是用于说明图7A中的链路利用率搜索(Energy(snew))S720的具体操作的流程图。
如图7C所示,首先,在步骤S7201,根据数据中心网络的拓扑结构和路由估计当前网络每条链路的利用率。然后,在步骤S7203,找出具有最高利用率并返回。
这里所公开的本发明实施例的其他设置包括执行在先概述并随后详述的方法实施例的步骤和操作的软件程序。更具体地,计算机程序产品是如下的一种实施例:具有计算机可读介质,计算机可读介质上编码有计算机程序逻辑,当在计算设备上执行时,计算机程序逻辑提供相关的操作,从而提供上述虚拟机迁移方案。当在计算系统的至少一个处理器上执行时,计算机程序逻辑使得处理器执行本发明实施例所述的操作(方法)。本发明的这种设置典型地提供为设置或编码在例如光介质(例如CD-ROM)、软盘或硬盘等的计算机可读介质上的软件、代码和/或其他数据结构、或者诸如一个或多个ROM或RAM或PROM芯片上的固件或微代码的其他介质、或专用集成电路(ASIC)、或一个或多个模块中的可下载的软件图像、共享数据库等。软件或固件或这种配置可安装在计算设备上,以使得计算设备中的一个或多个处理器执行本发明实施例所述的技术。结合诸如一组数据通信设备或其他实体中的计算设备进行操作的软件过程也可以提供根据本发明的节点和主机。根据本发明的节点和主机也可以分布在多个数据通信设备上的多个软件过程、或者在一组小型专用计算机上运行的所有软件过程、或者单个计算机上运行的所有软件过程之间。
应该理解,严格地讲,本发明的实施例可以实现为数据处理设备上的软件程序、软件和硬件、或者单独的软件和/或单独的电路。
至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。
Claims (13)
1.一种用于虚拟机迁移的中央控制器,包括:
获取单元,用于获得网络拓扑、链路带宽信息、和通信业务量信息;和
数据流局部化单元,用于以位于同一拓扑层的交换机/服务器/虚拟机为节点,交换机/服务器/虚拟机间的通信业务量为权重,构成一个有权无向图,按照从核心层到边缘层的顺序,在控制每轮处理所允许移动的虚拟机个数的同时,分层递归执行多路θ-Kernighan-Lin处理,从而执行数据流局部化处理,减少流经骨干网络中的拥塞链路的数据流,得到优化后的虚拟机位置放置方案。
2.根据权利要求1所述的中央控制器,还包括:
局部最优化单元,针对已由所述数据流局部化单元局部化的每个局部区域,基于当前通信业务量,执行局部最优处理,使用精细的局部启发式搜索,均衡链路负载,得到局部最优的虚拟机位置放置方案。
3.根据权利要求1或2所述的中央控制器,还包括:
拥塞状态判断单元,用于根据所述获取单元所获得的链路带宽信息和通信业务量,检测当前网络中是否存在拥塞链路,如果存在拥塞链路,则所述拥塞状态判断单元通知所述数据流局部化单元执行数据流局部化处理。
4.根据权利要求3所述的中央控制器,其中
判别拥塞链路的标准是预先设置的。
5.根据权利要求2所述的中央控制器,其中
所述局部最优化单元采用模拟退火算法,以总拥塞链路数最小为优化目标,搜索得到局部最优的虚拟机位置放置方案。
6.根据权利要求5所述的中央控制器,其中
所述局部最优化单元基于Metropolis准则,搜索得到局部最优的虚拟机位置放置方案。
7.一种虚拟机迁移方法,包括:
周期性地获取网络拓扑、链路带宽信息和通信业务量信息;和
以位于同一拓扑层的交换机/服务器/虚拟机为节点,交换机/服务器/虚拟机间的通信业务量为权重,构成一个有权无向图按照从核心层到边缘层的顺序,在控制每轮处理所允许移动的虚拟机个数的同时,分层递归执行多路θ-Kernighan-Lin处理,从而执行数据流局部化处理,减少流经骨干网络中的拥塞链路的数据流,得到优化后的虚拟机位置放置方案。
8.根据权利要求7所述的虚拟机迁移方法,还包括:
针对已局部化的每个局部区域,基于当前通信业务量,执行局部最优处理,使用精细的局部启发式搜索,均衡链路负载,得到局部最优的虚拟机位置放置方案。
9.根据权利要求7或8所述的虚拟机迁移方法,其中
根据优化后的虚拟机位置放置方案或局部最优的虚拟机位置放置方案,执行虚拟机迁移处理。
10.根据权利要求7或8所述的虚拟机迁移方法,还包括:
根据所获得的链路带宽信息和通信业务量,检测当前网络中是否存在拥塞链路,如果存在拥塞链路,则执行数据流局部化处理。
11.根据权利要求10所述的虚拟机迁移方法,其中
判别拥塞链路的标准是预先设置的。
12.根据权利要求8所述的虚拟机迁移方法,其中
采用模拟退火算法,以总拥塞链路数最小为优化目标,搜索得到局部最优的虚拟机位置放置方案。
13.根据权利要求12所述的虚拟机迁移方法,其中
基于Metropolis准则,搜索得到局部最优的虚拟机位置放置方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110305788.3A CN103023799B (zh) | 2011-09-27 | 2011-09-27 | 用于虚拟机迁移的中央控制器和虚拟机迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110305788.3A CN103023799B (zh) | 2011-09-27 | 2011-09-27 | 用于虚拟机迁移的中央控制器和虚拟机迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103023799A CN103023799A (zh) | 2013-04-03 |
CN103023799B true CN103023799B (zh) | 2016-06-15 |
Family
ID=47971942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110305788.3A Active CN103023799B (zh) | 2011-09-27 | 2011-09-27 | 用于虚拟机迁移的中央控制器和虚拟机迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103023799B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158675B (zh) * | 2013-05-13 | 2018-09-11 | 华为技术有限公司 | 计算节点部署方法、处理节点、控制器及系统 |
US9137161B2 (en) * | 2013-05-29 | 2015-09-15 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system of bandwidth-aware service placement for service chaining |
US9307018B2 (en) | 2013-09-11 | 2016-04-05 | International Business Machines Corporation | Workload deployment with real-time consideration of global network congestion |
CN104125160B (zh) * | 2014-08-07 | 2018-03-23 | 中国人民解放军信息工程大学 | 一种多管理域间节点交换机的迁移方法及装置 |
CN104636184B (zh) * | 2014-12-29 | 2018-05-01 | 上海华为技术有限公司 | 虚拟机实例的部署方法和装置及设备 |
CN105610606B (zh) * | 2015-12-16 | 2018-06-08 | 上海交通大学 | 基于石墨结构的无线数据中心分层拓扑结构及其构建方法 |
CN105553723B (zh) * | 2015-12-17 | 2019-02-01 | 中国科学院信息工程研究所 | 一种网络流量感知的虚拟集群放置方法 |
CN105635285B (zh) * | 2015-12-30 | 2018-12-14 | 南京理工大学 | 一种基于状态感知的vm迁移调度方法 |
CN109845193B (zh) | 2016-10-19 | 2021-01-29 | 华为技术有限公司 | 检测方法、设备和系统 |
CN108337179B (zh) * | 2017-01-19 | 2021-02-05 | 华为技术有限公司 | 链路流量控制方法及装置 |
CN107528742B (zh) * | 2017-09-28 | 2020-06-12 | 南京航空航天大学 | 一种面向云数据中心网络优化的虚拟机部署方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2309387A1 (en) * | 2009-10-06 | 2011-04-13 | Alcatel Lucent | A method of migrating a virtual machine, corresponding computer program product, and data storage device therefor |
WO2011054375A1 (en) * | 2009-11-03 | 2011-05-12 | Telecom Italia S.P.A. | Sharing of digital contents in p2p networks exploiting localization data |
CN102082692A (zh) * | 2011-01-24 | 2011-06-01 | 华为技术有限公司 | 基于网络数据流向的虚拟机迁移方法、设备和集群系统 |
CN102112981A (zh) * | 2008-07-31 | 2011-06-29 | 思科技术公司 | 通信网络中的虚拟机的动态分布 |
-
2011
- 2011-09-27 CN CN201110305788.3A patent/CN103023799B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102112981A (zh) * | 2008-07-31 | 2011-06-29 | 思科技术公司 | 通信网络中的虚拟机的动态分布 |
EP2309387A1 (en) * | 2009-10-06 | 2011-04-13 | Alcatel Lucent | A method of migrating a virtual machine, corresponding computer program product, and data storage device therefor |
WO2011054375A1 (en) * | 2009-11-03 | 2011-05-12 | Telecom Italia S.P.A. | Sharing of digital contents in p2p networks exploiting localization data |
CN102082692A (zh) * | 2011-01-24 | 2011-06-01 | 华为技术有限公司 | 基于网络数据流向的虚拟机迁移方法、设备和集群系统 |
Non-Patent Citations (2)
Title |
---|
A Network-aware Virtual Machine Placement and Migration Approach in Cloud Computing;jing tai piao 等;《2010 Ninth International Conference on Grid and Cloud Computing,IEEE》;20101231;第87-92页 * |
基于负载特征的虚拟机迁移调度策略;刘进军 等;《计算机工程》;20110915;第37卷(第17期);第276-278页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103023799A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103023799B (zh) | 用于虚拟机迁移的中央控制器和虚拟机迁移方法 | |
CN108829494B (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
Zhu et al. | A tree-cluster-based data-gathering algorithm for industrial WSNs with a mobile sink | |
Pires et al. | A virtual machine placement taxonomy | |
CN112469100B (zh) | 基于可充电多基站式无线异构传感器网络的分层路由算法 | |
CN102664814B (zh) | 一种虚拟网络中基于灰色预测的自适应动态资源分配方法 | |
CN107466016B (zh) | 一种基于用户移动性的小小区缓存设备分配方法 | |
CN106161610A (zh) | 一种分布式存储的方法和系统 | |
CN110087250B (zh) | 一种基于多目标联合优化模型的网络切片编排方案及其方法 | |
CN103457852B (zh) | 一种多播虚拟网络的抗毁性映射方法 | |
CN105379196A (zh) | 容错和负载平衡路由 | |
CN108900428A (zh) | 基于交换机动态迁移的控制器负载均衡方法 | |
CN107341240B (zh) | 一种应对倾斜数据流在线连接的处理方法 | |
CN103259744A (zh) | 一种基于分簇的移动虚拟网络映射方法 | |
CN109447264B (zh) | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 | |
CN106681815A (zh) | 一种虚拟机并发迁移方法 | |
CN108134843A (zh) | 一种5g-c-ran场景下的服务功能链部署方法 | |
CN104679594A (zh) | 一种中间件分布式计算方法 | |
CN107306224A (zh) | 一种路由路径更新方法及网络管理装置 | |
CN105721577A (zh) | 一种面向软件定义网络的服务器负载均衡方法 | |
CN104270421A (zh) | 一种支持带宽保证的多租户云平台任务调度方法 | |
CN107276794A (zh) | 一种软件定义网络中交换机迁移算法 | |
Mohamed et al. | Coyote optimization based on a fuzzy logic algorithm for energy-efficiency in wireless sensor networks | |
CN114037175B (zh) | 一种基于多尺度聚类的大规模公交线网分级优化方法 | |
CN103095598A (zh) | 一种大规模集群环境下的监控数据聚合方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |