CN105407080B - 一种制定虚拟机部署策略的方法及装置 - Google Patents

一种制定虚拟机部署策略的方法及装置 Download PDF

Info

Publication number
CN105407080B
CN105407080B CN201510691270.6A CN201510691270A CN105407080B CN 105407080 B CN105407080 B CN 105407080B CN 201510691270 A CN201510691270 A CN 201510691270A CN 105407080 B CN105407080 B CN 105407080B
Authority
CN
China
Prior art keywords
flow
virtual machine
max
machine
matrix
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
CN201510691270.6A
Other languages
English (en)
Other versions
CN105407080A (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.)
FUJIAN DUODUOYUN TECHNOLOGY Co.,Ltd.
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510691270.6A priority Critical patent/CN105407080B/zh
Publication of CN105407080A publication Critical patent/CN105407080A/zh
Application granted granted Critical
Publication of CN105407080B publication Critical patent/CN105407080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Abstract

本发明提供了一种制定虚拟机部署策略的方法,用于获得将多个虚拟机部署到多个物理机中的部署策略,根据当前网络状态构造流量需求矩阵和网络代价矩阵;根据所述流量需求矩阵,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流;根据所述虚拟机之间的流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略。应用本发明技术方案,可以得到流量需求的最大流大的两个虚拟机所在的物理机之间的通信代价尽可能的小的部署策略,因此,可以减少虚拟机时间网络传输所需要的网络资源,从而节省了物理机的网络资源消耗,提高了系统整体的资源利用率。

Description

