CN104639639A - 一种虚拟机部署位置的调整方法、装置及系统 - Google Patents
一种虚拟机部署位置的调整方法、装置及系统 Download PDFInfo
- Publication number
- CN104639639A CN104639639A CN201510067057.8A CN201510067057A CN104639639A CN 104639639 A CN104639639 A CN 104639639A CN 201510067057 A CN201510067057 A CN 201510067057A CN 104639639 A CN104639639 A CN 104639639A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- node
- machine node
- communication cost
- correction
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000001105 regulatory effect Effects 0.000 title abstract 9
- 238000004891 communication Methods 0.000 claims abstract description 143
- 238000012937 correction Methods 0.000 claims description 106
- 238000009499 grossing Methods 0.000 claims description 35
- 230000011218 segmentation Effects 0.000 claims description 29
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 2
- 239000011159 matrix material Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种虚拟机部署位置的调整方法、装置及系统,针对现有云计算系统虚拟机部署位置调整方案中节点间通信代价对调整结果影响过大的问题,本发明实施例所提供的技术方案,通过对节点间通信代价进行修正,使得修正后的节点间通信代价既能体现对虚拟机部署位置调整结果的影响,又使得通信流量在调整结果中起到主导影响作用,从而可以得到更为合理的虚拟机部署位置调整结果,降低云计算系统的内部的带宽消耗。
Description
技术领域
本发明涉及云计算技术领域,特别是涉及一种虚拟机部署位置的调整方法、装置及系统。
背景技术
云计算技术在近几年发展迅速,随着网络密集型应用在云平台数据中心网络的大量部署,云计算系统的内部网络带宽成为云计算环境下的一种瓶颈资源。如何减少云计算系统内部的带宽消耗,是部署系统时需要考虑的重要问题。
在云计算系统中,虚拟机是提供云计算服务的基本单元,随着系统的运行,不同的虚拟机之间会产生大量的交互数据,占用系统的网络带宽资源,因此,虚拟机的调度管理直接决定整个系统的内部带宽消耗,进而影响整个系统的性能和响应速度。针对上述问题,现有技术提出一种TVMPP(Traffic-aware VMPlacement Problem)优化算法,该方法以虚拟机之间的整体通信代价最小为目标,对系统中虚拟机的部署位置进行动态调整,使得虚拟机之间所产生的系统内部数据流量尽量控制在物理机内部,或是控制在通信代价较小的同一物理邻接域之内。从而更有效地利用系统的内部网络资源,提高系统整体性能和响应速度。
TVMPP将云计算系统中的每一台虚拟机看作一个网络节点,定义任意两个节点间的邻接度为:节点间通信代价与节点间流量的乘积,根据系统网络节点的邻接度情况对虚拟机的部署位置进行调整。调整基于最小割算法实现,其基本思路是:如果两个节点之间的通信代价越高、并且节点流量越大,那么就越应该降低这两个节点之间的通信代价。然而,通过大量的测试发现:尽管TVMPP的整体思路是合理的,但是在实际应用时,经常不能得到预期的调整效果,难以切实解决系统内部的带宽消耗问题。
发明内容
为解决上述技术问题,本发明实施例提供一种虚拟机部署位置的调整方法、装置及系统,以实现云计算系统中虚拟机的合理部署,降低系统内部的带宽消耗,技术方案如下:
根据本发明实施例的第一方面,提供一种虚拟机部署位置的调整方法,该方法包括:
根据虚拟机所在网络的拓扑结构,以及根据所述网络中任意两个虚拟机节点i和j所述属的物理服务器情况确定所述节点i和j之间的通信代价Cij(i≠j),其中,在i和j不属于同一物理服务器的情况下,Cij为i和j之间的交换机数量,在i和j属于同一物理服务器的情况下,Cij为预设的数值,i的取值包括不大于N的所有自然数,j的取值包括不大于N的所有自然数,N为所述网络中虚拟机节点的个数;
对所述Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’;
获得所述两个虚拟机节点i和j之间在预设历史时段的流量统计值Dij;
根据所述Cij’和Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’;
对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,每个集合包含至少一个虚拟机节点,其中,所述修正邻接度图中的不同的顶点分别对应一个不同的虚拟机节点、且所述两个虚拟机节点i和j所对应的两个顶点之间存在一条以Aij’为权重值的边;
根据所述至少两个集合,对所述网络中的虚拟机节点的部署位置进行调整,以使得对于任意虚拟机节点x,若存在虚拟机节点y与x属于相同的集合、虚拟机节点z与x属于不同的集合,则x与y之间的通信代价不大于x与z之间的通信代价。
结合本发明实施例的第一方面,在第一种可能的实现方式中,所述对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,包括:
对包含N个虚拟机节点的修正邻接度图使用K阶最小割算法,得到K个集合,其中,K为预设的数值且K为不小于2的自然数。
结合本发明实施例的第一方面,在第二种可能的实现方式中,对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,包括:
根据预设的聚类规则,对N个虚拟机节点进行聚类,得到至少一个类簇,在同一个类簇中,对于任意一个节点P,存在至少另一个节点P’,使得P’与P之间的修正邻接度不小于预设的阈值;
根据预定义的物理邻接域划分规则,确定所述网络中每个物理邻接域所能容纳的虚拟机节点数量M,对各个类簇对应的修正邻接度图分别迭代使用2阶最小割算法,得到对应于各个类簇的分割结果;其中,每组分割结果中包含至少一个集合,且每个集合中的虚拟机节点数量不大于M。
结合本发明实施例的第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述物理邻接域划分规则包括:将每台物理服务器划分为一个物理邻接域。
结合本发明实施例的第一方面,在第四种可能的实现方式中,所述对所述Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’包括:
利用Cij’=Cij*Pij+CE*(1-Pij),计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,Pij为Cij在所述网络中所有Cij取值中的统计概率,CE为所有Cij的算术平均值。
结合本发明实施例的第一方面,在第五种可能的实现方式中,所述对所述Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’,包括:
利用Cij’=a*Cij+CE,计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,a为预设的修正系数,a∈(0,1),CE为所有Cij的算术平均值。
结合本发明实施例的第一方面,在第六种可能的实现方式中,所述根据所述Cij’和Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’,包括:
利用Aij’=Cij’*Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’。
根据本发明实施例的第二方面,提供一种虚拟机部署位置调整装置,该装置包括:
通信代价确定模块,用于根据虚拟机所在网络的拓扑结构,以及根据所述网络中任意两个虚拟机节点i和j所述属的物理服务器情况确定所述节点i和j之间的通信代价Cij(i≠j),其中,在i和j不属于同一物理服务器的情况下,Cij为i和j之间的交换机数量,在i和j属于同一物理服务器的情况下,Cij为预设的数值,i的取值包括不大于N的所有自然数,j的取值包括不大于N的所有自然数,N为所述网络中虚拟机节点的个数;
数据平滑模块,用于对所述通信代价确定模块得到的Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’;
流量统计值获得模块,用于获得所述两个虚拟机节点i和j之间在预设历史时段的流量统计值Dij;
修正邻接度计算模块,用于根据所述数据平滑模块得到的Cij’和所述流量统计值获得模块获得的Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’;
最小割计算模块,用于对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,每个集合包含至少一个虚拟机节点,其中,所述修正邻接度图中的不同的顶点分别对应一个不同的虚拟机节点、且所述两个虚拟机节点i和j所对应的两个顶点之间存在一条以所述修正邻接度计算模块计算得到的Aij’为权重值的边;
调整模块,用于根据所述最小割计算模块得到的至少两个集合,对所述网络中的虚拟机节点的部署位置进行调整,以使得对于任意虚拟机节点x,若存在虚拟机节点y与x属于相同的集合、虚拟机节点z与x属于不同的集合,则x与y之间的通信代价不大于x与z之间的通信代价。
结合本发明实施例的第二方面,在第一种可能的实现方式中,所述最小割计算模块,具体用对包含N个虚拟机节点的修正邻接度图使用K阶最小割算法,得到K个集合,其中K,K为预设的数值且为不小于2的自然数。
结合本发明实施例的第二方面,在第二种可能的实现方式中,所述最小割计算模块,包括:
聚类子模块,用于根据预设的聚类规则,对N个虚拟机节点进行聚类,得到至少一个类簇,在同一个类簇中,对于任意一个节点P,存在至少另一个节点P’,使得P’与P之间的修正邻接度不小于预设的阈值;
分割子模块,用于根据预定义的物理邻接域划分规则,确定所述网络中每个物理邻接域所能容纳的虚拟机节点数量M,对所述聚类子单元得到的各个类簇对应的修正邻接度图分别迭代使用2阶最小割算法,得到对应于所述聚类子单元得到的各个类簇的分割结果;其中,每组分割结果中包含至少一个集合,且每个集合中的虚拟机节点数量不大于M。
结合本发明实施例的第二方面,在第三种可能的实现方式中,其特征在于,所述数据平滑模块,具体用于利用Cij’=Cij*Pij+CE*(1-Pij),计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,Pij为Cij在所述网络中所有Cij取值中的统计概率,CE为所有Cij的算术平均值。
结合本发明实施例的第二方面,在第四种可能的实现方式中,所述数据平滑模块,具体用于利用Cij’=a*Cij+CE,计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,a为预设的修正系数,a∈(0,1),CE为所有Cij的算术平均值。
结合本发明实施例的第二方面,在第五种可能的实现方式中,所述修正邻接度计算模块,具体用于利用Aij’=Cij’*Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’。
针对现有虚拟机部署位置调整方案中,节点间通信代价对调整结果影响过大的问题,本发明实施例所提供的技术方案,通过对节点间通信代价Cij进行修正,使得修正后的节点间通信代价既能体现对虚拟机部署位置调整结果的影响,又使得通信流量在调整结果中起到主导影响作用,从而可以得到更为合理的虚拟机部署位置调整结果,降低云计算系统的内部的带宽消耗。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种云计算系统在调整前的虚拟机部署方案示意图;
图2为图1所示系统的节点间通信代价矩阵示意图;
图3为根据现有技术对图1所示系统的虚拟机部署方案调整结果示意图;
图4为本发明实施例提供的虚拟机部署位置调整方法的流程图;
图5为图1所示系统的节点间修正通信代价矩阵示意图;
图6为根据本发明实施例对图1所示系统的虚拟机部署方案调整结果示意图;
图7为本发明实施例提供的虚拟机部署位置调整装置的一种结构示意图
图8为本发明实施例提供的虚拟机部署位置调整装置中的最小割计算模块一种结构示意图;
图9为本发明实施例提供的虚拟机部署位置调整装置的硬件结构示意图。
具体实施方式
针对TVMPP在实际应用中存在的问题,本发明实施例提供一种改进的云计算系统虚拟机部署位置调整方法,为了更清楚地说明本发明实施例所提供的技术方案,下面首先对TVMPP进行简单介绍:
TVMPP定义任意两个节点之间的邻接度Aij为:
Aij=Cij*Dij (1)
其中,Cij为节点i和节点j之间的通信代价,Dij为节点i和节点j之间的数据流量。
将系统中的每一台虚拟机的部署位置看作一个虚拟机节点,根据式(1),可以计算得到系统中任意两个虚拟机节点的邻接度,然后根据计算结果生成一幅以虚拟机节点为顶点、以节点邻接度为边权重值的图,对该图应用最小割算法,得到建议的虚拟机部署方案,按照该方案对虚拟机进行迁移即可。
下面结合一个实际应用场景对TVMPP进行说明,图1所示为一种云计算系统的结构示意图;该系统共有8台服务器,每台服务器对应一台物理机,每台物理机中部署两台虚拟机,编号依次为1-16。物理机之间通过交换机构成的中间网络实现通信,图中a、b、c……为交换机。
假设系统初始的虚拟机部署方案如图1所示,根据网络的拓扑结构确定Cij,可以得到如图2所示之间的通信代价矩阵。
假设控制器监测到在某段历史时期内,图1所示的初始部署方案的流量情况如下:
节点1与节点2之间流量:D12=2G;
节点1与节点3之间流量:D13=2G;
节点1与节点4之间流量:D14=2G;
节点1与节点5之间流量:D15=1G;
节点1与节点13之间流量:D113=1G;
那么,根据公式(1),可以计算得到,图1所示的系统节点间邻接度分别为:
节点1与节点2之间的邻接度:A12=2*1=2;
节点1与节点3之间的邻接度:A13=2*1=2;
节点1与节点4之间的邻接度:A14=2*1=2;
节点1与节点5之间的邻接度:A15=1*3=3;
节点1与节点13之间的邻接度:A113=1*5=5;
根据计算得到的邻接度,生成邻接度图,然后采用最小割算法,得到调整后的虚拟机部署方案如图3所示。
根据TVMPP的思想,将邻接度最大的两个虚拟机1和13之间的通信代价调整为最小、将虚拟机1和5之间的通信代价调整为次小。然而,根据系统的实际流量情况:D113=D15<D12=D13=D14,应该优先把流量较大虚拟机1和2、虚拟机1和3或虚拟机1和4之间的通信代价调整到最小,可见,TVMPP的调整结果与实际期望的调整结果存在较大偏差。
通过对现有技术的分析发现,TVMPP存在以上问题的关键原因在于:在调整虚拟机位置的依据“节点间邻接度”中,作为权值的“节点间通信代价”本来仅应起到修正作用,然而“节点间通信代价”在TVMPP计算过程中却起主导作用,最终导致结果与期望严重不符。
针对上述问题,本发明实施例提出对节点邻接度计算时所采用的权值进行修正,在考虑到“节点间通信代价”影响的同时,降低“节点间通信代价”对调整结果的影响,使得调整结果更为合理,具体技术方案如下:
首先,根据虚拟机所在网络的拓扑结构,确定任意两个虚拟机节点i和j之间的通信代价Cij,然后对Cij使用数据平滑算法,得到虚拟机节点i和j之间的通信代价的修正值Cij’。
在本发明的实施例中,使用数据平滑算法的目的是:减小Cij中最大值和最小值的差距,减小Cij的数值范围。例如,可以采用以下任一公式,对Cij进行平滑处理,得到修正值Cij’:
Cij’=Cij*Pij+CE*(1-Pij) (2.1)
其中,Pij为Cij在网络中所有Cij取值中的统计概率,CE为所有Cij的算术平均值。
Cij’=Cij*Pij+|Cij-CE|*(1-Pij) (2.2)
其中,Pij为Cij在网络中所有Cij取值中的统计概率,CE为所有Cij的算术平均值。
Cij’=a*Cij+CE (2.3)
其中,a是预设的修正系数,a∈(0,1),CE是所有Cij的算术平均值。
本领域技术人员可以根据实际需求选择具体的数据平滑算法,本发明实施例对此并不需要进行限定。
进一步,根据Cij’计算修正后的节点邻接度:
Aij’=Cij*Dij (3)
最后利用Aij’生成网络节点间的邻接度图,采用最小割算法,得到调整后的虚拟机部署方案。
上述方案中,由于使用了数据平滑算法对Cij进行处理,降低了作为权重的“节点间通信代价”对虚拟机部署调整结果的影响,使调整结果更为合理。
下面结合具体的应用实例,对本发明实施例所提供的虚拟机部署位置调整方法进行说明。
以图1所示系统为例,该系统中共有8台服务器,每台服务器对应一台物理机,每台物理机中部署两台虚拟机,编号依次为1-16。物理机之间通过交换机构成的中间网络实现通信,图中a、b、c……为交换机。控制器是整个网络的管理实体,具有统计网络流量、计算虚拟机部署方案、对虚拟机进行迁移等功能。
图4所示,为本发明实施例所提供的虚拟机部署位置调整方法的流程图,该方法可以由云计算系统中的控制器执行,也可以由其他管理实体执行,具体可以包括以下步骤:
S101,根据虚拟机所在网络的拓扑结构,以及根据所述网络中任意两个虚拟机节点i和j所述属的物理服务器情况确定所述节点i和j之间的通信代价Cij;
Cij为表示节点i和节点j之间的通信代价,两个节点之间的通信代价一般可以理解为两个节点之间的通信距离,通信代价由网络拓扑结构决定,也就是说,在一个确定的网络中,任意两个给定位置之间的通信代价是不会变化的。
为方便计算,两个虚拟机节点之间的通信代价可以根据节点间的交换机数量确定,另外,同一台物理服务器内的虚拟机之间不需要经过交换机即可通信,因此可以统一规定:同一台物理服务器中的两个节点通信代价为一个预设数值。也就是说:在i和j不属于同一物理服务器的情况下,Cij为i和j之间的交换机数量,在i和j属于同一物理服务器的情况下,Cij为预设的数值。一般而言,该预设数值可以在区间(0,1]中选取。
假设系统初始的虚拟机部署方案如图1所示,并且规定:同一台物理服务器中的两个节点通信代价为1;则按照图1的部署方案,虚拟机的总数N=16,可以得到如图2所示的大小为16*16通信代价矩阵。
根据图2所示的通信代价矩阵,可以看出:Cij=Cji,即两个节点间的正反向通信代价相同。另外,由于节点与其自身事实上并不存在通信代价的概念,因此当i=j时,Cij并无实际意义,图2所示矩阵中,将主对角线上的值用“-”表示,这些数值不需要参与后续计算。
S102,对所述Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’;
在本实施例中,使用公式(2.1)对Cij进行平滑处理。
根据系统的网络拓扑结构,统计各种通信代价的取值可能出现的概率,例如:根据图1所示系统的网络拓扑结构,统计结果如下:
通信代价取值1在网络中的出现概率为1/4;
通信代价取值3在网络中的出现概率为1/4;
通信代价取值5在网络中的出现概率为1/2;
根据统计结果,计算出整个网络中任意两点之间的通信代价平均值CE:
CE=1*1/4+3*1/4+5*1/2=3.5
根据Cij’=Cij*Pij+CE*(1-Pij)对节点之间的通信代价进行修正,其中Pij是Cij在网络中的出现概率:
通信代价为1的节点对,通信代价的修正值为:
1*1/4+CE*(1-1/4)=2.875
通信代价为3的节点对,通信代价的修正值为:
3*1/4+CE*(1-1/4)=3.375
通信代价为5的节点对,通信代价的修正值为:
5*1/2+CE*(1-1/2)=4.25
进而可以得到如图5所示的修正后的通信代价矩阵。
S103,获得所述两个虚拟机节点i和j之间在预设历史时段的流量统计值Dij;
Dij为节点i和节点j之间的数据流量,该数据是通过监测网络运行状况得到的,在实际应用中,一般是对系统在某一历史阶段节点间流量进行统计,并将统计结果作为下一阶段虚拟机部署方案的调整依据,典型的应用场景例如:在每天的0点,统计前1天的系统内节点流量情况,然后根据前1天的流量情况确定当天的虚拟机部署方案。
假设监测到在某段历史时期内,图1所示的初始部署方案的流量情况如下:
节点1与节点2之间流量:D12=2G;
节点1与节点3之间流量:D13=2G;
节点1与节点4之间流量:D14=2G;
节点1与节点5之间流量:D15=1G;
节点1与节点13之间流量:D113=1G;
S104,根据Cij’和Dij,计算两个虚拟机节点i和j之间的修正邻接度Aij’
根据S102获得的Cij’以及S103获得的Dij,利用Aij’=Cij’*Dij可以计算得到,图1所示的系统节点间修正邻接度分别为:
节点1与节点2之间的修正邻接度:A12’=2*2.875=5.75;
节点1与节点3之间的修正邻接度:A13’=2*2.875=5.75;
节点1与节点4之间的修正邻接度:A14’=2*2.875=5.75;
节点1与节点5之间的修正邻接度:A15’=1*3.375=3.375;
节点1与节点13之间的修正邻接度:A113’=1*4.25=4.25。
S105,对网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合;
这里的修正邻接度图是根据网络中的虚拟机节点生成,对于任一修正邻接度图而言,图中的不同的顶点分别对应一个不同的虚拟机节点、且所述两个虚拟机节点i和j所对应的两个顶点之间存在一条以Aij’为权重值的边。
在本发明的一种具体实施方式中,可以先根据预设的聚类规则,对N个虚拟机节点进行聚类,得到至少一个类簇,在同一个类簇中,对于任意一个节点P,存在至少另一个节点P’,使得P’与P之间的修正邻接度不小于预设的阈值;然后根据预定义的物理邻接域划分规则,确定所述网络中每个物理邻接域所能容纳的虚拟机节点数量M,对各个类簇对应的修正邻接度图分别迭代使用2阶最小割算法,得到对应于各个类簇的分割结果;其中,每组分割结果中包含至少一个集合,且每个集合中的虚拟机节点数量不大于M。
上述实施方式中,对虚拟机节点进行聚类的目的是:将交互关系比较密切的虚拟机节点划分到相同的类簇中,使得同一类簇中的节点能够优先被分配到物理连接较为紧密的位置。
相应地,“物理邻接域”可以按照实际需求灵活定义,例如,可以定义每台物理服务器为一个物理邻接域,也可以定义通信代价较小的多台服务器为一个物理邻接域。物理邻接域划分规则以预设信息的形式存储,该预设信息可以被在最小割计算过程中被读取,从而确定最小割算法中需要使用的参数M。
根据S104的计算结果,假设预设的修正邻接度阈值为3,由于计算得到的6个修正邻接度均大于该阈值,因此,确定节点1、2、3、4、5、13属于同一类簇。进而以节点1、2、3、4、5、13为顶点、修正邻接度为边权重值,生成节点一张修正邻接度图。
在本实施例中,定义每台物理服务器为一个物理邻接域,即:每个物理邻接域所能容纳的虚拟机数量为2;
对修正邻接度图迭代使用2阶最小割算法,直至各个子集合中的节点个数不大于2,最后得到包含5个虚拟机节点子集合的分割结果:5,13,4,3,(1,2)。可见,每个子集合中的节点数量均小于物理服务器所能容纳的虚拟机数量2。另外,分割结果实际是一个子集合序列,各个子集合在序列中的相对位置,体现了在最小割迭代算法中分割子集合的先后顺序:
第一次分割,根据修正邻接度最小的A15’,将节点5分割为一个子集,
第二次分割,根据修正邻接度次小的A113’,将节点13分割为一个子集,
……
以此类推,得到最终的分割结果5,13,4,3,(1,2)。
可以理解的是,最小割算法的目的是:从图的所有割中,确定边权值之和最小的割,因此,划分结果可能并不唯一,例如在上例的划分结果中,节点2、3、4是可以彼此调换的。另外为描述方便,在本实施例中仅涉及了节点1与其他节点间的流量,并未涉及其他节点间(例如节点2和3之间)的流量,而最小割算法本身能够适应各种可能出现的情况,并不仅限于处理上述简化情况。
在本发明的另一种具体实施方式中,还可以对包含N个虚拟机节点的修正邻接度图使用K阶最小割算法,得到K个虚拟机节点子集合。这里的K是预设的数值,K值可以根据实际需求设置,例如根据网络中物理邻接域数量设置,或者根据系统业务的逻辑分组数量设置,等等。
预先设置K值的目的是:按照实际需求,直接把虚拟机节点划分到K个组中。例如,对于图1所示系统,假设预设的数值K=5,则直接对节点1-16构成的修正邻接度图进行5阶最小割运算,得到5个虚拟机节点子集合。
S106,根据最小割算法得到的至少两个集合,对网络中的虚拟机节点的部署位置进行调整。
可以理解的是,最小割算法仅是从数学的角度上,给出了对虚拟机部署方案的建议,但是该建议并不一定与系统的实际情况完全符合。因此在实际应用中,可能需要进一步结合系统的实际情况,对最小割算法的结果进行优化,总的优化原则是:在调整后的虚拟机部署方案中,对于任意虚拟机节点x,若存在虚拟机节点y与x属于相同的集合、虚拟机节点z与x属于不同的集合,则x与y之间的通信代价不大于x与z之间的通信代价。具体的优化策略可参考现有技术的实现方式,本发明实施例对此不做详细介绍。
例如,在迭代使用最小割算法的情况下,根据迭代原理,各个子集合在序列中的相对位置,体现了迭代分割子集合的先后顺序,而最先分割出的节点集,应该部署到通信代价较小的位置。
根据S105中的分割结果5,13,4,3,(1,2),确定最终的虚拟机部署方案,由控制器对虚拟机的部署位置进行迁移,调整后的虚拟机部署方案如图6所示。可见,数据交互量较大的虚拟机1和2、虚拟机1和3或虚拟机1和4被调整到通信代价较小的位置,而数据交互量较小的虚拟机1和13、虚拟机1和5则被调整到通信代价较大的位置,该调整结果与实际期望的调整结果相符。
可见,本发明实施例所采用的方案,通过对节点间通信代价Cij进行修正,使得修正后的节点间通信代价既能体现对虚拟机部署位置调整结果的影响,又使得通信流量在调整结果中起到主导影响作用,从而可以得到更为合理的虚拟机部署位置调整结果。
相应于上面的方法实施例,本发明实施例还提供一种虚拟机部署位置调整装置,该装置可以应用于云计算系统中的控制器,或者应用于其他网络管理实体中。参见图7所示,该虚拟机部署位置调整装置100可以包括:
通信代价确定模块110、数据平滑模块120、流量统计值获得模块130、修正邻接度计算模块140、最小割计算模块150、调整模块160。以下详细对各个模块的工作原理及协作关系进行介绍。
通信代价确定模块110,用于根据虚拟机所在网络的拓扑结构,以及根据所述网络中任意两个虚拟机节点i和j所述属的物理服务器情况确定所述节点i和j之间的通信代价Cij(i≠j),
Cij为表示节点i和节点j之间的通信代价,两个节点之间的通信代价一般可以理解为两个节点之间的通信距离,通信代价由网络拓扑结构决定,也就是说,在一个确定的网络中,任意两个给定位置之间的通信代价是不会变化的。
为方便计算,两个虚拟机节点之间的通信代价可以根据节点间的交换机数量确定,另外,同一台物理服务器内的虚拟机之间不需要经过交换机即可通信,因此可以统一规定:同一台物理服务器中的两个节点通信代价为一个预设数值。也就是说:在i和j不属于同一物理服务器的情况下,Cij为i和j之间的交换机数量,在i和j属于同一物理服务器的情况下,Cij为预设的数值。一般而言,该预设数值可以在区间(0,1]中选取。
假设系统初始的虚拟机部署方案如图1所示,并且规定:同一台物理服务器中的两个节点通信代价为1;则按照图1的部署方案,虚拟机的总数N=16,可以得到如图2所示的大小为16*16通信代价矩阵。
根据图2所示的通信代价矩阵,可以看出:Cij=Cji,即两个节点间的正反向通信代价相同。另外,由于节点与其自身事实上并不存在通信代价的概念,因此当i=j时,Cij并无实际意义,图2所示矩阵中,将主对角线上的值用“-”表示,这些数值不需要参与后续计算。
数据平滑模块120,用于对通信代价确定模块110得到的Cij使用数据平滑算法,得到两个虚拟机节点i和j之间的通信代价的修正值Cij’;
在本发明的实施例中,使用数据平滑算法的目的是:减小Cij中最大值和最小值的差距,减小Cij的数值范围。本领域技术人员可以根据实际需求选择数据平滑模块120所使用的具体的数据平滑算法,例如式(2.1)、(2.2)、(2.3)所示的平滑算法等,本发明实施例对此并不需要进行限定。
在本实施例中,数据平滑模块120使用公式(2.1)对Cij进行平滑处理。
根据系统的网络拓扑结构,统计各种通信代价的取值可能出现的概率,例如:根据图1所示系统的网络拓扑结构,统计结果如下:
通信代价取值1在网络中的出现概率为1/4;
通信代价取值3在网络中的出现概率为1/4;
通信代价取值5在网络中的出现概率为1/2;
根据统计结果,计算出整个网络中任意两点之间的通信代价平均值CE:
CE=1*1/4+3*1/4+5*1/2=3.5
根据Cij’=Cij*Pij+CE*(1-Pij)对节点之间的通信代价进行修正,其中Pij是Cij在网络中的出现概率:
通信代价为1的节点对,通信代价的修正值为:
1*1/4+CE*(1-1/4)=2.875
通信代价为3的节点对,通信代价的修正值为:
3*1/4+CE*(1-1/4)=3.375
通信代价为5的节点对,通信代价的修正值为:
5*1/2+CE*(1-1/2)=4.25
进而可以得到如图5所示的修正后的通信代价矩阵。
流量统计值获得模块130,用于获得两个虚拟机节点i和j之间在预设历史时段的流量统计值Dij;
Dij为节点i和节点j之间的数据流量,该数据是通过监测网络运行状况得到的,在实际应用中,一般是对系统在某一历史阶段节点间流量进行统计,并将统计结果作为下一阶段虚拟机部署方案的调整依据,典型的应用场景例如:在每天的0点,统计前1天的系统内节点流量情况,然后根据前1天的流量情况确定当天的虚拟机部署方案。
假设监测到在某段历史时期内,图1所示的初始部署方案的流量情况如下:
节点1与节点2之间流量:D12=2G;
节点1与节点3之间流量:D13=2G;
节点1与节点4之间流量:D14=2G;
节点1与节点5之间流量:D15=1G;
节点1与节点13之间流量:D113=1G。
修正邻接度计算模块140,用于根据数据平滑模块120得到的Cij’和流量统计值获得模块130获得的Dij,计算两个虚拟机节点i和j之间的修正邻接度Aij’;
根据数据平滑模块120得到的Cij’和流量统计值获得模块130获得的Dij,利用Aij’=Cij’*Dij可以计算得到,图1所示的系统节点间修正邻接度分别为:
节点1与节点2之间的修正邻接度:A12’=2*2.875=5.75;
节点1与节点3之间的修正邻接度:A13’=2*2.875=5.75;
节点1与节点4之间的修正邻接度:A14’=2*2.875=5.75;
节点1与节点5之间的修正邻接度:A15’=1*3.375=3.375;
节点1与节点13之间的修正邻接度:A113’=1*4.25=4.25。
最小割计算模块150,用于对网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,
这里的修正邻接度图是根据网络中的虚拟机节点生成,对于任一修正邻接度图而言,图中的不同的顶点分别对应一个不同的虚拟机节点、且两个虚拟机节点i和j所对应的两个顶点之间存在一条以Aij’为权重值的边。
参见图8所示,在本发明的一种具体实施方式中,最小割计算模块150具体可以包括:
聚类子模块151,用于根据预设的聚类规则,对N个虚拟机节点进行聚类,得到至少一个类簇,在同一个类簇中,对于任意一个节点P,存在至少另一个节点P’,使得P’与P之间的修正邻接度不小于预设的阈值;
分割子模块152,用于根据预定义的物理邻接域划分规则,确定网络中每个物理邻接域所能容纳的虚拟机节点数量M,对聚类子单元得到的各个类簇对应的修正邻接度图分别迭代使用2阶最小割算法,得到对应于聚类子单元得到的各个类簇的分割结果;其中,每组分割结果中包含至少一个集合。
上述实施方式中,对虚拟机节点进行聚类的目的是:将交互关系比较密切的虚拟机节点划分到相同的类簇中,使得同一类簇中的节点能够优先被分配到物理连接较为紧密的位置。
相应地,“物理邻接域”可以按照实际需求灵活定义,例如,可以定义每台物理服务器为一个物理邻接域,也可以定义通信代价较小的多台服务器为一个物理邻接域。物理邻接域划分规则以预设信息的形式存储,该预设信息可以被在最小割计算过程中被读取,从而确定最小割算法中需要使用的参数M。
根据修正邻接度计算模块140的计算结果,假设预设的修正邻接度阈值为3,由于计算得到的6个修正邻接度均大于该阈值,因此,确定节点1、2、3、4、5、13属于同一类簇。进而以节点1、2、3、4、5、13为顶点、修正邻接度为边权重值,生成节点一张修正邻接度图。
在本实施例中,定义每台物理服务器为一个物理邻接域,即:每个物理邻接域所能容纳的虚拟机数量为2;
对修正邻接度图迭代使用2阶最小割算法,直至各个子集合中的节点个数不大于2,最后得到包含5个虚拟机节点子集合的分割结果:5,13,4,3,(1,2)。可见,每个子集合中的节点数量均小于物理服务器所能容纳的虚拟机数量2。另外,分割结果实际是一个子集合序列,各个子集合在序列中的相对位置,体现了在最小割迭代算法中分割子集合的先后顺序:
第一次分割,根据修正邻接度最小的A15’,将节点5分割为一个子集,
第二次分割,根据修正邻接度次小的A113’,将节点13分割为一个子集,
……
以此类推,得到最终的分割结果5,13,4,3,(1,2)。
可以理解的是,最小割算法的目的是:从图的所有割中,确定边权值之和最小的割,因此,划分结果可能并不唯一,例如在上例的划分结果中,节点2、3、4是可以彼此调换的。另外为描述方便,在本实施例中仅涉及了节点1与其他节点间的流量,并未涉及其他节点间(例如节点2和3之间)的流量,而最小割算法本身能够适应各种可能出现的情况,并不仅限于处理上述简化情况。
在本发明的另一种具体实施方式中,最小割计算模块150还可以对包含N个虚拟机节点的修正邻接度图使用K阶最小割算法,得到K个虚拟机节点子集合。这里的K为预设的数值,K值可以根据实际需求设置,例如根据网络中物理邻接域数量设置,或者根据系统业务的逻辑分组数量设置,等等。
预先设置K值的目的是:按照实际需求,直接把虚拟机节点划分到K个组中。例如,对于图1所示系统,假设预设的数值K=5,则直接对节点1-16构成的修正邻接度图进行5阶最小割运算,得到5个虚拟机节点子集合。
调整模块160,用于根据最小割计算模块150得到的至少两个集合,对网络中的虚拟机节点的部署位置进行调整。
可以理解的是,最小割算法仅是从数学的角度上,给出了对虚拟机部署方案的建议,但是该建议并不一定与系统的实际情况完全符合。因此在实际应用中,可能需要进一步结合系统的实际情况,对最小割算法的结果进行优化,总的优化原则是:在调整后的虚拟机部署方案中,对于任意虚拟机节点x,若存在虚拟机节点y与x属于相同的集合、虚拟机节点z与x属于不同的集合,则x与y之间的通信代价不大于x与z之间的通信代价。具体的优化策略可参考现有技术的实现方式,本发明实施例对此不做详细介绍。
例如,在迭代使用最小割算法的情况下,根据迭代原理,各个子集合在序列中的相对位置,体现了迭代分割子集合的先后顺序,而最先分割出的节点集,应该部署到通信代价较小的位置。
调整模块160根据最小割计算模块150的分割结果5,13,4,3,(1,2),确定最终的虚拟机部署方案,由控制器对虚拟机的部署位置进行迁移,调整后的虚拟机部署方案如图6所示。可见,数据交互量较大的虚拟机1和2、虚拟机1和3或虚拟机1和4被调整到通信代价较小的位置,而数据交互量较小的虚拟机1和13、虚拟机1和5则被调整到通信代价较大的位置,该调整结果与实际期望的调整结果相符。
可见,本发明实施例所采用的方案,通过对节点间通信代价Cij进行修正,使得修正后的节点间通信代价既能体现对虚拟机部署位置调整结果的影响,又使得通信流量在调整结果中起到主导影响作用,从而可以得到更为合理的虚拟机部署位置调整结果。
图9是本发明实施例的虚拟机部署位置调整装置的硬件结构示意图。如图9所示,虚拟机部署位置调整装置900包括处理器902、存储器904、输入/输出接口906、收发器908和总线910。其中,处理器902、存储器904、输入/输出接口906和收发器908通过总线910实现彼此之间的通信连接。
处理器902可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器904可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器904可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器904中,并由处理器902来执行。
输入/输出接口906用于接收输入的数据和信息,输出操作结果等数据。
收发器908使用例如但不限于收发器一类的收发装置,来实现虚拟机部署位置调整装置与其他设备或通信网络之间的通信。
总线910可包括一通路,在虚拟机部署位置调整装置各个部件(例如处理器902、存储器904、输入/输出接口906和收发器908之间传送信息。
应注意,尽管图9所示的虚拟机部署位置调整装置仅仅示出了处理器902、存储器904、输入/输出接口906、收发器908以及总线910,但是在具体实现过程中,本领域的技术人员应当明白,虚拟机部署位置调整装置还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,虚拟机部署位置调整装置还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,虚拟机部署位置调整装置也可仅仅包含实现本发明实施例所必须的器件,而不必包含图9中所示的全部器件。
图9所示的硬件结构以及上述描述适用于本发明实施例所提供的各种虚拟机部署位置调整装置。
通过调用存储器904存储的程序或指令,收发器908能够获得虚拟机所在网络的拓扑结构;
处理器902能够根据虚拟机所在网络的拓扑结构,确定所述网络中任意两个虚拟机节点i和j之间的通信代价Cij(i≠j);并对Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’;
收发器908进一步获得两个虚拟机节点i和j之间在预设历史时段的流量统计值Dij;
进一步地,处理器902根据Cij’和Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’;并对对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,然后根据这些集合,对网络中的虚拟机节点的部署位置进行调整,以使得对于任意虚拟机节点x,若存在虚拟机节点y与x属于相同的集合、虚拟机节点z与x属于不同的集合,则x与y之间的通信代价不大于x与z之间的通信代价。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (13)
1.一种虚拟机部署位置的调整方法,其特征在于,该方法包括:
根据虚拟机所在网络的拓扑结构,以及根据所述网络中任意两个虚拟机节点i和j所述属的物理服务器情况确定所述节点i和j之间的通信代价Cij(i≠j),其中,在i和j不属于同一物理服务器的情况下,Cij为i和j之间的交换机数量,在i和j属于同一物理服务器的情况下,Cij为预设的数值,i的取值包括不大于N的所有自然数,j的取值包括不大于N的所有自然数,N为所述网络中虚拟机节点的个数;
对所述Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’;
获得所述两个虚拟机节点i和j之间在预设历史时段的流量统计值Dij;
根据所述Cij’和Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’;
对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,每个集合包含至少一个虚拟机节点,其中,所述修正邻接度图中的不同的顶点分别对应一个不同的虚拟机节点、且所述两个虚拟机节点i和j所对应的两个顶点之间存在一条以Aij’为权重值的边;
根据所述至少两个集合,对所述网络中的虚拟机节点的部署位置进行调整,以使得对于任意虚拟机节点x,若存在虚拟机节点y与x属于相同的集合、虚拟机节点z与x属于不同的集合,则x与y之间的通信代价不大于x与z之间的通信代价。
2.根据权利要求1所述的方法,其特征在于,所述对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,包括:
对包含N个虚拟机节点的修正邻接度图使用K阶最小割算法,得到K个集合,其中,K为预设的数值且K为不小于2的自然数。
3.根据权利要求1所述的方法,其特征在于,对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,包括:
根据预设的聚类规则,对N个虚拟机节点进行聚类,得到至少一个类簇,在同一个类簇中,对于任意一个节点P,存在至少另一个节点P’,使得P’与P之间的修正邻接度不小于预设的阈值;
根据预定义的物理邻接域划分规则,确定所述网络中每个物理邻接域所能容纳的虚拟机节点数量M,对各个类簇对应的修正邻接度图分别迭代使用2阶最小割算法,得到对应于各个类簇的分割结果;其中,每组分割结果中包含至少一个集合,且每个集合中的虚拟机节点数量不大于M。
4.根据权利要求3所述的方法,其特征在于,所述物理邻接域划分规则包括:将每台物理服务器划分为一个物理邻接域。
5.根据权利要求1所述的方法,其特征在于,所述对所述Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’包括:
利用Cij’=Cij*Pij+CE*(1-Pij),计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,Pij为Cij在所述网络中所有Cij取值中的统计概率,CE为所有Cij的算术平均值。
6.根据权利要求1所述的方法,其特征在于,所述对所述Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’,包括:
利用Cij’=a*Cij+CE,计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,a为预设的修正系数,a∈(0,1),CE为所有Cij的算术平均值。
7.根据权利要求1所述的方法,其特征在于,所述根据所述Cij’和Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’,包括:
利用Aij’=Cij’*Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’。
8.一种虚拟机部署位置调整装置,其特征在于,该装置包括:
通信代价确定模块,用于根据虚拟机所在网络的拓扑结构,以及根据所述网络中任意两个虚拟机节点i和j所述属的物理服务器情况确定所述节点i和j之间的通信代价Cij(i≠j),其中,在i和j不属于同一物理服务器的情况下,Cij为i和j之间的交换机数量,在i和j属于同一物理服务器的情况下,Cij为预设的数值,i的取值包括不大于N的所有自然数,j的取值包括不大于N的所有自然数,N为所述网络中虚拟机节点的个数;
数据平滑模块,用于对所述通信代价确定模块得到的Cij使用数据平滑算法,得到所述两个虚拟机节点i和j之间的通信代价的修正值Cij’;
流量统计值获得模块,用于获得所述两个虚拟机节点i和j之间在预设历史时段的流量统计值Dij;
修正邻接度计算模块,用于根据所述数据平滑模块得到的Cij’和所述流量统计值获得模块获得的Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’;
最小割计算模块,用于对所述网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合,每个集合包含至少一个虚拟机节点,其中,所述修正邻接度图中的不同的顶点分别对应一个不同的虚拟机节点、且所述两个虚拟机节点i和j所对应的两个顶点之间存在一条以所述修正邻接度计算模块计算得到的Aij’为权重值的边;
调整模块,用于根据所述最小割计算模块得到的至少两个集合,对所述网络中的虚拟机节点的部署位置进行调整,以使得对于任意虚拟机节点x,若存在虚拟机节点y与x属于相同的集合、虚拟机节点z与x属于不同的集合,则x与y之间的通信代价不大于x与z之间的通信代价。
9.根据权利要求8所述的装置,其特征在于,所述最小割计算模块,具体用对包含N个虚拟机节点的修正邻接度图使用K阶最小割算法,得到K个集合,其中K,K为预设的数值且为不小于2的自然数。
10.根据权利要求8所述的装置,其特征在于,所述最小割计算模块,包括:
聚类子模块,用于根据预设的聚类规则,对N个虚拟机节点进行聚类,得到至少一个类簇,在同一个类簇中,对于任意一个节点P,存在至少另一个节点P’,使得P’与P之间的修正邻接度不小于预设的阈值;
分割子模块,用于根据预定义的物理邻接域划分规则,确定所述网络中每个物理邻接域所能容纳的虚拟机节点数量M,对所述聚类子单元得到的各个类簇对应的修正邻接度图分别迭代使用2阶最小割算法,得到对应于所述聚类子单元得到的各个类簇的分割结果;其中,每组分割结果中包含至少一个集合,且每个集合中的虚拟机节点数量不大于M。
11.根据权利要求8所述的装置,其特征在于,所述数据平滑模块,具体用于利用Cij’=Cij*Pij+CE*(1-Pij),计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,Pij为Cij在所述网络中所有Cij取值中的统计概率,CE为所有Cij的算术平均值。
12.根据权利要求8所述的装置,其特征在于,所述数据平滑模块,具体用于利用Cij’=a*Cij+CE,计算所述两个虚拟机节点i和j之间的通信代价的修正值,其中,a为预设的修正系数,a∈(0,1),CE为所有Cij的算术平均值。
13.根据权利要求8所述的装置,其特征在于,所述修正邻接度计算模块,具体用于利用Aij’=Cij’*Dij,计算所述两个虚拟机节点i和j之间的修正邻接度Aij’。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510067057.8A CN104639639B (zh) | 2015-02-09 | 2015-02-09 | 一种虚拟机部署位置的调整方法、装置及系统 |
EP15881708.0A EP3247089B1 (en) | 2015-02-09 | 2015-06-27 | Method, apparatus and system for adjusting deployment position of virtual machine |
PCT/CN2015/082580 WO2016127547A1 (zh) | 2015-02-09 | 2015-06-27 | 一种虚拟机部署位置的调整方法、装置及系统 |
US15/673,070 US10289451B2 (en) | 2015-02-09 | 2017-08-09 | Method, apparatus, and system for adjusting deployment location of virtual machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510067057.8A CN104639639B (zh) | 2015-02-09 | 2015-02-09 | 一种虚拟机部署位置的调整方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104639639A true CN104639639A (zh) | 2015-05-20 |
CN104639639B CN104639639B (zh) | 2018-04-27 |
Family
ID=53217940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510067057.8A Active CN104639639B (zh) | 2015-02-09 | 2015-02-09 | 一种虚拟机部署位置的调整方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10289451B2 (zh) |
EP (1) | EP3247089B1 (zh) |
CN (1) | CN104639639B (zh) |
WO (1) | WO2016127547A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357322A (zh) * | 2015-12-11 | 2016-02-24 | 中国科学院信息工程研究所 | 一种基于拓扑划分的虚拟机分配方法 |
WO2016127547A1 (zh) * | 2015-02-09 | 2016-08-18 | 华为技术有限公司 | 一种虚拟机部署位置的调整方法、装置及系统 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10749711B2 (en) | 2013-07-10 | 2020-08-18 | Nicira, Inc. | Network-link method useful for a last-mile connectivity in an edge-gateway multipath system |
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US10135789B2 (en) | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US10425382B2 (en) | 2015-04-13 | 2019-09-24 | Nicira, Inc. | Method and system of a cloud-based multipath routing protocol |
US10498652B2 (en) | 2015-04-13 | 2019-12-03 | Nicira, Inc. | Method and system of application-aware routing with crowdsourcing |
US20200036624A1 (en) | 2017-01-31 | 2020-01-30 | The Mode Group | High performance software-defined core network |
US11252079B2 (en) | 2017-01-31 | 2022-02-15 | Vmware, Inc. | High performance software-defined core network |
US10992558B1 (en) | 2017-11-06 | 2021-04-27 | Vmware, Inc. | Method and apparatus for distributed data network traffic optimization |
US11121962B2 (en) | 2017-01-31 | 2021-09-14 | Vmware, Inc. | High performance software-defined core network |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US10574528B2 (en) | 2017-02-11 | 2020-02-25 | Nicira, Inc. | Network multi-source inbound quality of service methods and systems |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US10523539B2 (en) | 2017-06-22 | 2019-12-31 | Nicira, Inc. | Method and system of resiliency in cloud-delivered SD-WAN |
CN107491341B (zh) * | 2017-08-31 | 2018-09-18 | 福州大学 | 一种基于粒子群优化的虚拟机分配方法 |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10959098B2 (en) * | 2017-10-02 | 2021-03-23 | Vmware, Inc. | Dynamically specifying multiple public cloud edge nodes to connect to an external multi-computer node |
US10999100B2 (en) * | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US11089111B2 (en) | 2017-10-02 | 2021-08-10 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10686625B2 (en) | 2017-10-02 | 2020-06-16 | Vmware, Inc. | Defining and distributing routes for a virtual network |
US10999165B2 (en) * | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
JP6669807B2 (ja) * | 2018-05-30 | 2020-03-18 | 株式会社日立製作所 | 計算機システムおよび計算機 |
CN110851230B (zh) * | 2019-06-26 | 2023-08-15 | 湘潭大学 | 一种云计算中的基于强化学习的虚拟机放置方法 |
US10999137B2 (en) | 2019-08-27 | 2021-05-04 | Vmware, Inc. | Providing recommendations for implementing virtual networks |
US11044190B2 (en) | 2019-10-28 | 2021-06-22 | Vmware, Inc. | Managing forwarding elements at edge nodes connected to a virtual network |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11394640B2 (en) | 2019-12-12 | 2022-07-19 | Vmware, Inc. | Collecting and analyzing data regarding flows associated with DPI parameters |
US11606712B2 (en) | 2020-01-24 | 2023-03-14 | Vmware, Inc. | Dynamically assigning service classes for a QOS aware network link |
US11245641B2 (en) | 2020-07-02 | 2022-02-08 | Vmware, Inc. | Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN |
US20230289273A1 (en) | 2020-07-03 | 2023-09-14 | Nippon Telegraph And Telephone Corporation | Thermal throttling supression device, thermal throttling supression method, and thermal throttling suppression program |
US11363124B2 (en) | 2020-07-30 | 2022-06-14 | Vmware, Inc. | Zero copy socket splicing |
CN112463291B (zh) * | 2020-11-12 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种虚拟机部署方法、装置、设备及可读存储介质 |
US11575591B2 (en) | 2020-11-17 | 2023-02-07 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11575600B2 (en) | 2020-11-24 | 2023-02-07 | Vmware, Inc. | Tunnel-less SD-WAN |
US11929903B2 (en) | 2020-12-29 | 2024-03-12 | VMware LLC | Emulating packet flows to assess network links for SD-WAN |
US11792127B2 (en) | 2021-01-18 | 2023-10-17 | Vmware, Inc. | Network-aware load balancing |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US11381499B1 (en) | 2021-05-03 | 2022-07-05 | Vmware, Inc. | Routing meshes for facilitating routing through an SD-WAN |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US11489720B1 (en) | 2021-06-18 | 2022-11-01 | Vmware, Inc. | Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics |
US11375005B1 (en) | 2021-07-24 | 2022-06-28 | Vmware, Inc. | High availability solutions for a secure access service edge application |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
CN114744770B (zh) * | 2022-06-13 | 2022-09-02 | 广东电网有限责任公司珠海供电局 | 一种保护控制装置的管控节点规模决策方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225277A1 (en) * | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Placement of virtual machines based on server cost and network cost |
US20120265868A1 (en) * | 2011-04-13 | 2012-10-18 | Nec Laboratories America, Inc. | System and Method for End- or Service-Node Placement Optimization |
CN104298539A (zh) * | 2014-10-13 | 2015-01-21 | 南京大学 | 基于网络感知的虚拟机调度与再调度方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299279A (zh) * | 2011-12-29 | 2013-09-11 | 华为技术有限公司 | 一种资源调度方法及设备 |
US9027024B2 (en) | 2012-05-09 | 2015-05-05 | Rackspace Us, Inc. | Market-based virtual machine allocation |
CN103095599A (zh) | 2013-01-18 | 2013-05-08 | 浪潮电子信息产业股份有限公司 | 一种云计算操作系统中动态反馈加权综合负载调度方法 |
CN104639639B (zh) * | 2015-02-09 | 2018-04-27 | 华为技术有限公司 | 一种虚拟机部署位置的调整方法、装置及系统 |
-
2015
- 2015-02-09 CN CN201510067057.8A patent/CN104639639B/zh active Active
- 2015-06-27 WO PCT/CN2015/082580 patent/WO2016127547A1/zh active Application Filing
- 2015-06-27 EP EP15881708.0A patent/EP3247089B1/en not_active Not-in-force
-
2017
- 2017-08-09 US US15/673,070 patent/US10289451B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225277A1 (en) * | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Placement of virtual machines based on server cost and network cost |
US20120265868A1 (en) * | 2011-04-13 | 2012-10-18 | Nec Laboratories America, Inc. | System and Method for End- or Service-Node Placement Optimization |
CN104298539A (zh) * | 2014-10-13 | 2015-01-21 | 南京大学 | 基于网络感知的虚拟机调度与再调度方法 |
Non-Patent Citations (1)
Title |
---|
杨善林: "《基于云计算的多源信息服务系统研究综述》", 《管理科学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016127547A1 (zh) * | 2015-02-09 | 2016-08-18 | 华为技术有限公司 | 一种虚拟机部署位置的调整方法、装置及系统 |
US10289451B2 (en) | 2015-02-09 | 2019-05-14 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for adjusting deployment location of virtual machine |
CN105357322A (zh) * | 2015-12-11 | 2016-02-24 | 中国科学院信息工程研究所 | 一种基于拓扑划分的虚拟机分配方法 |
CN105357322B (zh) * | 2015-12-11 | 2019-04-26 | 中国科学院信息工程研究所 | 一种基于拓扑划分的虚拟机分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104639639B (zh) | 2018-04-27 |
EP3247089A1 (en) | 2017-11-22 |
EP3247089B1 (en) | 2019-04-03 |
EP3247089A4 (en) | 2018-01-17 |
US20170337086A1 (en) | 2017-11-23 |
US10289451B2 (en) | 2019-05-14 |
WO2016127547A1 (zh) | 2016-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104639639A (zh) | 一种虚拟机部署位置的调整方法、装置及系统 | |
CN108009016B (zh) | 一种资源负载均衡控制方法及集群调度器 | |
CN105446979A (zh) | 数据挖掘方法和节点 | |
EP1652028B1 (en) | Method for clustering processors and assigning service points in a system | |
Wu et al. | Optimal movement-assisted sensor deployment and its extensions in wireless sensor networks | |
CN103970879B (zh) | 一种调整数据块存储位置的方法及系统 | |
CN103336722A (zh) | 一种虚拟机cpu资源监控和动态分配方法 | |
CN112737854A (zh) | 一种基于能耗和服务质量的服务链迁移方法及装置 | |
CN103902353A (zh) | 一种虚拟机的部署方法及装置 | |
CN106056400A (zh) | 预测新增用户数的方法、装置及系统 | |
CN105045670A (zh) | 中央处理器和图形处理器负载均衡的方法和系统 | |
CN115514696A (zh) | 一种传递算力资源信息的方法、装置及设备 | |
Kawashima et al. | Dynamic placement of virtual network functions based on model predictive control | |
CN105430049A (zh) | 一种基于dcn的虚拟流媒体集群协同迁移方法 | |
CN105187487A (zh) | 一种面向云存储的复制状态机模块化框架设计方法 | |
Lieber et al. | The potential of diffusive load balancing at large scale | |
CN105808340A (zh) | 负载均衡方法及系统 | |
CN111880926A (zh) | 一种负载均衡方法、装置及计算机存储介质 | |
CN104239520A (zh) | 一种基于历史信息的hdfs数据块放置策略 | |
US11093266B2 (en) | Using a generative model to facilitate simulation of potential policies for an infrastructure as a service system | |
CN111506400A (zh) | 计算资源分配系统、方法、装置和计算机设备 | |
Tomaszek et al. | Model-driven development of virtual network embedding algorithms with model transformation and linear optimization techniques | |
CN112953781B (zh) | 网络切片下基于粒子群的虚拟业务故障恢复方法及装置 | |
CN113852515A (zh) | 一种数字孪生网络的节点状态管控方法及系统 | |
CN102625198B (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 |