虚拟机迁移方法、装置、电子设备及存储介质与流程

文档序号:28868521发布日期:2022-02-12 10:36阅读:113来源:国知局
虚拟机迁移方法、装置、电子设备及存储介质与流程

1.本技术涉及信息技术领域,具体而言,涉及一种虚拟机迁移方法、装置、电子设备及存储介质。


背景技术:

2.节点网络中各物理节点上虚拟机的分配和创建一般只考虑节点资源是否满足虚拟机需求,这种方式易导致各节点间虚拟机分配不均匀,且单一节点内虚拟机业务网络负载(南北向流量)往往会随着用户规模的变化而改变,当节点整体业务网络负载过大时,会对节点内各虚拟机的通信能力和服务质量产生影响,甚至造成业务中断。使用业务网络过载节点内虚拟机迁移是解决上述问题的有效方法。
3.现有的虚拟机自动化在线迁移方法大多数都是以节点物理资源利用率作为虚拟机迁移标准的判决,而节点网络在应用时,多个虚拟机间常存在通信关系,即多个虚拟机互相通信共同对外提供服务的情况,如大型软件应用被拆分成多个可被独立部署的简单容器应用,这些简单容器应用被分别部署在不同的虚拟机内,这些应用间紧密通信共同对外提供服务(东西向流量),在这种情况下,使用以节点物理资源利用率作为虚拟机迁移标准的判决的方法容易造成虚拟机迁移时,虚拟机间网络拓扑距离的拉远造成的通信损耗增加、业务质量降低等问题。


技术实现要素:

4.为解决上述技术问题,本技术的实施例提供了一种虚拟机迁移方法及装置、电子设备、计算机可读存储介质,根据过载节点中各虚拟机的流量相关性数值大小进行虚拟机的迁移,可高效降低节点网络的负载。
5.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
6.根据本技术实施例的一个方面,提供了一种虚拟机迁移方法,包括:根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算所述各虚拟机的流量相关性值,所述流量相关性值根据对应虚拟机与所述节点网络中的其他虚拟机之间的相关性得到;根据所述各虚拟机的流量相关性值的数值大小,按照数值由小到大的排列顺序将对应虚拟机依次加入待迁移队列;依次对所述待迁移队列的各虚拟机进行迁移处理,直至所述过载节点的负载小于预设阈值
7.在一实施例中,所述根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算所述各虚拟机的流量相关性值,包括:
8.计算所述过载节点内任意两个虚拟机之间的第一相关性;
9.计算所述过载节点内任一虚拟机与上联交换机的其他节点内任一虚拟机之间的第二相关性,所述上联交换机为所述过载节点的上联交换机;
10.计算所述过载节点内任一虚拟机与跨交换机的节点内任一虚拟机之间的第三相
关性,所述跨交换机为与所述上联交换机存在通信交互的交换机;
11.根据所述各虚拟机对应的第一相关性、第二相关性以及第三相关性分别计算所述各虚拟机的流量相关性值。
12.在一实施例中,所述依次对所述待迁移队列的各虚拟机进行迁移处理,直至所述过载节点的负载小于预设阈值,包括:
13.从所述待迁移队列的队头获取第一虚拟机,将所述第一虚拟机迁移至所述节点网络中的其他节点,并删除所述待迁移队列的队头中的元素,所述其他节点包括与所述第一虚拟机相关性最大的虚拟机所在的节点;
14.循环执行所述从所述待迁移队列的队头获取第一虚拟机,将所述第一虚拟机迁移至所述节点网络中的其他节点,并删除所述待迁移队列的队头中的元素的步骤,直至所述过载节点的负载小于所述预设阈值。
15.在一实施例中,所述从所述待迁移队列的队头获取第一虚拟机,将所述第一虚拟机迁移至所述节点网络中的其他节点,包括:
16.判断所述第一虚拟机与其他虚拟机之间是否存在相关性;
17.若不存在,则将所述节点网络中负载最小的节点为目标节点,将所述第一虚拟机迁移至所述目标节点。
18.在一实施例中,所述从所述待迁移队列的队头获取第一虚拟机,将所述第一虚拟机迁移至所述节点网络中的其他节点,包括:
19.根据所述第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机,所述第二虚拟机与所述第一虚拟机的之间相关性数值最大;
20.若所述第二虚拟机部署在所述过载节点上,则将所述过载节点的上联交换机上负载最小的节点作为目标节点,并将所述第一虚拟机迁移至所述目标节点。
21.在一实施例中,所述从所述待迁移队列的队头获取第一虚拟机,将所述第一虚拟机迁移至所述节点网络中的其他节点,包括:
22.根据所述第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机,所述第二虚拟机与所述第一虚拟机的之间相关性数值最大;
23.若所述第二虚拟机部署在跨交换机上,则判断所述第二虚拟机所在的节点是否满足所述第一虚拟机的迁移需求,所述跨交换机为与所述过载节点的上联交换机存在通信交互的其他交换机;
24.若满足,则将所述第一虚拟机迁移至所述第二虚拟机所在的节点;
25.否则,将所述第二虚拟机所在的跨交换机上负载最小的节点作为目标节点,并将所述第一虚拟机迁移至所述目标节点。
26.在一实施例中,所述从所述待迁移队列的队头获取第一虚拟机,将所述第一虚拟机迁移至所述节点网络中的其他节点,包括:
27.根据所述第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机,所述第二虚拟机与所述第一虚拟机的之间相关性数值最大;
28.若所述第二虚拟机部署在所述过载节点的上联交换机上,则判断所述第二虚拟机所在的节点是否满足所述第一虚拟机的迁移需求;
29.若满足,则将所述第一虚拟机迁移至所述第二虚拟机所在的节点;
30.否则,将所述上联交换机上负载最小的节点为目标节点,将所述第一虚拟机迁移至所述目标节点。
31.根据本技术实施例的一个方面,提供了一种虚拟机迁移装置,包括:流量相关性值获取模块,配置为根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算所述各虚拟机的流量相关性值,所述流量相关性值根据对应虚拟机与所述节点网络中的其他虚拟机之间的相关性得到;待迁移队列获取模块,配置为根据所述各虚拟机的流量相关性值的数值大小,按照数值由小到大的排列顺序将对应虚拟机依次加入待迁移队列;迁移模块,配置为依次对所述待迁移队列的各虚拟机进行迁移处理,直至所述过载节点的负载小于预设阈值。
32.根据本技术实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的虚拟机迁移方法。
33.根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的虚拟机迁移方法。
34.根据本技术实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的虚拟机迁移方法。
35.在本技术的实施例所提供的技术方案中根据过载节点中虚拟机流量相关性值的数值大小确定优先进行迁移的虚拟机,在降低过载节点负载的同时,优先迁移流量相关性值较小的虚拟机,减少将与过载节点内虚拟机相关性较大的虚拟机进行迁移时,相关性较强的虚拟机间网络拓扑距离变远导致的通信损耗增加问题。
36.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
37.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
38.图1是本技术涉及的一种实施环境的示意图;
39.图2是本技术的一示例性实施例示出的虚拟机迁移方法的流程图;
40.图3是图2所示实施例中的步骤s210在一示例性实施例中的流程图;
41.图4是图2所示实施例中的步骤s250在一示例性实施例中的流程图;
42.图5是图4所示实施例中的步骤s410在一示例性实施例中的流程图;
43.图6是图4所示实施例中的步骤s410在另一示例性实施例中的流程图;
44.图7是图4所示实施例中的步骤s410在另一示例性实施例中的流程图;
45.图8是图4所示实施例中的步骤s410在另一示例性实施例中的流程图;
46.图9是本技术的另一示例性实施例示出的虚拟机迁移装置的结构示意图;
47.图10示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
48.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
49.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
50.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
51.还需要说明的是:在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
52.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
53.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
54.本技术实施例提出的虚拟机迁移方法及装置、电子设备、存储介质涉及人工智能技术以及机器学习技术,以下将对这些实施例进行详细说明。
55.该实施环境包括终端100和服务器端200,终端100和服务器端200之间通过有线或者无线网络进行通信。终端100用于采集节点网络数据,该节点网络数据包括节点网络的结构、节点网络中各节点的负载、节点网络中各节点的通信流量数据等等;同时终端100还将采集到的节点网络数据输入至服务器端200,服务器端200对节点网络数据进行处理,根据节点网络中各节点的负载将负载大于预设阈值的节点作为过载节点,然后根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算各虚拟机的流量相关性值,通过流量相关性值确认过载节点中的虚拟机迁移优先级,并将优先级高的虚拟机迁移到其他节点,从而降低过载节点的负载。
56.示例性的,终端100在采集到节点网络数据后,将节点网络数据发送至服务器端200,服务器端200对节点网络数据进行数据处理,如根据节点网络中各节点的负载将负载大于预设阈值的节点作为过载节点,根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算各虚拟机的流量相关性值,流量相关性值根据对应虚拟机与节点网络中的其
他虚拟机之间的相关性得到;根据各虚拟机的流量相关性值的数值大小,按照数值由小到大的排列顺序将对应虚拟机依次加入待迁移队列;依次对待迁移队列的各虚拟机进行迁移处理,直至过载节点的负载小于预设阈值。
57.其中,终端100可以是智能手机、平板、笔记本电脑、计算机等任意能够实现数据可视化的电子设备,本处不进行限制。服务器端200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,其中多个服务器可组成一区块链,而服务器为区块链上的节点,服务器端200还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处也不对此进行限制。
58.图2是根据一示例性实施例示出一种虚拟机迁移方法的流程图。如图2所示,在一示例性实施例中,该方法可以包括步骤s210至步骤s250,详细介绍如下:
59.步骤s210:根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算各虚拟机的流量相关性值。
60.本实施例中,将节点网络中节点负载(实际网络吞吐量)大于预设阈值的节点称为过载节点,过载节点会造成节点网络中的通信损耗影响服务质量,本实施例中的预设阈值可根据不同节点的带宽实际情况分别设定。
61.本实施例中,流量相关性值根据对应虚拟机与节点网络中的其他虚拟机之间的相关性得到,具体地,对于过载节点内的任一虚拟机a,获取该虚拟机a以及与该虚拟机a存在通信关系的其他虚拟机两两之间的相关性,如该虚拟机a与过载节点内的一些虚拟机存在通信,则首先计算虚拟机a与过载节点内存在通信关系的任一虚拟机之间的多个第一相关性;而在节点网络中该过载节点中的虚拟机通过该过载节点、接入层中的上联交换机进行业务通信,而一个上联交换机下可链接有多个节点,该多个节点之间的虚拟机也可能存在通信关系,因此,还可以计算该虚拟机a与过载节点的上联交换机下其他节点中虚拟机的第二相关性;同时,对于节点网络来说,接入层可能存在等多个交换机,而通过该接入层的多个交换机的流量还通过汇聚层的交换机进行流量汇聚,即该接入层的多个交换机之间可能也存在通信关系,因此,还可计算该虚拟机a与接入层中与过载节点的上联交换机存在通信的跨交换机下的虚拟机的第三相关性。
62.由此,可得到该虚拟机a的第一相关性、第二相关性、第三相关性,则可通过该虚拟机a的三种相关性,得到虚拟机a的流量相关性值。
63.步骤s230:根据各虚拟机的流量相关性值的数值大小,按照数值由小到大的排列顺序将对应虚拟机依次加入待迁移队列。
64.本实施例中的流量相关性值能表征虚拟机a的通信关系,如可表征该虚拟机a在节点网络中与何节点的通信频繁。如该流量相关性值越大,则证明该虚拟机a与过载节点内的虚拟机或上联交换器下其他节点内的虚拟机流量相关性强,通信频繁,那么如果将虚拟机a迁移至其他节点,会导致相关性较强的虚拟机间网络拓扑距离变远从而增加通信损耗,进而影响网络节点业务质量,因此应该降低该虚拟机a的迁移优先级,即先进行其他优先级高的虚拟机的迁移;如果该流量相关性值越小,则说明该虚拟机a与跨交换机节点内虚拟机流量相关性强,与跨交换机内的虚拟机通信频繁,则可调高该虚拟机a的迁移优先级,将虚拟
机a迁移到相关性最大的虚拟机所在节点上,减少虚拟机之间的通信损耗。
65.因此,可以通过过载节点中各虚拟机的流量相关性值大小,确定各虚拟机的迁移优先级,按照流量相关性值的数值按有小到大排序,然后按照排列顺序,将对应虚拟机分别放入待迁移队列,保证流量相关性数值最小的虚拟机在待迁移队列的队头,从待迁移队列的队头到队尾,各虚拟机对应的流量相关性值逐渐变大。
66.步骤s250:依次对待迁移队列的各虚拟机进行迁移处理,直至过载节点的负载小于预设阈值。
67.本实施例中,根据队列“先进先出”的特征,依次对待迁移队列的各虚拟机进行迁移处理,如对待迁移队列的虚拟机进行迁移时,则将队头的虚拟机进行迁移,然后删除对头的虚拟机,则待迁移队列的第二列元素即为队头,再对对头的虚拟机进行迁移,且在每次迁移一个虚拟机后,比较该过载节点的负载与预设阈值,如此重复操作,直到在一个虚拟机进行迁移后,该过载节点的负载小于预设阈值,即该过载节点的负载已在正常通信范围,则停止待迁移队列中虚拟机的迁移。
68.本实施例中,可根据待迁徙虚拟机与其他虚拟机的相关性大小来确定迁移位置,也可根据节点网络中节点负载的大小来确定迁移位置,如迁移到负载较小的节点处,此处不进行具体限制。
69.本实施例中一个节点网络中可能存在多个过载节点,在实际应用中,可将一个节点网络中的所有过载节点加入在一个过载节点队列,然后通过上述方法依次对过载节点队列中的各过载节点进行虚拟机迁移,最终实现降低节点网络负载的目的。
70.当然,还可实时监控节点网络中各节点的负载,根据节点带宽实际情况分别设定阈值,当该节点的实际网络吞吐量大于设定阈值大小时,判定该节点业务网络过载,当出现新的过载节点时,将新的过载节点加入过载节点队列,表示需要对该过载节点队列的节点内的虚拟机进行迁移,如此,可实现节点网络负载的实时监控与调控,有效避免因业务网络负载过高而造成的sla(服务等级协议)降低甚至是业务中断。
71.本实施例中通过节点网络中的通信关系确定各虚拟机的流量相关性值,以通过该流量相关性作为过载节点中迁移优先级的评判标准,流量相关性较小的虚拟机即为与过载节点内虚拟机相关性较小,通信频率较低,因此将流量相关性较小的虚拟机作为优先进行迁移的虚拟机,在降低过载节点负载的同时,减少将与过载节点内虚拟机相关性较大的虚拟机进行迁移导致的相关性较强的虚拟机间网络拓扑距离变远问题,以及拓扑距离变远造成的通信损耗增加等问题;另一方面,还根据流量相关性值的数值大小依次将虚拟机加入待迁移队列,通过队列依次将优先级高的虚拟机进行迁移,迁移更快捷方便;再而,通过上述方式进行虚拟机迁移能有效优化多个虚拟机间互相通信对外提供服务情况下节点网络的虚拟机分布,使得节点网络中存在通信关系的虚拟机间距离更近,降低通信损耗。
72.图3是图2所示实施例中步骤s210在一示例性实施例中的流程图。如图3所示,在一示例性实施例中,该根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算各虚拟机的流量相关性值的过程可以包括步骤s310至步骤s370,详细介绍如下:
73.步骤s310:计算过载节点内任意两个虚拟机之间的第一相关性。
74.本实施中,过载节点内的各虚拟机相关性值通过对应虚拟机与其他虚拟机中间的相关性得到,具体地,通过过载节点内任意两个虚拟机之前的第一相关性可得到某一虚拟
机在过载节点内与其他任一虚拟机之间的第一相关性,如对于该过载节点内的虚拟机a,先在过载节点内的虚拟机中获取与该虚拟机a之间存在通信关系的虚拟机,若某虚拟机b与该虚拟机a之间存在通信关系,则利用相关性计算算法,计算该虚拟机a与虚拟机b之间的第一相关性,如果虚拟机a与虚拟机b之间不存在通信关系,则该虚拟机a与虚拟机b之间的第一相关性为0。
75.步骤s330:计算过载节点内任一虚拟机与上联交换机的其他节点内任一虚拟机之间的第二相关性。
76.本实施例中,上联交换机为过载节点的在接入层中的上联交换机,过载节点中的虚拟机通过该过载节点、接入层中的上联交换机进行业务通信,而一个上联交换机下可链接有多个节点,该多个节点中的虚拟机讯通过上联交换机进行业务通信,且该多个节点就包括有过载节点,其他节点下分别设置有多个虚拟机,第二相关性通过过载节点内任一虚拟机a和上联交换机中除过载节点外的其他节点内任一虚拟机c进行相关性计算得到。
77.通过上述过程,可得到过载节点内任一虚拟机a和上联交换机的其他节点内与该虚拟机a存在通信关系的任一虚拟机间c的第二相关性,同样的,如过载节点内的虚拟机a与虚拟机c之间不存在通信关系,则该虚拟机a与虚拟机c之间的第一相关性为0。
78.步骤s350:计算过载节点内任一虚拟机与跨交换机的节点内任一虚拟机之间的第三相关性。
79.本实施例中,跨交换机为与上联交换机存在通信交互的交换机,对于节点网络来说,接入层可能存在等多个交换机,而通过该接入层的多个交换机的流量还通过汇聚层的交换机进行流量汇聚,即该接入层的多个交换机之间可能也存在通信关系,因此将位于接入层且与过载节点的上联交换机存在通信关系的交换机称为跨交换机。
80.通过过载节点内任一虚拟机a与跨交换机的节点内任一虚拟机d之间的通信关系,可基于相关性计算算法得到第三相关性,同样的,如过载节点内的虚拟机a与虚拟机d之间不存在通信关系,则该虚拟机a与虚拟机d之间的第一相关性为0。
81.步骤s370:根据各虚拟机对应的第一相关性、第二相关性以及第三相关性分别计算各虚拟机的流量相关性值。
82.本实施例中,若需计算过载节点中某一虚拟机a的流量相关性值,则从步骤s310中得到虚拟机a与过载节点中任一虚拟机之间的第一相关性,并虚拟机a的所有第一相关性进行相加,可得到表征该虚拟机a与过载节点内虚拟机之间的总相关性(通信交流频率);然后从步骤s330中得到虚拟机a与上联交换机的其他节点内任一虚拟机的第二相关性,并将虚拟机a的所有第二相关性进行相加,可得到表征虚拟机a与上联交换机中其他节点内虚拟机之间的总相关性,接着从步骤s350中得到虚拟机a与跨交换机的节点内任一虚拟机之间的第三相关性,并将虚拟机a的所有第三相关性进行相加,可得到表征虚拟机a与跨交换机中其他节点内虚拟机之间的总相关性,然后通过该虚拟机a分别与过载节点内虚拟机、上联交换机中其他节点内虚拟机以及跨交换机中其他节点内虚拟机之间的总相关性计算该虚拟机a的流量相关性。为
83.具体可通过以下公式计算各虚拟机的流量相关性值:
84.85.其中,r(i)为过载节点内虚拟机i的流量相关性,j为过载节点内出i外的任一虚拟机,n1为过载节点,为虚拟机i与虚拟机j的第一相关性,nr为过载节点上联交换机中除过载节点外的节点r,s1为过载节点的上联交换机,m∈nr为节点r中的虚拟机m,为虚拟机i与虚拟机m之间的第二相关性,nq为跨交换机w中的节点q,sw为跨交换机w,n为跨交换机w中节点q的虚拟机n,为虚拟机i与虚拟机n之间的第三相关性。
86.本实施例中提出通过过载节点内虚拟机分别与过载节点内虚拟机、上联交换机中其他节点内虚拟机以及跨交换机中其他节点内虚拟机之间的总相关性计算对应虚拟机流量相关性方式,可通过虚拟机的流量相关性表征对应虚拟机与过载节点、上联交换机以及跨交换机的相关性,最终通过流量相关性确定对应虚拟机的迁移优先级,以通过该流量相关性将于过载节点相关性较低的虚拟机优先进行迁移,降低某些流量相关性较高的虚拟机进行迁移导致的通信损耗增加问题。
87.图4是图2所示实施例中步骤s250在一示例性实施例中的流程图。如图4所示,在一示例性实施例中,该依次对待迁移队列的各虚拟机进行迁移处理,直至过载节点的负载小于预设阈值的过程可以包括步骤s410至步骤s470,详细介绍如下:
88.步骤s410:从待迁移队列的队头获取第一虚拟机,将第一虚拟机迁移至节点网络中的其他节点,并删除待迁移队列的队头中的元素。
89.在对过载节点中的虚拟机进行迁移的时候,虚拟机间的东西向流量的相关性,可能会导致相关性较强的虚拟机间网络拓扑距离变远从而增加通信损耗,进而影响网络节点业务质量。
90.本实施例中,对过载节点内的虚拟机进行迁移以降低过载节点的负载,而由图2可知,待迁移队列即表征过载节点内虚拟机迁移的优先级,由此,该待迁移队列的对头对应的虚拟机即为迁移优先级最高的虚拟机。
91.在从待迁移队列中获取第一虚拟机后,可根据该第一虚拟机的第一相关性、第二相关性、第三相关性,选择与第一虚拟机相关性数值最大的虚拟机所在节点作为迁移目的地,也可以将第一虚拟机迁移至其他负载较小的节点上去,此处不进行具体限制,在确定了迁移目标节点后,可调用云管api(接口)和热迁移系统。
92.在对第一虚拟机进行迁移后,可删除待迁移队列的队头中元素,证明删除的元素对应的虚拟机已经进行了迁移。
93.步骤s430:判断过载节点的负载是否小于预设阈值。
94.当对待迁移队列中的一个虚拟机进行迁移后,再次检测过载节点的负载,检测其是否小于预设阈值,若小于,则证明该过载节点的负载已能实现正常通信水平且不会造成大量通信损耗,否则,该过载节点的负载仍然过重,会造成通信损耗。
95.步骤s450:若否,则转至步骤s410。
96.若过载节点的负载仍大于预设阈值,则该过载节点的负载仍然过重,会造成通信损耗,此时转至步骤s410,从待迁移队列中获取第一虚拟机,进行第一虚拟机的迁移,由于在先已经进行迁移的虚拟机对应在待迁移队列中的元素已经删除,因此本步骤中获得到的第一虚拟机仍然为待迁移队列的第一个元素,此处仍然认为是队头,即此时得到的第一虚拟机为待迁移队列中删除的元素的下一个元素。
97.步骤s470:否则,结束。
98.本实施例中,循环步骤s410并通过步骤s430判断过载节点在进行虚拟机迁移后是否还过载,直到过载节点的负载小于预设阈值,则结束循环,即不再继续将待迁移队列中的虚拟机进行迁移。
99.本实施例中根据待迁移队列的顺序,将过载节点中的虚拟机按照迁移优先级顺序迁移至其他节点,在有效降低过载节点负载的同时,按照优先级顺序进行待迁移队列的迁移更加科学,且不会造成与过载节点相关性较强的虚拟机迁移到其他节点导致的虚拟机间网络拓扑距离变远、通信损耗增加、业务质量受损。
100.图5是图4所示实施例中步骤s410在一示例性实施例中的流程图。如图5所示,在一示例性实施例中,该从待迁移队列的队头获取第一虚拟机,将第一虚拟机迁移至节点网络中的其他节点的过程可以包括步骤s510至步骤s530,详细介绍如下:
101.步骤s510:判断第一虚拟机与其他虚拟机之间是否存在相关性。
102.本实施例中,通过第一虚拟机与其他虚拟机之间的相关性,可确定该第一虚拟机的迁移目的地。
103.步骤s530:若不存在,则将节点网络中负载最小的节点为目标节点,将第一虚拟机迁移至目标节点。
104.在某种情况下,第一虚拟机不与其他任何虚拟机进行通信交互,即该第一虚拟机可单独通过节点与交换机实现业务通信,则该第一虚拟机迁移到任何位置均不会导致虚拟机之间的通信网络拓扑距离变远从而增加通信损耗,即可在节点网络中选择负载最小的节点作为目标节点,将该第一虚拟机迁移至目标节点,一方面减少过载节点的负载,另一方面,选择负载最小的节点作为目标节点也不会造成目标节点负载过大,相比于其他节点作为目标节点,更加科学。
105.本实施例中不与其他任何虚拟机进行通信交互第一虚拟机迁移至节点网络中选择负载最小的节点,减少过载节点的负载的同时,负载最小的节点作为迁移目标节点相比于其他节点作为目标节点更加科学,造成目标节点负载过大的可能性更低。
106.图6是图4所示实施例中步骤s410在一示例性实施例中的流程图。如图6所示,在一示例性实施例中,该从待迁移队列的队头获取第一虚拟机,将第一虚拟机迁移至节点网络中的其他节点的过程可以包括步骤s610至步骤s630,详细介绍如下:
107.步骤s610:根据第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机。
108.本实施例中,第二虚拟机与第一虚拟机的之间相关性数值最大。
109.本实施例,可通过第一虚拟机的第一相关性、第二相关性、第三相关性的数值大小,选择与第一虚拟相关性数值最大的虚拟机作为第二虚拟机,如该第一虚拟机中相关性数值最大的为第一相关性m,且第一相关性m为第一虚拟机与虚拟机m之间的第一线相关性,则将虚拟机m作为第二虚拟机。
110.步骤s630:若第二虚拟机部署在过载节点上,则将过载节点的上联交换机上负载最小的节点作为目标节点,并将第一虚拟机迁移至目标节点。
111.本实施例中,如果该第二虚拟机部署在过载节点上,即第一虚拟机与第二虚拟机的第一相关性最大,则表明该第一虚拟机与过载节点的相关性较高,但由于过载节点的负
载过大,且该第一虚拟机的迁移优先级仍然在过载节点内现有虚拟机的迁移优先级是最高的,如存在该第一虚拟机与上联交换机的其他虚拟机相关性也较大,但没有超过与第二虚拟机之间的第一相关性,即仍需将该第一虚拟机进行迁移,此时,即可将过载节点的上联交换机上负载最小的节点作为目标节点,并将第一虚拟机迁移至目标节点,在降低过载节点的负载同时,减少相关性较强的虚拟机间网络拓扑距离变远从而增加通信损耗。
112.本实施例提出当第一虚拟机的相关性最强虚拟机在过载节点内时,将第一虚拟机迁移至上联交换机上负载最小的节点,在降低过载节点的负载同时,不过分扩大第一虚拟机与第二虚拟机之间的网络拓扑距离,防止将第一虚拟机迁移至其他节点或是其他交换机内节点造成的相关性较强的虚拟机间网络拓扑距离变远、通信损耗增加、业务质量降低等问题。
113.图7是图4所示实施例中步骤s410在一示例性实施例中的流程图。如图7所示,在一示例性实施例中,该从待迁移队列的队头获取第一虚拟机,将第一虚拟机迁移至节点网络中的其他节点的过程可以包括步骤s710至步骤s770,详细介绍如下:
114.步骤s710:根据第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机。
115.本实施例中,第二虚拟机与第一虚拟机的之间相关性数值最大。
116.本实施例,可通过第一虚拟机的第一相关性、第二相关性、第三相关性的数值大小,选择与第一虚拟相关性数值最大的虚拟机作为第二虚拟机,如该第一虚拟机中相关性数值最大的为第三相关性n,且第三相关性n为第一虚拟机与虚拟机n之间的第三线相关性,则将虚拟机n作为第二虚拟机。
117.步骤s730:若第二虚拟机部署在跨交换机上,则判断第二虚拟机所在的节点是否满足第一虚拟机的迁移需求。
118.本实施例中,跨交换机为与过载节点的上联交换机存在通信交互的其他交换机。
119.本实施例中,判断第二虚拟机是否步骤在跨交换机上,如第二虚拟机与第一虚拟机之间的第三相关性最大,即可只该第二虚拟机为跨交换机上某一节点中的某一虚拟机,此时,第二虚拟机与第一虚拟机之间通信往来最频繁,因此确定第二虚拟机所在的节点,并检测第二虚拟机所在的节点的负载,判断第二虚拟机所在的节点的剩余资源是否满足第一虚拟机需求,即第一虚拟机迁移后是否会造成第二虚拟机所在的节点负载过大。
120.步骤s750:若满足,则将第一虚拟机迁移至第二虚拟机所在的节点。
121.若第二虚拟机所在的节点的剩余资源满足第一虚拟机需求,则可将第一虚拟机迁移至第二虚拟机所在的节点,此时第一虚拟机和与第一虚拟机相关性最强(通信最为频繁)的第二虚拟机间网络拓扑距离最短,通信损耗最少。
122.步骤s770:否则,将第二虚拟机所在的跨交换机上负载最小的节点作为目标节点,并将第一虚拟机迁移至目标节点。
123.若第二虚拟机所在的节点的剩余资源不满足第一虚拟机迁移需求,则证明第一虚拟机迁移至第二虚拟机所在的节点会造成第二虚拟机所在的节点负载过大,则将第二虚拟机所在的跨交换机上负载最小的节点作为目标节点,并将第一虚拟机迁移至目标节点,在降低过载节点负载的同时,第一虚拟机迁移至第二虚拟机所在的跨交换机上负载最小的节点,能降低第一虚拟机与第二虚拟机间网络拓扑距离,同时避免迁移至第二虚拟机所在的
节点造成的节点负载过大问题。
124.本实施例中,选择与第一虚拟机相关性最大的第二虚拟机所在的节点作为迁移节点,使得相关性最强的虚拟机间网络拓扑距离最短,通信损耗最少,同时在第二虚拟机所在的节点剩余资源不满足第一虚拟机迁移需求时,选择第二虚拟机所在的跨交换机上负载最小的节点作为迁移目标节点,在降低第一虚拟机与第二虚拟机间网络拓扑距离同时,避免迁移至第二虚拟机所在的节点造成的节点负载过大问题。
125.图8是图4所示实施例中步骤s410在一示例性实施例中的流程图。如图8所示,在一示例性实施例中,该从待迁移队列的队头获取第一虚拟机,将第一虚拟机迁移至节点网络中的其他节点的过程可以包括步骤s810至步骤s870,详细介绍如下:
126.步骤s810:根据第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机。
127.本实施例中,第二虚拟机与第一虚拟机的之间相关性数值最大。
128.本实施例,可通过第一虚拟机的第一相关性、第二相关性、第三相关性的数值大小,选择与第一虚拟相关性数值最大的虚拟机作为第二虚拟机,如该第一虚拟机中相关性数值最大的为第二相关性s,且第三相关性s为第一虚拟机与虚拟机s之间的第三线相关性,则将虚拟机s作为第二虚拟机。
129.步骤s830:若第二虚拟机部署在过载节点的上联交换机上,则判断第二虚拟机所在的节点是否满足第一虚拟机的迁移需求。
130.本实施例中,判断第二虚拟机是否步骤在上联交换机上,如第二虚拟机与第一虚拟机之间的第二相关性最大,即可只该第二虚拟机为上联交换机上其他节点内的某一虚拟机,此时,第二虚拟机与第一虚拟机之间通信往来最频繁,因此确定第二虚拟机所在的节点,并检测第二虚拟机所在的节点的负载,判断第二虚拟机所在的节点的剩余资源是否满足第一虚拟机需求,即第一虚拟机迁移后是否会造成第二虚拟机所在的节点负载过大。
131.步骤s850:若满足,则将第一虚拟机迁移至第二虚拟机所在的节点。
132.若第二虚拟机所在的节点的剩余资源满足第一虚拟机需求,则可将第一虚拟机迁移至第二虚拟机所在的节点,此时第一虚拟机和与第一虚拟机相关性最强(通信最为频繁)的第二虚拟机间网络拓扑距离最短,通信损耗最少。
133.步骤s870:否则,将上联交换机上负载最小的节点为目标节点,将第一虚拟机迁移至目标节点。
134.若第二虚拟机所在的节点的剩余资源不满足第一虚拟机迁移需求,则证明第一虚拟机迁移至第二虚拟机所在的节点会造成第二虚拟机所在的节点负载过大,此时,将上联交换机上负载最小的节点为目标节点,并将第一虚拟机迁移至目标节点,在降低过载节点负载的同时,第一虚拟机迁移至上联交换机上负载最小的节点,能控制第一虚拟机与第二虚拟机间网络拓扑距离,同时避免迁移至第二虚拟机所在的节点造成的节点负载过大问题。
135.本实施例中,选择与第一虚拟机相关性最大的第二虚拟机所在的节点作为迁移节点,使得相关性最强的虚拟机间网络拓扑距离最短,通信损耗最少,同时在第二虚拟机所在的节点剩余资源不满足第一虚拟机迁移需求时,选择第二虚拟机所在的跨交换机上负载最小的节点作为迁移目标节点,在控制第一虚拟机与第二虚拟机间网络拓扑距离同时,避免
迁移至第二虚拟机所在的节点造成的节点负载过大问题。
136.图9是根据另一示例性实施例示出的一种虚拟机迁移装置的结构示意图。如图9所示,在一示例性实施例中,该虚拟机迁移装置包括:
137.流量相关性值获取模块910,配置为根据过载节点内的各虚拟机在节点网络中的通信关系,分别计算各虚拟机的流量相关性值,流量相关性值根据对应虚拟机与节点网络中的其他虚拟机之间的相关性得到;
138.待迁移队列获取模块930,配置为根据各虚拟机的流量相关性值的数值大小,按照数值由小到大的排列顺序将对应虚拟机依次加入待迁移队列;
139.迁移模块950,配置为依次对待迁移队列的各虚拟机进行迁移处理,直至过载节点的负载小于预设阈值。
140.本实施例中,通过上述结构在降低过载节点负载的同时,减少将与过载节点内虚拟机相关性较大的虚拟机进行迁移导致的相关性较强的虚拟机间网络拓扑距离变远、通信损耗增加等问题。
141.在一实施例中,该流量相关性值获取模块910包括:
142.第一相关性获取单元,配置为计算过载节点内任意两个虚拟机之间的第一相关性;
143.第二相关性获取单元,配置为计算过载节点内任一虚拟机与上联交换机的其他节点内任一虚拟机之间的第二相关性,上联交换机为过载节点的上联交换机;
144.第三相关性获取单元,配置为计算过载节点内任一虚拟机与跨交换机的节点内任一虚拟机之间的第三相关性,跨交换机为与上联交换机存在通信交互的交换机;
145.流量相关性值获取单元,配置为根据各虚拟机对应的第一相关性、第二相关性以及第三相关性分别计算各虚拟机的流量相关性值。
146.在一实施例中,该迁移模块950包括:
147.迁移单元,配置为从待迁移队列的队头获取第一虚拟机,将第一虚拟机迁移至节点网络中的其他节点,并删除待迁移队列的队头中的元素;
148.循环单元,配置为循环执行从待迁移队列的队头获取第一虚拟机,将第一虚拟机迁移至节点网络中的其他节点,并删除待迁移队列的队头中的元素的步骤,直至过载节点的负载小于预设阈值。
149.在一实施例中,该迁移单元包括:
150.相关性判断板块,配置为判断第一虚拟机与其他虚拟机之间是否存在相关性;
151.第一迁移板块,配置为若不存在,则将节点网络中负载最小的节点为目标节点,将第一虚拟机迁移至目标节点。
152.在一实施例中,该迁移单元包括:
153.第二虚拟机查找板块,配置为根据第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机,第二虚拟机与第一虚拟机的之间相关性数值最大;
154.第二迁移板块,配置为若第二虚拟机部署在过载节点上,则将过载节点的上联交换机上负载最小的节点作为目标节点,并将第一虚拟机迁移至目标节点。
155.在一实施例中,该迁移单元包括:
156.第二虚拟机查询板块,配置为根据第一虚拟机与其他虚拟机之间的相关性数值大
小,获取第二虚拟机,第二虚拟机与第一虚拟机的之间相关性数值最大;
157.第三判断板块,配置为若第二虚拟机部署在跨交换机上,则判断第二虚拟机所在的节点是否满足第一虚拟机的迁移需求,跨交换机为与过载节点的上联交换机存在通信交互的其他交换机;
158.第三迁移板块,配置为若满足,则将第一虚拟机迁移至第二虚拟机所在的节点;
159.第四迁移板块,配置为否则,将第二虚拟机所在的跨交换机上负载最小的节点作为目标节点,并将第一虚拟机迁移至目标节点。
160.在一实施例中,该迁移单元包括:
161.第二虚拟机获取板块,配置为根据第一虚拟机与其他虚拟机之间的相关性数值大小,获取第二虚拟机,第二虚拟机与第一虚拟机的之间相关性数值最大;
162.第四判断板块,配置为若第二虚拟机部署在过载节点的上联交换机上,则判断第二虚拟机所在的节点是否满足第一虚拟机的迁移需求;
163.第五迁移板块,配置为若满足,则将第一虚拟机迁移至第二虚拟机所在的节点;
164.第六迁移板块,配置为否则,将上联交换机上负载最小的节点为目标节点,将第一虚拟机迁移至目标节点。
165.需要说明的是,上述实施例所提供的虚拟机迁移装置与上述实施例所提供的虚拟机迁移方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
166.本技术的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的虚拟机迁移方法。
167.图10示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
168.需要说明的是,图10示出的电子设备的计算机系统1600仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
169.如图10所示,计算机系统1600包括中央处理单元(central processing unit,cpu)1601,其可以根据存储在只读存储器(read-only memory,rom)1602中的程序或者从储存部分1608加载到随机访问存储器(random access memory,ram)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 1603中,还存储有系统操作所需的各种程序和数据。cpu 1601、rom 1602以及ram 1603通过总线1604彼此相连。输入/输出(input/output,i/o)接口1605也连接至总线1604。
170.以下部件连接至i/o接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至i/o接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
171.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质
上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(cpu)1601执行时,执行本技术的系统中限定的各种功能。
172.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
173.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
174.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
175.本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的虚拟机迁移方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
176.本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的虚拟机迁移方法。
177.上述内容,仅为本技术的较佳示例性实施例,并非用于限制本技术的实施方案,本
领域普通技术人员根据本技术的主要构思和精神,可以十分方便地进行相应的变通或修改,故本技术的保护范围应以权利要求书所要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1