一种制定虚拟机部署策略的方法及装置
技术领域
本发明涉及虚拟机技术领域,具体涉及一种制定将多个虚拟机部署到多个物理机中的部署策略方法和装置。
背景技术
网络功能虚拟化(Network Functions Virtualization,NFV)通过虚拟化的硬件设备,将网络功能从其所运行的专用硬件设备中分离出来,通过使用x86等通用性硬件以及虚拟化技术,来承载这些功能,使网络设备功能不再依赖于专用硬件,从而降低网络昂贵的设备成本。
在NFV场景下,虚拟化网络功能在云计算平台中部署,最重要的一个问题就是虚拟机的部署问题。根据网络、计算等维度的业务资源诉求,将虚拟机部署到最佳的物理机上,是一个十分重要的问题。一个好的部署方案可以提升系统整体的资源利用率、减少网络流量和网络延时,而一个差的部署方案,可能会导致负载失衡,系统出现热点,网络延时增加、数据丢失甚至业务中断。
现有技术中提供了一些虚拟机部署的方案。例如VMware的分布式资源调度技术(distributed resource scheduling,DRS),将多个物理主机构成的集群作为一个资源池,对CPU、内存、存储等计算和存储资源进行控制的管理,并为虚拟机智能地分配合适的资源。但是,DRS技术并没有对网络代价和网络流量需求作为考虑因素进行控制和管理,因此,可能出现网络负载失衡,导致网络资源的浪费和网络延迟的增加,影响虚拟机集群的性能。
发明内容
本发明实施例提供了一种虚拟机部署策略制定的方法,用于制定将多个虚拟机部署到多个物理机中的部署策略。本发明实施例还提供了与之相应的设备,以实现将最大流较大的虚拟机部署在通信代价较小的物理机中,从而更好地利用网络资源,提高虚拟机集群的性能。
第一方面,本发明实施例提供了一种虚拟机部署策略制定的方法,根据当前网络状态构造流量需求矩阵和网络代价矩阵,所述流量需求矩阵包含所述多个虚拟机中每个虚拟机与其他虚拟机之间的网络流量需求,所述网络代价矩阵包含所述多个物理机中每个物理机与其他物理机之间最短网络路径的通信代价;根据所述流量需求矩阵,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流;根据所述虚拟机之间的流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略,所述部署策略使流量需求的最大流较大的虚拟机部署在通信代价较小的物理机中。
在一种可能的设计中,根据所述流量需求矩阵的密度,选择采用并行方式或者串行方式根据所述流量需求矩阵计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
在一种可能的设计中,根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件,如果是,则根据所述流量需求矩阵采用并行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流;否则,根据所述流量需求矩阵采用串行方式计算出多个虚拟机中每个虚拟机之间流量需求的最大流。
在一种可能的设计中,所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q,确定所述密度是否满足预设的条件为:e>nlogn。
在一种可能的设计中,所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q;定义流量需求矩阵的密度值d=q/(n×n);所述预设的条件为所述密度值d大于预先设定值。
在一种可能的设计中,将所述多个虚拟机部署在所述多个物理机中的部署策略可以是a)选择虚拟机之间的网络流量需求的最大流最大的两个虚拟机中的任意一个虚拟机,根据所述网络代价矩阵,选择物理机之间最短网络路径的通信代价最小的两个物理机中的任意一个物理机,确定将所述虚拟机部署在所述物理机中;b)选取一个已经确定部署的虚拟机A,获取所述与虚拟机A之间的网络流量需求的最大流最大的虚拟机B,确定将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中,重复b)步骤,直到所有的虚拟机均确定要部署到的物理机,从而获得将所述多个虚拟机部署在所述多个物理机中的部署策略。
在一种可能的设计中,获取确定部署了所述虚拟机A的物理机的剩余资源信息,如果所述物理机剩余资源足以部署所述虚拟机B,确定将所述虚拟机B部署在所述物理机中,如果所述物理机剩余资源不足以部署所述虚拟机B,则确定将所述虚拟机B部署在于所述物理机通信代价最小的其他物理机中。
在一种可能的设计中,并行方式计算最大流时,选择任意一个虚拟机作为中心节点,其他虚拟机作为与该中心节点相连接的叶子节点,构造一个星型树;启动多个线程,其中,a)每个线程选取所述最大流树中一个叶子节点,根据所述流量需求矩阵并行计算出所述叶子节点与与所述叶子节点相连接的节点之间的最大流,并根据所述最大流更新所述最大流树;所述每个线程重复a)步骤直到最大流树中全部叶子节点均被进程选取,从而构造出所述虚拟机流量需求最大流树;所述虚拟机流量需求最大流树包含了所述虚拟机与其他虚拟机之间流量需求的最大流。
在一种可能的设计中,所述叶子节点编号为2至n,所述步骤a)中选取的叶子节点为s,与所述叶子节点相连接的节点为t;所述根据所述最大流更新所述最大流树包括:根据所述最大流,将最大流标注在所述节点s与所述节点t的链路上,并得到所述节点s与所述节点t的最小割;依次判断编号大于所述节点s编号的其他叶子节点,若所述其他叶子节点与所述节点t相邻,且所述其他叶子节点与所述叶子节点s在同一个割集中,则删除所述最大流树中所述其他叶子节点与所述节点t之间的链路,增加所述其他叶子节点与所述节点s之间的链路。
在一种可能的设计中,构造网络代价矩阵时,获取物理机网络拓扑信息;根据所述物理机网络拓扑信息,获得所述多个物理机之间的最短路径信息,所述最短路径信息包括物理机之间的链路数量;根据所述物理机之间的链路数量和所述链路的链路带宽信息,确定所述多个物理机之间的通信代价;根据所述通信代价,构造网络代价矩阵。
在一种可能的设计中,根据所述最短路径信息和带宽状态信息,确定所述多个物理机之间的通信代价时,所述最短路径信息包括链路数量m和每条条链路的带宽C,所述链路带宽信息包含每条链路的剩余带宽b,所述物理机两两之间的通信代价R根据如下公式获得:
其中,bk为所述最短路径上第k条链路的剩余带宽,Ck为所述最短路径上第k条链路的带宽,ω1,ω2为预设的加权系数。
第二方面,本发明还提供了一种虚拟机部署策略制定的设备,本发明实施例提供了一种虚拟机备份装置,所述装置用于指定虚拟机部署策略,该装置具有实现上述方法中备端虚拟机行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。其中,数据处理模块用于用于根据当前网络状态构造流量需求矩阵和网络代价矩阵,最大流计算模块用于计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流,最大流最小代价匹配模块用于根据所述虚拟机之间的流量需求最大流和所述网络代价矩阵。
又一方面,本发明实施例提供了一种制定虚拟机部署策略的装置,装置的结构中包括处理器,所述处理器被配置为支持装置执行上述方法中相应的功能。所述装置还可以包括存储器,所述存储器用于与处理器耦合,其保存必要的程序指令和数据。
再一方面,本发明实施例提供了一种计算机存储介质,用于存储为上述方面所述的装置所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。
可见,根据当前网络状态构造流量需求矩阵和网络代价矩阵,并根据网络需求矩阵获得虚拟机之间流量需求的最大流,从而根据最大流和网络代价矩阵,获得将流量需求的最大流大的虚拟机部署在通信代价小的物理机中的部署策略。由于该部署策略使得流量需求的最大流大的两个虚拟机所在的物理机之间的通信代价尽可能的小,因此,可以减少虚拟机时间网络传输所需要的网络资源,从而节省了物理机的网络资源消耗,从而减少了物理机之间的网络流量和网络延时,提高了系统整体的资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中列举的一种不同虚拟机部署策略的场景示意图。
图2是本申请实施例中一种制定虚拟机部署策略的设备的系统结构图。
图3是本发明提供的一种制定虚拟机部署策略的方法的流程示意图。
图4是本发明实施例提供的计算虚拟机之间流量需求的最大流的流程示意图。
图5是本发明实施例提供并行方式构造虚拟机之间的流量需求的最大流的最大流树的流程示意图。
图6是本发明实施例提供的构造最大流树的一个具体的流程的示意图;
图7是本发明实施例串行方式构造虚拟机之间的流量需求的最大流的最大流树的的流程示意图。
图8是本发明实施例中一种根据当前网络状态构造网络代价矩阵的实施例的流程图。
图9是本发明实施例中一种获得将所述多个虚拟机部署在所述多个物理机中的部署策略的方法的流程示意图。
图10是本发明实施例中所涉及的一种制定虚拟机部署策略的设备的结构示意图。
图11是本发明实施例中所涉及的又一种制定虚拟机部署策略的设备的结构示意图。
具体实施方式
本发明实施例提供一种制定虚拟机部署策略的方法,以实现根据当前网络状态动态制定出虚拟机部署策略,从而节省虚拟机之间网络传输所消耗的网络资源。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的概念。
流量需求矩阵:根据网络拓扑环境、网络资源的分配以及网络应用的需求,虚拟机之间会产生不同的网络流量需求。网络流量需求是虚拟机之间所需要传输的数据流量的需求。在描述网络流量需求时,可以采用虚拟机之间的需要传输的数据流量的大小来进行描述,也可以采用传输所需数据流量的网络资源进行描述。存储有虚拟机网络拓扑中的虚拟机之间的流量需求的矩阵,称之为流量需求矩阵。可以理解的是,矩阵只是描述虚拟机之间流量需求的一种方式,根据相同或者相近的思想,可以采用二维数组、树形结构等多种其他的数据结构来描述所述流量需求,并起到与本发明中所采用的流量需求矩阵相同的作用。
网络代价矩阵:指网络拓扑中物理机之间网络通信代价所构成的矩阵。根据不同的网络拓扑环境和网络资源,网络拓扑中的物理机之间有不同的网络代价。网络代价是指两个物理机之间进行通讯时,所需要消耗的网络资源。衡量两个物理机之间的网络代价有多种方式,例如,可以通过两个物理机之间的网络路径所通过的交换机个数或者网络节点个数来衡量;也可以根据所经过的链路数量来衡量。在本发明中,还提供了一种通过最短路径和带宽状态信息来衡量通信代价的方法。可以理解的是,矩阵只是描述物理机之间网络通信代价的一种方式,根据相同或者相近的思想,可以采用二维数组、树形结构等多种其他的数据结构来描述所述网络代价,并起到与本发明中所采用的网络代价矩阵相同的作用。
流量需求的最大流:根据虚拟机之间的流量需求,可以求得两个虚拟机之间流量需求的最大流。由于在网络拓扑中,每个虚拟机可能与其他多个虚拟机之间存在流量需求,只根据虚拟机两两之间的流量需求不能够准确的判断出在网络中流量需求最大的虚拟机节点。因此,可以通过虚拟机之间流量需求的最大流来判断虚拟机作为网络节点时与其他虚拟机的流量需求的大小。具体的,在对虚拟机分别计算与其他虚拟机流量需求的最大流后,流量需求的最大流最大的两个虚拟机可以认为是在网络中流量需求最大的两个节点。
虚拟机部署策略:即将虚拟机部署到物理机中的策略。正如现有技术中所介绍,虚拟机的部署策略会影响到网络系统的整体资源利用。为了便于理解,结合图1中列举了一种不同虚拟机部署策略的情景。如图1所示交换机为10G能力的交换机,仿真主机(SimulatorHost)向虚拟机1发送9G的数据,虚拟机1将数据平均转发给虚拟机2、虚拟机3、虚拟机4,每个流量3G。现有技术中进行调度时发现每台主机资源都满足需求,因此随机选择一台主机,例如主机4部署虚拟机1,由于部署策略不能感知网络流量需求,这样放置实际会导致数据流量超过交换机2和交换机3之间的链路带宽(该链路需要承载从仿真主机到虚拟机1上的9G的流量需求,以及从虚拟机1到虚拟机3以及虚拟机4的分别3G的流量需求,总共流量需求为15G,超过了交换机所能承载的最大流量),即从而出现网络性能瓶颈。如果将虚拟机1和虚拟机4互换位置(则所述链路仅需承担虚拟机1到虚拟机2、虚拟机4分别3G的流量需求,总共流量需求为6G,在交换机最大流量承载范围内),就可以满足网络资源的需求。
结合图2,是本申请实施例中一种制定虚拟机部署策略的设备的系统结构图。所述设备部署在Openstack云计算平台上,OpenStack包含两个主要模块:Nova和Swift,Nova为虚拟服务器部署和业务计算模块。其中,本发明所述装置可以集成在融合调度器Scheduler中,用于根据业务输入的虚拟机资源请求、服务器的资源情况和网络拓扑,计算出虚拟机的最佳放置位置。融合调度器与硬件资源管理器Hardware Mgt相连接,硬件资源管理主要负责采集网络状态,以及服务器硬件资源信息、系统的网络拓扑信息,并将信息上报给融合调度器。融合调度器和硬件资源管理器可以以插件的方式集成或者拓展在Nova模块中。
需要说明的是,本发明实施例提供的方法可以应用于集成在网络设备上的特定装置,也可以由网络设备中的一个或多个模块所实现,或者由单独的网络设备实现且该网络设备连接于网络拓扑之中。
参阅图3,是本发明提供的一种制定虚拟机部署策略的方法,所述方法包括:
S301、根据当前网络状态构造流量需求矩阵和网络代价矩阵。
当前网络状态包括当前网络的网络拓扑信息、网络资源使用情况、虚拟机数量以及虚拟机网络流量需求。其中,网络拓扑信息可以通过外部进行设定或者通过软件定义网络(Software Defined Network,SDN)来获得,网络资源的使用情况例如链路带宽可以通过Openstack云计算平台的监控服务获得,或者通过SDN获得;虚拟机数量以及流量需求可以通过外部输入预先设定,也可以通过采集到业务规模和网络流量的关系,根据大数据进行预测虚拟机不同业务规模下虚拟机之间的业务需求流量。
流量需求矩阵是根据虚拟机的数量以及虚拟机之间的流量需求生成的。用来描述多个虚拟机中每个虚拟机与其他虚拟机之间的网络流量需求。
网络代价矩阵是根据网络拓扑信息和网络资源使用情况所生成的,用来描述网络代价矩阵包含所述多个物理机中每个物理机与其他物理机之间最短网络路径的通信代价。物理机之间的最短路径可以根据网络拓扑信息,通过Floyd算法、Dijkstra算法、队列优化(Shortest Path Faster Algorithm,SPFA)算法等现有算法计算得到。根据物理机之间的最短路径,获得该路径上的通信代价。在获得了一个网络拓扑中物理机之间两两的最短路径的通信代价即可得到网络代价矩阵。
前述中已经介绍,描述通信代价可以有多种方式。例如,在一种实现方式中,可以采用最短路径中的链路数量来作为通信代价;或者,可以通过链路所通过的交换机或者节点的数量来描述通信代价。
S302、根据所述流量需求矩阵的密度,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流。
根据流量需求矩阵中虚拟机之间的流量需求,可以计算得到虚拟机之间的流量需求的最大流。具体的,根据流量需求矩阵可以还原出虚拟机之间的流量需求图,即以每个虚拟机作为一个节点,虚拟机之间的网络需求作为节点之间链路的最大流量,从而计算两个节点之间的最大流。计算最大流的方法可以采用现有的最大流计算算法,如增广路算法(augment path)、预推进算法(push label)、推进与重标记算法(Push-Relabel)等,也可以采用本发明在后文中所提供的算法。
通过不同的算法计算或者以不同的数据结构存储的最大流,可以包含不同的信息。例如,将虚拟机之间的最大流计算出并存储在一个矩阵中时,每个虚拟机的最大流可以只包括该虚拟机与其他虚拟机之间的流量需求的最大流,由于并不是所有虚拟机之间都存在流量需求,即并不是所有虚拟机之间都存在流量需求的最大流。在矩阵中,非零元素对应的两个虚拟机则代表了该两个虚拟机之间存在流量需求最大流;也可以通过本发明在后文中所提供的最大流树的构建方法计算得到的最大流,存储在一个最大流树中,两个虚拟机节点之间存在连接关系即意味这两个虚拟机之间存在流量需求最大流。
S303、根据所述流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略。
根据虚拟机的流量需求最大流和网络代价矩阵中物理机之间的网络代价,按照流量需求的最大流大的虚拟机部署在通信代价小的物理机中的原则,将虚拟机部署到物理机中。流量需求的最大流大的虚拟机是两台虚拟机之间的流量需求最大流的值比较大,通信代价小的物理机是指两台物理机之间的通信代价比较小。流量需求最大流大的虚拟机部署在通信代价小的物理机中,即是指将流量需求最大流比较大的两台虚拟机尽可能放置在通信代价比较小的物理机中。可以理解的是,当两台虚拟机可以放置在同一台物理机中时,认为两台虚拟机所放置的物理机的通信代价是最小的。
具体的,在一种实施方式下,当放置第一个虚拟机时,可以选择所有虚拟机之间流量需求的最大流最大的两个虚拟机中的一个,将其放置所有物理机之间通信代价最小的两个物理机中的一个中。再判断该物理机是否能部署将另一个虚拟机,如果能,则将该虚拟机部署到该物理机中,否则,将该虚拟机放置到与该物理机通信代价最小的另一台物理机中。之后,再选取已经部署的一台虚拟机,选择该虚拟机流量需求的最大流值最大的一台未部署的虚拟机,将其放置到与已经部署的虚拟机所在的物理机通信代价最小的物理机中。重复该步骤直到所有的虚拟机都部署到了物理机中。
可见,在本发明实施例中,根据当前网络状态构造流量需求矩阵和网络代价矩阵,并根据网络需求矩阵获得虚拟机之间流量需求的最大流,从而根据最大流和网络代价矩阵,获得将流量需求的最大流大的虚拟机部署在通信代价小的物理机中的部署策略。由于该部署策略使得流量需求的最大流大的两个虚拟机所在的物理机之间的通信代价尽可能的小,因此,可以减少虚拟机时间网络传输所需要的网络资源,从而节省了物理机的网络资源消耗,从而减少了物理机之间的网络流量和网络延时,提高了系统整体的资源利用率。
下面结合更多的附图,对本发明的实施例做进一步的说明。
图4是本发明实施例提供的计算虚拟机之间流量需求的最大流的流程示意图。结合图4对所述最大流的计算方法进行说明。
S401、根据流量需求矩阵的密度,选择采用并行方式或者串行方式根据所述流量需求矩阵计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
流量需求矩阵的密度,是指流量需求矩阵中的非零元素占矩阵中总元素个数的比例。流量需求矩阵的密度反映了需要部署的虚拟机之间的存在流量需求的虚拟机的比例,流量需求矩阵的密度越高,则说明需要部署的虚拟机之间存在流量需求的虚拟机的比例越高,从而使得虚拟机之间的流量需求关系越复杂。相应的,也会使得计算所述流量需求矩阵中的流量需求最大流更加复杂。由于并行方式和串行方式的计算效率和所需要的计算资源不同,因此,根据流量需求矩阵的密度来选择不同的执行方式,可以更有效的提高计算效率或者提高计算资源的利用率。
在一种实施方式中,根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件,如果是,则采用并行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流;否则,采用串行方式计算出多个虚拟机中每个虚拟机之间流量需求的最大流。
在一种具体的实现方式中,预设的条件可以获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q,当e>nlogn时,则满足预设的条件。
在另一种具体的实现方式中,预设的条件可以根据获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q来确定。定义流量需求矩阵的密度值d=q/(n×n),当所述密度值d大于预先设定值时,则认为所述密度满足了预设的条件。
S402、当判断采用并行方式时,根据所述流量需求矩阵采用并行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
并行方式计算虚拟机之间流量需求的最大流,是指应用算法来计算虚拟机之间的流量需求的最大流时,启用多个线程同时运行,从而提高算法的执行效率。对于采用不同的算法,执行并行方式的具体实施方式可以不同。例如,当以矩阵作为数据结构存储最大流时,可以启用多个线程,并行的计算每个虚拟机节点与其他节点之间的流量需求的最大流,并将计算结果添加到矩阵中。
在一种具体的实现方式中,可以采用最大流树作为数据结构存储虚拟机之间的流量需求的最大流。最大流树中每个节点代表一个虚拟机,节点之间的链路的值为虚拟机之间流量需求的最大流。在最大流树中,仅存在链路连接的节点之间才存储流量需求的最大流,因此相对于矩阵作为数据结构的方式而言,减少了最大流数据的数据量,从而减小了获取部署策略的复杂度。
并行方式构造存储虚拟机之间的流量需求的最大流的最大流树的实现方式可以为:每个线程选取所述最大流树中一个叶子节点,根据所述流量需求矩阵并行计算出所述叶子节点与相邻节点的最大流,并根据所述最大流的信息更新所述最大流树。所述每个线程重复该步骤直到最大流树中全部叶子节点均被进程选取,从而构造出所述虚拟机流量需求最大流树。
具体的,将叶子节点编号为2至n,选取的叶子节点为s,相邻节点为t;
根据所述最大流,将最大流标注在所述叶子节点s与相邻节点t的链路上,并得到所述叶子节点s与相邻节点t的最小割;依次判断编号大于所述叶子节点s编号的其他叶子节点,若所述其他叶子节点与所述相邻节点t相邻,且所述其他叶子节点与所述叶子节点s在同一个割集中,则删除所述最大流树中所述其他叶子节点与所述节点t之间的链路,增加所述其他叶子节点与所述节点s之间的链路。
下面结合图5给出并行方式构造虚拟机之间的流量需求的最大流的最大流树的一种更为具体的实现方式。
启动主线程;
S5001、主线程创建一棵星型树,以一个虚拟机作为中心节点,其他虚拟机作为叶子节点,并将叶子节点编号为2至n。
启动子线程,并行执行如下的步骤:
S5002、选取2至n个叶子节点中未被计算过的节点为源节点s,
S5003、判断S5002步骤能否取到未被计算过节点,若取不到则退出线程。
S5004、设置标志位flag为false。
S5005、判断flag是否为true,如果是,则认为所选取的节点s计算完成,,重新执行步骤S5002,否则执行S5006;
S5006、在星型树中选择一个与s节点相邻的节点为目的节点t,计算s与t之间的最大流,并由此得到最小割。
S5007、进入临界区,锁定星型树,使得其他子线程在锁定期间不能对星型树进行修改。
S5008、判断节点s与节点t是否相邻。如果s,t不相邻,则重新执行步骤S5005。由于并行计算时,星型树可能会被其他子线程修改,需要重新判定以确定s与t是否仍然相邻。
S5009、将最大流标注在星型树中s节点与t节点间的链路上
S5010、将flag标记为true。对于每一个编号大于源节点s的节点i,如果在星形树中t与i是邻居,但是i与s在同一个割集中,则去除星型树中i与t之间的链路,增加i与s之间的链路。
S5011、退出临界区,解锁星型树,重新执行步骤s5005。
S5012、当所有线程退出后,得到的树就是最大流树。
在本实现方式中,每个线程并行的计算所选取的节点与相邻节点的最大流,并在临界区中将星型树锁定后进行更新,从而在提高了计算效率的同时,保证了星型树不会并行修改而产生冲突。
为了方便理解,现结合图6,给出结合上述算法的一次具体的流程。如图所示,假设一共有6个虚拟机节点,节点之间双向流量需求均为1,则601为节点1-6之间的的流量需求图,该流量需求图对应的流量需求矩阵为一个6×6的所有元素均为1的矩阵。结合上述算法,构造出星型树如602所示。
选择一个非中心节点,节点2,计算节点2到与之相连接的节点的最大流,此处为与节点1的最大流,计算结果为3,并得到最小割集节点1、3、5和节点2、4、6;
选择编号大于2的节点,如果该节点与节点2是邻居,且在同一个割集中,则去除该节点与节点1的连接,增加给节点与节点2的连接。选择完全部节点后,可得到树603;
再一次选择未计算的非中心节点,直到全部节点都进过上述两个步骤的计算,可得到最后的最大流树604。
则在该最大流树中,相邻节点之间存在流量需求的最大流,可用于根据该最大流树进行虚拟机的部署。在后文中给出了根据该树进行部署的具体方式。
S403、当判断采用串行方式时,根据所述流量需求矩阵采用串行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
串行方式计算虚拟机之间流量需求的最大流,是指应用算法来计算虚拟机之间的流量需求的最大流时,启用单个线程串行的执行算法,从而节省系统的运算资源。
在一种具体的实现方式中,参考S402的介绍,可以采用最大流树作为数据结构存储虚拟机之间的流量需求的最大流。结合图7,给出了在一种可列举的方式中,串行计算构造存储虚拟机之间的流量需求的最大流的最大流树的一种更为具体的实现方式。
S601:创建一棵星型树,以第1个节点为中心,其他节点为叶子节点并编号2至n。
S602:依次选取编号为2至n的节点为源节点(s),重复做步骤S603和S604。
S603:在星型树中选择一个与s节点相邻的节点为目的节点(t),计算s与t之间的最大流,并由此得到最小割。将最大流标注在星型树中s节点与t节点间的链路上。
S604:对于每一个编号大于源节点s的节点i,如果在星形树中t与i是邻居,但是i与s在同一个割集中,则去除星型树中i与t的连接,增加i与s的连接。
将2至n个节点全部执行完上述S603、S604步骤,得到的树就是虚拟机之间的流量需求的最大流的最大流树。
本步骤的实现方式与前述实现方式中的原理类似,可以参照前述的流程进行理解。
在本实现方式中,只需要要一个线程即可完成最大流树的构建,对于流量需求矩阵密度比较小的情况,能够节约计算资源。
可见,在本实施例中,通过根据流量需求矩阵的密度,动态的选择串行或者并行方式计算储虚拟机之间的流量需求的最大流的最大流树,从而使得当流量需求矩阵的密度比较大从而造成算法复杂度比较高时,可以采用并行方式提高运算效率,减少生成最大流树所需要的时间;当流量需求矩阵的密度比较小时,相应算法复杂度也比较低,则可以采用串行方式构造最大流树,从而节省运算资源。
图8是本发明实施例中一种根据当前网络状态构造网络代价矩阵的实施例的流程图。
S801、获取物理机网络拓扑信息;
物理机的网络拓扑信息包含在前述的网络状态信息之中,可以通过外部进行设定或者通过软件定义网络(Software Defined Network,SDN)来获得。
S802、根据所述物理机网络拓扑信息,获得所述多个物理机之间的最短路径信息,所述最短路径信息包括物理机之间的链路数量;
最短路径信息是指两个物理机之间进行通信的最短路径上的路径信息。最短路径是指两台物理机进行通信时最小的物理路径。根据不同的判定标准,最短路径可能是不同的,例如,以链路长度作为路径长度时,链路长度最短的物理路径为最短路径,而以节点数作为路径长度时,链路中节点数最少的路径为最短路径。
S803、根据所述物理机之间的链路数量和所述链路的链路带宽信息,确定所述多个物理机之间的通信代价,根据所述通信代价,构造网络代价矩阵。
在一种实现方式中,所述最短路径信息包括链路数量m和每条条链路的带宽C,所述链路带宽信息包含每条链路的剩余带宽b,所述物理机两两之间的通信代价R根据如下公式获得:
其中,bk为所述最短路径上第k条链路的剩余带宽,Ck为所述最短路径上第k条链路的带宽,为预设的加权系数。根据所获得的物理机之间的通信代价构造通信代价矩阵。
图9是本发明实施例中一种根据所述流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略的方法的流程示意图。
S901、根据所述流量需求最大流,选择虚拟机之间的网络流量需求的最大流最大两个虚拟机中的一个虚拟机,根据所述网络代价矩阵,选择物理机之间最短网络路径的通信代价最小的两个物理机中的一个物理机,将所述虚拟机部署在所述物理机中。
具体的,根据最大流所存储的数据结构的不同,可以有多种选择虚拟机之间的网络流量需求的最大流最大两个虚拟机中的一个虚拟机的方法。例如,当最大流存储在最大流树的数据结构中时,选择最大流树中最大流值最大的链路上的两个虚拟机节点中的一个;或者,当最大流已矩阵方式存储,且保存了虚拟机两两之间的最大流时,可以选择两两之间最大流值最大的一组虚拟机中的一个,或者选择跟其他虚拟机之间的最大流值之和为最大的虚拟机。
S902、选取一个已经部署的虚拟机A,获取所述与虚拟机A之间的网络流量需求的最大流最大的虚拟机B,将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中。
重复S902步骤,直到所有的虚拟机均部署到物理机中,从而获得将所述多个虚拟机部署在所述多个物理机中的部署策略。
在一种实现方式中,在将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中时,可以获取部署了所述虚拟机A的物理机的剩余资源信息,如果所述物理机剩余资源足以部署所述虚拟机B,将所述虚拟机B部署在所述物理机中,如果所述物理机剩余资源不足以部署所述虚拟机B,则将所述虚拟机B部署在于所述物理机通信代价最小的其他物理机中。
前述实施方式可以有多重具体的实现方式。在选取一个已经部署的虚拟机A时,可以每次选取上一次完成部署的虚拟机,如果该虚拟机已经没有与之相连的未部署的虚拟机,则选择上上一次完成部署的虚拟机,由此,可以通过深度优先遍历完成全部虚拟机的部署;或者,可以在优先将与已经部署的虚拟机相连接的全部虚拟机部署完成后,从而通过广度优先遍历完成全部虚拟机的部署。或者,可以根据虚拟机之间的最大流关系,综合决策出能尽可能的将两两之间最大流更大的虚拟机部署到网络代价较小的物理机中。
图10是本发明上述实施例中所涉及的一种制定虚拟机部署策略设备1000的结构示意图。所所述装置部署在虚拟机网络平台上,可以是多个承载虚拟机的物理机中的一个,也可以是单独的物理机。物理机(或者称为服务器)包括计算机软件(包括操作系统、虚拟化软件等)和硬件(包括计算硬件,例如x86、ARM,存储硬件,网络硬件等)组成,每个计算节点上允许运行多台虚拟机。所述设备部署在Openstack云计算平台上,OpenStack包含两个主要模块:Nova和Swift,Nova为虚拟服务器部署和业务计算模块。其中,本发明所述装置可以集成在融合调度器Scheduler中,用于根据业务的输入的虚拟机资源请求、服务器的资源情况和网络拓扑,计算出虚拟机的最佳放置位置。融合调度器与硬件资源管理器HardwareMgt相连接,硬件资源管理主要负责采网络状态,包括集服务器硬件资源信息、采集或者注入系统的网络拓扑信息,并将网络状态上报给融合调度器。融合调度器和硬件资源管理器可以以插件的方式集成或者拓展在Nova模块中。
因此,所述设备可以独立的硬件的方式来实现,也可以是由物理机的处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。所述设备包括如下模块:
1001数据处理模块,用于根据当前网络状态构造流量需求矩阵和网络代价矩阵,所述流量需求矩阵包含所述多个虚拟机中每个虚拟机与其他虚拟机之间的网络流量需求,所述网络代价矩阵包含所述多个物理机中每个物理机与其他物理机之间最短网络路径的通信代价;
1002最大流计算模块,用于根据所述流量需求矩阵的密度,计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流;
可选的,所述最大流计算模块具体用于:根据所述流量需求矩阵的密度,选择采用并行方式或者串行方式计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
1003最大流最小代价匹配模块,根据所述流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略,所述部署策略使流量需求的最大流大的虚拟机部署在通信代价小的物理机中。
结合前述实施例,数据处理模块可以执行步骤S301、S701-S703的方法以及其可选的实现方式。最大流计算模块可以执行步骤S302、S401-S403、S5001-S5012、S601-S604的方法以及其可选的实现方式。最大流最小代价匹配模块可以执行S303、S801、S802的方法以及其可选的实现方式。
图11是本发明述实施例的一种计算机系统1100的另一种结构示意图。所述计算机系统在虚拟机网络中,用于根据业务的输入的虚拟机资源请求、服务器的资源情况和网络拓扑,计算出虚拟机的最佳放置位置。所述计算机系统包括处理器1101,以及与所述处理器相连接的存储器1102;
其中,所述处理器调用所述存储器中存储的指令以用于:
根据当前网络状态构造流量需求矩阵和网络代价矩阵,所述流量需求矩阵包含所述多个虚拟机中每个虚拟机与其他虚拟机之间的网络流量需求,所述网络代价矩阵包含所述多个物理机中每个物理机与其他物理机之间最短网络路径的通信代价;
根据所述流量需求矩阵,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流;
根据所述虚拟机之间的流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略,所述部署策略使流量需求的最大流较大的虚拟机部署在通信代价较小的物理机中。
在一些具体的实施例中,所述的处理器还可调用所述存储器中存储的指令以用于实现前述实施例中S301-S303、S401-S403、S5001-S5012、S601-S604、S701-S703以及S801、S802的方法以及其可选的实现方式的功能。
在实施例中,所述装置根据当前网络状态构造流量需求矩阵和网络代价矩阵,并根据网络需求矩阵获得虚拟机之间流量需求的最大流,从而根据最大流和网络代价矩阵,获得将流量需求的最大流大的虚拟机部署在通信代价小的物理机中的部署策略。由于该部署策略使得流量需求的最大流大的两个虚拟机所在的物理机之间的通信代价尽可能的小,因此,可以减少虚拟机时间网络传输所需要的网络资源,从而节省了物理机的网络资源消耗,从而减少了物理机之间的网络流量和网络延时,提高了系统整体的资源利用率。
同时,所述装置通过根据流量需求矩阵的密度,动态的选择串行或者并行方式计算储虚拟机之间的流量需求的最大流的最大流树,从而使得当流量需求矩阵的密度比较大从而造成算法复杂度比较高时,可以采用并行方式提高运算效率,减少生成最大流树所需要的时间;当流量需求矩阵的密度比较小时,相应算法复杂度也比较低,则可以采用串行方式构造最大流树,从而节省运算资源。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的数据传输方法、设备以及数据传输系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (33)

1.一种虚拟机部署策略制定的方法,用于制定将多个虚拟机部署到多个物理机中的部署策略,其特征在于,所述方法包括:
根据当前网络状态构造流量需求矩阵和网络代价矩阵,所述流量需求矩阵包含所述多个虚拟机中每个虚拟机与其他虚拟机之间的网络流量需求,所述网络代价矩阵包含所述多个物理机中每个物理机与其他物理机之间最短网络路径的通信代价;
根据所述流量需求矩阵,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流;
根据所述虚拟机之间的流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略,所述部署策略使流量需求的最大流较大的虚拟机部署在通信代价较小的物理机中。
2.根据权利要求1所述方法,其特征在于,根据所述流量需求矩阵,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流包括:
根据所述流量需求矩阵的密度,选择采用并行方式或者串行方式根据所述流量需求矩阵计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
3.根据权利要求2中任一所述方法,其特征在于,根据所述流量需求矩阵的密度,选择采用并行方式或者串行方式根据所述流量需求矩阵计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流包括:
根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件,
如果是,则根据所述流量需求矩阵采用并行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流;
否则,根据所述流量需求矩阵采用串行方式计算出多个虚拟机中每个虚拟机之间流量需求的最大流。
4.根据权利要求3所述方法,其特征在于,根据所述流量需求矩阵的密度确定所述密度是否满足预设的条件具体包括:
获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q;
所述预设的条件为:e>nlogn,所述e为自然底数。
5.根据权利要求3所述方法,其特征在于,根据所述流量需求矩阵的密度确定所述密度是否满足预设的条件具体包括:
获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q;
定义流量需求矩阵的密度值d=q/(n×n);
所述预设的条件为:所述密度值d大于预先设定值。
6.根据权利要求1-5中任一所述方法,其特征在于,根据所述流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略包括:
a)选择虚拟机之间的网络流量需求的最大流最大的两个虚拟机中的任意一个虚拟机,根据所述网络代价矩阵,选择物理机之间最短网络路径的通信代价最小的两个物理机中的任意一个物理机,确定将所述虚拟机部署在所述物理机中;
b)选取一个已经确定部署的虚拟机A,获取所述与虚拟机A之间的网络流量需求的最大流最大的虚拟机B,确定将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中,重复b)步骤,直到所有的虚拟机均确定要部署到的物理机,从而获得将所述多个虚拟机部署在所述多个物理机中的部署策略。
7.根据权利要求6所述方法,其特征在于,所述确定将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中具体包括:
获取确定部署了所述虚拟机A的物理机的剩余资源信息,如果所述物理机剩余资源足以部署所述虚拟机B,确定将所述虚拟机B部署在所述物理机中,如果所述物理机剩余资源不足以部署所述虚拟机B,则确定将所述虚拟机B部署在于所述物理机通信代价最小的其他物理机中。
8.根据权利要求2-5中任一所述方法,其特征在于,所述并行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流包括:
选择任意一个虚拟机作为中心节点,其他虚拟机作为与该中心节点相连接的叶子节点,构造一个星型树;
启动多个线程,其中,
c)每个线程选取所述最大流树中一个叶子节点,根据所述流量需求矩阵并行计算出所述叶子节点与与所述叶子节点相连接的节点之间的最大流,并根据所述最大流更新所述最大流树;
所述每个线程重复c)步骤直到最大流树中全部叶子节点均被进程选取,从而构造出所述虚拟机流量需求最大流树;
所述虚拟机流量需求最大流树包含了所述虚拟机与其他虚拟机之间流量需求的最大流。
9.根据权利要求8所述方法,其特征在于,所述叶子节点编号为2至n,所述步骤c)中选取的叶子节点为s,与所述叶子节点相连接的节点为t;
所述根据所述最大流更新所述最大流树包括:
根据所述最大流,将最大流标注在所述节点s与所述节点t的链路上,并得到所述节点s与所述节点t的最小割;
依次判断编号大于所述节点s编号的其他叶子节点,若所述其他叶子节点与所述节点t相邻,且所述其他叶子节点与所述叶子节点s在同一个割集中,则删除所述最大流树中所述其他叶子节点与所述节点t之间的链路,增加所述其他叶子节点与所述节点s之间的链路。
10.根据权利要求1-5中任一所述方法,其特征在于,所述根据当前网络状态构造网络代价矩阵包括:
获取物理机网络拓扑信息;
根据所述物理机网络拓扑信息,获得所述多个物理机之间的最短路径信息,所述最短路径信息包括物理机之间的链路数量;
根据所述物理机之间的链路数量和所述链路的链路带宽信息,确定所述多个物理机之间的通信代价;
根据所述通信代价,构造网络代价矩阵。
11.根据权利要求10所述方法,其特征在于,所述根据所述最短路径信息和带宽状态信息,确定所述多个物理机之间的通信代价包括:
所述最短路径信息包括链路数量m和每条条链路的带宽C,所述链路带宽信息包含每条链路的剩余带宽b,所述物理机两两之间的通信代价R根据如下公式获得:
其中,bk为所述最短路径上第k条链路的剩余带宽,Ck为所述最短路径上第k条链路的带宽,ω1,ω2为预设的加权系数。
12.一种虚拟机部署策略制定的设备,其特征在于,所述设备包括:
数据处理模块,用于根据当前网络状态构造流量需求矩阵和网络代价矩阵,所述流量需求矩阵包含多个虚拟机中每个虚拟机与其他虚拟机之间的网络流量需求,所述网络代价矩阵包含多个物理机中每个物理机与其他物理机之间最短网络路径的通信代价;
最大流计算模块,用于根据所述流量需求矩阵,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流;
最大流最小代价匹配模块,用于根据所述虚拟机之间的流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略,所述部署策略使流量需求的最大流较大的虚拟机部署在通信代价较小的物理机中。
13.根据权利要求12所述设备,其特征在于,所述最大流计算模块具体用于:根据所述流量需求矩阵的密度,选择采用并行方式或者串行方式计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
14.根据权利要求13所述设备,其特征在于,所述最大流计算模块具体用于:根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件,如果是,则根据所述流量需求矩阵采用并行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流;否则,根据所述流量需求矩阵采用串行方式计算出多个虚拟机中每个虚拟机之间流量需求的最大流。
15.根据权利要求14所述设备,其特征在于,所述最大流计算模块具体用于,根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件时,
获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q;
所述预设的条件为:e>nlogn,所述e为自然底数。
16.根据权利要求14所述设备,其特征在于,所述最大流计算模块具体用于,根据判断所述密度是否超过了预设的条件时,
获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q;
定义流量需求矩阵的密度值d=q/(n×n);
所述预设的条件为:所述密度值d大于预先设定值。
17.根据权利要求12-16中任一所述设备,其特征在于,所述最大流最小代价匹配模块具体用于:
a)选择虚拟机之间的网络流量需求的最大流最大的两个虚拟机中的任意一个虚拟机,根据所述网络代价矩阵,选择物理机之间最短网络路径的通信代价最小的两个物理机中的任意一个物理机,确定将所述虚拟机部署在所述物理机中;
b)选取一个已经确定部署的虚拟机A,获取所述与虚拟机A之间的网络流量需求的最大流最大的虚拟机B,确定将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中,重复b)步骤,直到所有的虚拟机均确定要部署到的物理机,从而获得将所述多个虚拟机部署在所述多个物理机中的部署策略。
18.根据权利要求17所述设备,其特征在于,所述最大流最小代价匹配模块具体用于:确定将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中时,
获取确定部署了所述虚拟机A的物理机的剩余资源信息,如果所述物理机剩余资源足以部署所述虚拟机B,确定将所述虚拟机B部署在所述物理机中,如果所述物理机剩余资源不足以部署所述虚拟机B,则确定将所述虚拟机B部署在于所述物理机通信代价最小的其他物理机中。
19.根据权利要求12-16中任一所述设备,其特征在于,所述最大流计算模块具体用于:以并行方式计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流时,
选择任意一个虚拟机作为中心节点,其他虚拟机作为与该中心节点相连接的叶子节点,构造一个星型树;
启动多个线程,其中,
c)每个线程选取所述最大流树中一个叶子节点,根据所述流量需求矩阵并行计算出所述叶子节点与与所述叶子节点相连接的节点之间的最大流,并根据所述最大流更新所述最大流树;
所述每个线程重复c)步骤直到最大流树中全部叶子节点均被进程选取,从而构造出所述虚拟机流量需求最大流树;
所述虚拟机流量需求最大流树包含了所述虚拟机与其他虚拟机之间流量需求的最大流。
20.根据权利要求19所述设备,其特征在于,所述叶子节点编号为2至n,所述步骤c)中选取的叶子节点为s,与所述叶子节点相连接的节点为t;
所述最大流计算模块具体用于:根据所述最大流的信息更新所述最大流树时,根据所述最大流,将最大流标注在所述节点s与所述节点t的链路上,并得到所述节点s与所述节点t的最小割;
依次判断编号大于所述节点s编号的其他叶子节点,若所述其他叶子节点与所述节点t相邻,且所述其他叶子节点与所述叶子节点s在同一个割集中,则删除所述最大流树中所述其他叶子节点与所述节点t之间的链路,增加所述其他叶子节点与所述节点s之间的链路。
21.根据权利要求12-16中任一所述设备,其特征在于,所述数据处理模块具体用于,根据当前网络状态构造网络代价矩阵时,
获取物理机网络拓扑信息;
根据所述物理机网络拓扑信息,获得所述多个物理机之间的最短路径信息,所述最短路径信息包括物理机之间的链路数量;
根据所述物理机之间的链路数量和所述链路的链路带宽信息,确定所述多个物理机之间的通信代价;
根据所述通信代价,构造网络代价矩阵。
22.根据权利要求21所述设备,其特征在于,所述数据处理模块具体用于,根据所述最短路径信息和带宽状态信息,确定所述多个物理机之间的通信代价时,
所述最短路径信息包括链路数量m和每条条链路的带宽C,所述链路带宽信息包含每条链路的剩余带宽b,所述物理机两两之间的通信代价R根据如下公式获得:
其中,bk为所述最短路径上第k条链路的剩余带宽,Ck为所述最短路径上第k条链路的带宽,ω1,ω2为预设的加权系数。
23.一种计算机系统,其特征在于,所述计算机系统包括:
处理器,以及与所述处理器相连接的存储器;
其中,所述处理器调用所述存储器中存储的指令以用于:
根据当前网络状态构造流量需求矩阵和网络代价矩阵,所述流量需求矩阵包含多个虚拟机中每个虚拟机与其他虚拟机之间的网络流量需求,所述网络代价矩阵包含多个物理机中每个物理机与其他物理机之间最短网络路径的通信代价;
根据所述流量需求矩阵,计算出多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流;
根据所述虚拟机之间的流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略,所述部署策略使流量需求的最大流较大的虚拟机部署在通信代价较小的物理机中。
24.根据权利要求23所述计算机系统,其特征在于,根据所述流量需求矩阵,计算出所述多个虚拟机中每个虚拟机与其他至少一个虚拟机之间流量需求的最大流时,所述处理器具体用于:
根据所述流量需求矩阵的密度,选择采用并行方式或者串行方式计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流。
25.根据权利要求24所述计算机系统,其特征在于,根据所述流量需求矩阵的密度,选择采用并行方式或者串行方式计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流时,所述处理器具体用于:
根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件,
如果是,则根据所述流量需求矩阵采用并行方式计算出多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流;
否则,根据所述流量需求矩阵采用串行方式计算出多个虚拟机中每个虚拟机之间流量需求的最大流。
26.根据权利要求25所述计算机系统,其特征在于,所述处理器具体用于:根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件时,获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q;所述预设的条件为:e>nlogn,所述e为自然底数。
27.根据权利要求25所述计算机系统,其特征在于,根据所述流量需求矩阵的密度,确定所述密度是否满足预设的条件时,所述处理器用于:
获取所述流量需求矩阵为n×n的矩阵,矩阵中非零元素个数q;定义流量需求矩阵的密度值d=q/(n×n);所述预设的条件为:所述密度值d大于预先设定值。
28.根据权利要求23-27中任一所述计算机系统,其特征在于,所述处理器用于:
根据所述流量需求最大流和所述网络代价矩阵,获得将所述多个虚拟机部署在所述多个物理机中的部署策略时,
a)选择虚拟机之间的网络流量需求的最大流最大的两个虚拟机中的任意一个虚拟机,根据所述网络代价矩阵,选择物理机之间最短网络路径的通信代价最小的两个物理机中的任意一个物理机,确定将所述虚拟机部署在所述物理机中;
b)选取一个已经确定部署的虚拟机A,获取所述与虚拟机A之间的网络流量需求的最大流最大的虚拟机B,确定将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中,重复b)步骤,直到所有的虚拟机均确定要部署到的物理机,从而获得将所述多个虚拟机部署在所述多个物理机中的部署策略。
29.根据权利要求28所述计算机系统,其特征在于,所述处理器用于,确定将所述虚拟机B部署到可部署的物理机中与部署了所述虚拟机A的物理机通信代价最小的物理机中时:
获取确定部署了所述虚拟机A的物理机的剩余资源信息,如果所述物理机剩余资源足以部署所述虚拟机B,确定将所述虚拟机B部署在所述物理机中,如果所述物理机剩余资源不足以部署所述虚拟机B,则确定将所述虚拟机B部署在于所述物理机通信代价最小的其他物理机中。
30.根据权利要求23-27中任一所述计算机系统,其特征在于,所述处理器用于,并行方式计算出所述多个虚拟机中每个虚拟机与其他虚拟机之间流量需求的最大流时,选择任意一个虚拟机作为中心节点,其他虚拟机作为与该中心节点相连接的叶子节点,构造一个星型树;
启动多个线程,其中,
c)每个线程选取所述最大流树中一个叶子节点,根据所述流量需求矩阵并行计算出所述叶子节点与与所述叶子节点相连接的节点之间的最大流,并根据所述最大流更新所述最大流树;
所述每个线程重复c)步骤直到最大流树中全部叶子节点均被进程选取,从而构造出所述虚拟机流量需求最大流树;
所述虚拟机流量需求最大流树包含了所述虚拟机与其他虚拟机之间流量需求的最大流。
31.根据权利要求30所述计算机系统,其特征在于,所述叶子节点编号为2至n,所述步骤c)中选取的叶子节点为s,与所述叶子节点相连接的节点为t;所述处理器用于,根据所述最大流更新所述最大流树时,
根据所述最大流,将最大流标注在所述节点s与所述节点t的链路上,并得到所述节点s与所述节点t的最小割;
依次判断编号大于所述节点s编号的其他叶子节点,若所述其他叶子节点与所述节点t相邻,且所述其他叶子节点与所述叶子节点s在同一个割集中,则删除所述最大流树中所述其他叶子节点与所述节点t之间的链路,增加所述其他叶子节点与所述节点s之间的链路。
32.根据权利要求23-27中任一所述计算机系统,其特征在于,所述处理器具体用于,根据当前网络状态构造网络代价矩阵时:
获取物理机网络拓扑信息;根据所述物理机网络拓扑信息,获得所述多个物理机之间的最短路径信息,所述最短路径信息包括物理机之间的链路数量;根据所述物理机之间的链路数量和所述链路的链路带宽信息,确定所述多个物理机之间的通信代价;根据所述通信代价,构造网络代价矩阵。
33.根据权利要求32所述计算机系统,其特征在于,所述处理器具体用于,根据所述最短路径信息和带宽状态信息,确定所述多个物理机之间的通信代价时:所述最短路径信息包括链路数量m和每条条链路的带宽C,所述链路带宽信息包含每条链路的剩余带宽b,所述物理机两两之间的通信代价R根据如下公式获得:
其中,bk为所述最短路径上第k条链路的剩余带宽,Ck为所述最短路径上第k条链路的带宽,ω1,ω2为预设的加权系数。
CN201510691270.6A 2015-10-22 2015-10-22 一种制定虚拟机部署策略的方法及装置 Active CN105407080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510691270.6A CN105407080B (zh) 2015-10-22 2015-10-22 一种制定虚拟机部署策略的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510691270.6A CN105407080B (zh) 2015-10-22 2015-10-22 一种制定虚拟机部署策略的方法及装置

Publications (2)

Publication Number Publication Date
CN105407080A CN105407080A (zh) 2016-03-16
CN105407080B true CN105407080B (zh) 2018-11-30

Family

ID=55472335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510691270.6A Active CN105407080B (zh) 2015-10-22 2015-10-22 一种制定虚拟机部署策略的方法及装置

Country Status (1)

Country Link
CN (1) CN105407080B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107124306B (zh) * 2017-04-24 2019-11-05 电子科技大学 网络功能虚拟化环境下的内容交付网络服务器优化部署方法
CN107153696A (zh) * 2017-05-08 2017-09-12 郑州云海信息技术有限公司 一种面向云存储的数据副本放置方法
CN107749805A (zh) * 2017-10-30 2018-03-02 山东浪潮云服务信息科技有限公司 一种虚拟机部署方法及装置
CN108763013B (zh) * 2018-04-11 2021-10-26 北京百度网讯科技有限公司 一种故障处理方法、装置、设备和计算机存储介质
CN108616394B (zh) * 2018-04-25 2021-03-02 电子科技大学 一种虚拟网络功能备份和部署方法
CN113472659B (zh) * 2021-07-02 2023-04-18 中国电信股份有限公司 转发路径的确定方法、装置及sdn控制器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8160063B2 (en) * 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《Consolidating Virtual Machines with Dynamic Bandwidth Demand in Data Centers》;Meng Wang etc.;《INFOCOM, 2011 Proceedings IEEE》;20110415;第34卷(第17期);全文 *
《Improving the scalability of data center networks with traffic-aware virtual machine placement》;X. Meng etc.;《Proceedings of IEEE INFOCOM 2010》;20100506;第54卷(第1期);全文 *
《面向云数据中心的虚拟机调度机制研究》;董健康;《中国博士学位论文全文数据库》;20150127(第4期);全文 *

Also Published As

Publication number Publication date
CN105407080A (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
CN105407080B (zh) 一种制定虚拟机部署策略的方法及装置
Resende et al. Greedy randomized adaptive search procedures: Advances and applications
CN105409172B (zh) 逻辑交换机
CN105159610B (zh) 大规模数据处理系统及方法
CN103176849B (zh) 一种基于资源分类的虚拟机集群的部署方法
CN110532076A (zh) 一种云资源创建的方法、系统、设备及可读存储介质
CN102904794A (zh) 一种虚拟网络映射方法和装置
CN110463140A (zh) 计算机数据中心的网络服务水平协议
CN107111517A (zh) 针对归约器任务的虚拟机优化分配和/或生成
CN109660376A (zh) 一种虚拟网络映射方法、设备和存储介质
CN105847237A (zh) 一种基于nfv的安全管理方法和装置
CN109347741A (zh) 基于带内网络遥测技术的全网路径最优化遍历方法及装置
CN104823418B (zh) 用于防止需求死锁并实现均衡链路利用的流量工程系统
CN104506337B (zh) 基于区域性故障预测的虚拟网络映射方法及装置
CN106533826A (zh) 网络状态的探测方法及系统
CN106302211A (zh) 一种网络资源的请求量控制方法和装置
CN107967164A (zh) 一种虚拟机热迁移的方法及系统
CN105391651A (zh) 一种虚拟光网络多层资源汇聚方法和系统
CN108390771A (zh) 一种网络拓扑重建方法和装置
CN109039959A (zh) 一种sdn网络规则的一致性判断方法及相关装置
CN114422018B (zh) 卫星网络仿真系统及测试方法、设备、存储介质和产品
US10785107B2 (en) Method and apparatus for optimizing legacy network infrastructure
CN107749805A (zh) 一种虚拟机部署方法及装置
Zhu et al. Double-agent reinforced vNFC deployment in EONs for cloud-edge computing
CN105049315B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200713

Address after: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20200713

Address after: Room 01, 7th floor, Huaxiong building, No.5, liangcuo Road, Gulou District, Fuzhou City, Fujian Province 350001

Patentee after: FUJIAN DUODUOYUN TECHNOLOGY Co.,Ltd.

Address before: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

TR01 Transfer of patent right