WO2016127547A1 - 一种虚拟机部署位置的调整方法、装置及系统 - Google Patents

一种虚拟机部署位置的调整方法、装置及系统 Download PDF

Info

Publication number
WO2016127547A1
WO2016127547A1 PCT/CN2015/082580 CN2015082580W WO2016127547A1 WO 2016127547 A1 WO2016127547 A1 WO 2016127547A1 CN 2015082580 W CN2015082580 W CN 2015082580W WO 2016127547 A1 WO2016127547 A1 WO 2016127547A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
nodes
node
communication cost
network
Prior art date
Application number
PCT/CN2015/082580
Other languages
English (en)
French (fr)
Inventor
朱韧
周伟
王提政
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP15881708.0A priority Critical patent/EP3247089B1/en
Publication of WO2016127547A1 publication Critical patent/WO2016127547A1/zh
Priority to US15/673,070 priority patent/US10289451B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Definitions

  • the present invention relates to the field of cloud computing technologies, and in particular, to a method, device, and system for adjusting a virtual machine deployment location.
  • Cloud computing technology has developed rapidly in recent years. With the large-scale deployment of network-intensive applications in cloud platform data center networks, the internal network bandwidth of cloud computing systems has become a bottleneck resource in cloud computing environments. How to reduce the bandwidth consumption inside the cloud computing system is an important issue to consider when deploying the system.
  • a virtual machine In a cloud computing system, a virtual machine is a basic unit for providing cloud computing services. As the system runs, a large amount of interactive data is generated between different virtual machines, occupying network bandwidth resources of the system. Therefore, scheduling management of virtual machines Directly determine the internal bandwidth consumption of the entire system, which in turn affects the performance and response speed of the entire system.
  • the prior art proposes a TVMPP (Traffic-aware VM Placement Problem) optimization algorithm, which aims to dynamically adjust the deployment position of virtual machines in the system by minimizing the overall communication cost between virtual machines.
  • the internal data traffic generated between virtual machines is controlled within the physical machine as much as possible, or within the same physical neighboring domain with less communication cost. Thereby making more efficient use of the system's internal network resources, improve overall system performance and response speed.
  • TVMPP regards each virtual machine in the cloud computing system as a network node, and defines the degree of adjacency between any two nodes as: the product of the communication cost between nodes and the traffic between nodes, according to the degree of adjacency of the system network nodes.
  • the deployment location of the machine is adjusted. The adjustment is based on the minimum cut algorithm.
  • the basic idea is that if the communication cost between the two nodes is higher and the node traffic is larger, the communication cost between the two nodes should be reduced.
  • the overall idea of TVMPP is reasonable, in actual application, the expected adjustment effect is often not obtained, and it is difficult to effectively solve the problem of bandwidth consumption inside the system.
  • an embodiment of the present invention provides a method, a device, and a system for adjusting a virtual machine deployment location, so as to implement reasonable deployment of a virtual machine in a cloud computing system, and reduce internal systems.
  • Bandwidth consumption the technical solution is as follows:
  • a method for adjusting a virtual machine deployment location comprising:
  • C ij Determining the communication cost C ij (i ⁇ j) between the nodes i and j according to the topology of the network where the virtual machine is located, and according to the physical server conditions of any two virtual machine nodes i and j in the network.
  • C ij is the number of switches between i and j.
  • C ij is a preset value, i The value includes all natural numbers not greater than N, and the value of j includes all natural numbers not greater than N, where N is the number of virtual machine nodes in the network;
  • the modified adjacency graph formed by the virtual machine nodes in the network adopts a minimum cut algorithm to obtain at least two sets, each set including at least one virtual machine node, wherein different vertexes in the modified adjacency graph are respectively Corresponding to a different virtual machine node, and an edge with a weight value of A ij ' exists between two vertices corresponding to the two virtual machine nodes i and j;
  • the modified adjacency graph formed by the virtual machine node in the network adopts a minimum cut algorithm to obtain at least two sets, including:
  • K sets are obtained, where K is a preset value and K is a natural number not less than 2.
  • the modified adjacency graph formed by the virtual machine nodes in the network adopts a minimum cut algorithm to obtain at least two sets, including:
  • the N virtual machine nodes are clustered to obtain at least one cluster, and in the same cluster, for any one node P, there is at least another node P', so that P' and P
  • the corrected adjacency between the two is not less than a preset threshold
  • each group of segmentation results includes at least one set, and the number of virtual machine nodes in each set is not greater than M.
  • the physical contiguous domain partitioning rule includes: dividing each physical server into one physical contiguous domain.
  • the using the data smoothing algorithm for the C ij to obtain a modification of the communication cost between the two virtual machine nodes i and j includes:
  • the using the data smoothing algorithm for the C ij to obtain a modification of the communication cost between the two virtual machine nodes i and j The value C ij ', including:
  • a correction value of the communication cost between the two virtual machine nodes i and j is calculated, where a is a preset correction coefficient, a ⁇ (0, 1) , C E is the arithmetic mean of all C ij .
  • the calculating the corrected adjacency A between the two virtual machine nodes i and j according to the C ij ' and D ij Ij ' including:
  • a virtual machine deployment location adjustment apparatus includes:
  • a communication cost determining module configured to determine a communication cost between the nodes i and j according to a topology of a network where the virtual machine is located, and a physical server according to any two virtual machine nodes i and j in the network C ij (i ⁇ j), where, where i and j do not belong to the same physical server, C ij is the number of switches between i and j.
  • C ij is The preset value, the value of i includes all natural numbers not greater than N, the value of j includes all natural numbers not greater than N, and N is the number of virtual machine nodes in the network;
  • Data smoothing means for determining the communication cost C ij module obtained using the data smoothing algorithm to give the two virtual machine communication cost between nodes i and j correction value C ij ';
  • a traffic statistics obtaining module configured to obtain a traffic statistics value D ij between the two virtual machine nodes i and j in a preset historical period
  • a modified adjacency calculation module configured to calculate a modified adjacency A between the two virtual machine nodes i and j according to C ij ' obtained by the data smoothing module and D ij obtained by the traffic statistics obtaining module Ij ';
  • a minimum cut calculation module configured to use a minimum cut algorithm for the modified adjacency graph formed by the virtual machine nodes in the network, to obtain at least two sets, each set including at least one virtual machine node, wherein the modified neighboring degree
  • the different vertices in the figure respectively correspond to a different virtual machine node, and there is a A ij ' calculated by the modified adjacency calculation module between the two vertices corresponding to the two virtual machine nodes i and j.
  • An adjustment module configured to adjust a deployment location of the virtual machine node in the network according to at least two sets obtained by the minimum cut calculation module, so that if there is a virtual machine node y and any virtual machine node x x belongs to the same set, virtual machine nodes z and x belong to different sets, then the communication cost between x and y is not greater than the communication cost between x and z.
  • the minimum cut calculation module uses a K-th order minimum cut algorithm for a modified adjacency graph including N virtual machine nodes to obtain K.
  • K are preset values and are natural numbers not less than 2.
  • the minimum cut calculation module includes:
  • the clustering sub-module is configured to cluster N virtual machine nodes according to a preset clustering rule to obtain at least one cluster, and in the same cluster, there is at least another node P for any one node P. ', such that the corrected adjacency between P' and P is not less than a preset threshold;
  • a segmentation submodule configured to determine, according to a predefined physical adjacency domain division rule, a number M of virtual machine nodes that each physical adjacent domain in the network can accommodate, and each obtained by the cluster subunit
  • the modified adjacency graph corresponding to the clusters is iteratively using the second-order minimum-cutting algorithm, and the segmentation results corresponding to the clusters obtained by the clustering sub-units are obtained; wherein each segmentation result includes at least one set, and each The number of virtual machine nodes in a collection is not greater than M.
  • the inter-node communication cost has an excessive influence on the adjustment result.
  • the technical solution provided by the embodiment of the present invention corrects the inter-node communication cost C ij so that the modified node is modified.
  • the inter-communication cost can not only affect the impact of the virtual machine deployment location adjustment result, but also make the communication traffic play a leading role in the adjustment result, so that a more reasonable virtual machine deployment location adjustment result can be obtained, and the internality of the cloud computing system can be reduced. Bandwidth consumption.
  • FIG. 1 is a schematic diagram of a virtual machine deployment plan before a cloud computing system is adjusted
  • FIG. 2 is a schematic diagram of a cost matrix of inter-node communication of the system shown in FIG. 1;
  • FIG. 3 is a schematic diagram of an adjustment result of a virtual machine deployment scheme of the system shown in FIG. 1 according to the prior art
  • FIG. 4 is a flowchart of a method for adjusting a deployment position of a virtual machine according to an embodiment of the present invention
  • FIG. 5 is a schematic diagram of a modified communication cost matrix between nodes of the system shown in FIG. 1;
  • FIG. 6 is a schematic diagram of an adjustment result of a virtual machine deployment scheme of the system shown in FIG. 1 according to an embodiment of the present invention
  • FIG. 7 is a schematic structural diagram of a virtual machine deployment position adjusting apparatus according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a minimum cut calculation module in a virtual machine deployment position adjustment apparatus according to an embodiment of the present disclosure
  • FIG. 9 is a schematic structural diagram of hardware of a virtual machine deployment location adjusting apparatus according to an embodiment of the present invention.
  • the embodiment of the present invention provides an improved cloud computing system virtual machine deployment location adjustment method.
  • the following is first to simplify the TVMPP. Introduction:
  • TVMPP defines the degree of adjacency A ij between any two nodes as:
  • C ij is the communication cost between node i and node j
  • D ij is the data traffic between node i and node j
  • each virtual machine in the system as a virtual machine node.
  • the contiguous degree of any two virtual machine nodes in the system can be calculated, and then a virtual machine is generated according to the calculation result.
  • the node is a vertex and the node adjacency is the edge weight value.
  • the minimum cut algorithm is applied to the graph to obtain the recommended virtual machine deployment plan.
  • the virtual machine can be migrated according to the scheme.
  • Figure 1 shows a schematic diagram of a cloud computing system.
  • the system has 8 servers, each server corresponds to one physical machine, and two virtual machines are deployed in each physical machine.
  • Machine number is 1-16.
  • the physical machines communicate with each other through an intermediate network formed by switches.
  • a, b, c... are switches.
  • the adjacency map is generated, and then the minimum cut algorithm is used to obtain the adjusted virtual machine deployment scheme as shown in FIG. 3 .
  • the communication cost between the two virtual machines 1 and 13 having the largest degree of adjacency is adjusted to the minimum, and the communication cost between the virtual machines 1 and 5 is adjusted to be the second smallest.
  • the traffic should be prioritized between virtual machines 1 and 2, virtual machines 1 and 3 or virtual machines 1 and 4
  • the communication cost is adjusted to the minimum. It can be seen that the adjustment result of TVMPP has a large deviation from the actual expected adjustment result.
  • the embodiments of the present invention propose to modify the weights used in the calculation of the node adjacency, and reduce the influence of the “inter-node communication cost” on the adjustment result while considering the influence of the “inter-node communication cost”.
  • the adjustment results are more reasonable, and the specific technical solutions are as follows:
  • the communication cost C ij between any two virtual machine nodes i and j is determined, and then the data smoothing algorithm is used for C ij to obtain the communication cost between the virtual machine nodes i and j.
  • Correction value C ij ' is used for C ij to obtain the communication cost between the virtual machine nodes i and j.
  • the object data smoothing algorithm is used: C ij reduce the gap between the maximum and minimum, reducing the range of values of C ij.
  • C ij can be smoothed by any of the following formulas to obtain a correction value C ij ':
  • a ij ' is used to generate the adjacency map between network nodes, and the minimum virtual cut algorithm is used to obtain the adjusted virtual machine deployment plan.
  • the virtual machine deployment location adjustment method provided by the embodiment of the present invention is described below in conjunction with a specific application example.
  • FIG. 1 Take the system shown in Figure 1 as an example.
  • Each server corresponds to one physical machine.
  • Two virtual machines are deployed in each physical machine, numbered 1-16.
  • the physical machines communicate with each other through an intermediate network formed by switches.
  • a, b, c... are switches.
  • the controller is the management entity of the entire network, and has functions of counting network traffic, calculating virtual machine deployment scenarios, and migrating virtual machines.
  • FIG. 4 is a flowchart of a method for adjusting a deployment position of a virtual machine according to an embodiment of the present invention.
  • the method may be performed by a controller in a cloud computing system, or may be performed by another management entity, and may specifically include the following steps:
  • C ij is the communication cost between node i and node j.
  • the communication cost between two nodes can generally be understood as the communication distance between two nodes.
  • the communication cost is determined by the network topology, that is, in one In a given network, the communication cost between any two given locations does not change.
  • the communication cost between the two virtual machine nodes can be determined according to the number of switches between the nodes.
  • the virtual machines in the same physical server do not need to communicate through the switch, so it can be uniformly specified: the same
  • the communication cost of two nodes in the physical server is a preset value. That is to say: in the case where i and j do not belong to the same physical server, C ij is the number of switches between i and j. When i and j belong to the same physical server, C ij is a preset value. In general, the preset value can be selected in the interval (0, 1).
  • the initial virtual machine deployment scheme of the system is as shown in Figure 1, and specifies that the communication cost of two nodes in the same physical server is 1.
  • the size shown in Figure 2 is a 16*16 communication cost matrix.
  • C ij is smoothed using Equation (2.1).
  • the probability that the values of various communication costs may occur is counted.
  • the statistics are as follows:
  • the probability of occurrence of the communication cost value 1 in the network is 1/4;
  • the probability of occurrence of the communication cost value 3 in the network is 1/4;
  • the probability of occurrence of the communication cost value 5 in the network is 1/2;
  • the corrected value of the communication cost is:
  • the node pair with a communication cost of 3 the correction value of the communication cost is:
  • the corrected value of the communication cost is:
  • D ij is the data traffic between node i and node j.
  • the data is obtained by monitoring the network running status.
  • the statistics of the nodes in a certain historical stage are generally counted, and the statistical results are taken as
  • the next stage of the virtual machine deployment plan adjustment basis a typical application scenario, for example, at 0 o'clock every day, the node traffic of the system in the previous day is counted, and then the virtual machine deployment plan of the day is determined according to the traffic situation of the previous day.
  • the modified adjacency graph formed by the virtual machine nodes in the network adopts a minimum cut algorithm to obtain at least two sets.
  • the modified adjacency map is generated according to a virtual machine node in the network.
  • different vertices in the graph respectively correspond to a different virtual machine node, and the two virtual machine nodes i
  • the N virtual machine nodes may be clustered according to a preset clustering rule to obtain at least one cluster, and in the same cluster, for any node P, There is at least another node P' such that the modified adjacency between P' and P is not less than a preset threshold; then each physical neighboring domain in the network can be accommodated according to a predefined physical neighboring domain partitioning rule
  • the number of virtual machine nodes M, and the modified neighboring degree map corresponding to each cluster cluster is iteratively used to use the second-order minimum cut algorithm to obtain the segmentation result corresponding to each cluster cluster; wherein each group of segmentation results includes at least one set, and each The number of virtual machine nodes in a collection is not greater than M.
  • the purpose of clustering the virtual machine nodes is to divide the virtual machine nodes with relatively close interaction into the same cluster, so that the nodes in the same cluster can be preferentially assigned to the physical connections. position.
  • the physical neighboring domain can be flexibly defined according to actual requirements.
  • each physical server can be defined as one physical neighboring domain, or multiple servers with less communication cost can be defined as one physical neighboring domain.
  • the physical neighboring domain partitioning rule is stored in the form of preset information, which can be read in the minimum cut calculation process to determine the parameter M that needs to be used in the minimum cut algorithm.
  • the preset corrected adjacency threshold is 3, and since the calculated six modified adjacencies are greater than the threshold, it is determined that the nodes 1, 2, 3, 4, 5, and 13 belong to the same cluster. . Further, the nodes 1, 2, 3, 4, 5, and 13 are vertices, and the adjacent degree is corrected as the edge weight value, and the node is corrected for the adjacent degree.
  • each physical server is defined as a physical contiguous domain, that is, the number of virtual machines that each physical contiguous domain can accommodate is 2;
  • the second-order minimum-cutting algorithm is used to iteratively modify the adjacency graph until the number of nodes in each sub-set is not more than 2, and finally the segmentation result including 5 virtual machine node sub-sets is obtained: 5, 13, 4, 3, (1 ,2). It can be seen that the number of nodes in each sub-collection is less than the number of virtual machines that the physical server can accommodate.
  • the segmentation result is actually a sub-set sequence, and the relative positions of each sub-set in the sequence embodies the order of sub-sets in the minimum-cut iterative algorithm:
  • the node 5 is divided into a subset according to the A 15 ' with the smallest degree of adjacency correction.
  • the node 13 is divided into a subset according to the modified A 113 ' with a small degree of adjacency.
  • the purpose of the minimum cut algorithm is to determine the cut of the sum of the edge weights from all the cuts of the graph. Therefore, the partition result may not be unique. For example, in the partition result of the above example, node 2 3, 4 can be exchanged with each other. In addition, for the convenience of description, in the embodiment, only the traffic between the node 1 and other nodes is involved, and the traffic between other nodes (for example, between nodes 2 and 3) is not involved, and the minimum cutting algorithm itself can adapt to various possibilities. What happens is not limited to dealing with the above simplifications.
  • the K-order minimum cut algorithm may also be used on the modified adjacency graph including the N virtual machine nodes to obtain K virtual machine node subsets.
  • K is a preset value, and the K value can be set according to actual needs, for example, according to the number of physical neighboring domains in the network, or according to the number of logical groupings of system services, and the like.
  • S106 Adjust, according to at least two sets obtained by the minimum cut algorithm, a deployment location of the virtual machine node in the network.
  • the minimum cut algorithm only gives a suggestion for the virtual machine deployment plan from a mathematical point of view, but the proposal does not necessarily fully correspond to the actual situation of the system. Therefore, in practical applications, it may be necessary to further combine the actual situation of the system to optimize the results of the minimum cut algorithm.
  • the overall optimization principle is: in the adjusted virtual machine deployment plan, for any virtual machine node x, If there are virtual machine nodes y and x belonging to the same set, and virtual machine nodes z and x belong to different sets, the communication cost between x and y is not greater than the communication cost between x and z.
  • the relative position of each subset in the sequence embodies the order of iteratively dividing the subset, and the first set of nodes should be deployed to the communication cost. Smaller location.
  • the final virtual machine deployment scenario is determined, and the deployment location of the virtual machine is migrated by the controller, and the adjusted virtual machine deployment scenario is as shown in FIG. 6. Shown. It can be seen that the virtual machines 1 and 2 with large data interaction amount, the virtual machines 1 and 3 or the virtual machines 1 and 4 are adjusted to the positions where the communication cost is small, and the virtual machines 1 and 13 and the virtual machines with small data interaction amount are small. 1 and 5 are adjusted to a position where the communication cost is large, and the adjustment result is consistent with the actual desired adjustment result.
  • the inter-node communication cost C ij is corrected, so that the modified inter-node communication cost can reflect the influence of the virtual machine deployment position adjustment result, and the communication traffic is adjusted. It plays a leading role, so that a more reasonable virtual machine deployment position adjustment result can be obtained.
  • the embodiment of the present invention further provides a virtual machine deployment location adjustment apparatus, which may be applied to a controller in a cloud computing system or applied to other network management entities.
  • the virtual machine deployment location adjusting apparatus 100 may include:
  • the communication cost determination module 110 the data smoothing module 120, the traffic statistics obtaining module 130, the modified adjacency calculating module 140, the minimum cut computing module 150, and the adjusting module 160.
  • the working principle and cooperation relationship of each module are introduced in detail below.
  • the communication cost determining module 110 is configured to determine, according to a topology structure of the network where the virtual machine is located, and the communication between the nodes i and j according to the physical server conditions of the genus of any two virtual machine nodes i and j in the network. Cost C ij (i ⁇ j),
  • C ij is the communication cost between node i and node j.
  • the communication cost between two nodes can generally be understood as the communication distance between two nodes.
  • the communication cost is determined by the network topology, that is, in one In a given network, the communication cost between any two given locations does not change.
  • the communication cost between the two virtual machine nodes can be determined according to the number of switches between the nodes.
  • the virtual machines in the same physical server do not need to communicate through the switch, so it can be uniformly specified: the same
  • the communication cost of two nodes in the physical server is a preset value. That is to say: in the case where i and j do not belong to the same physical server, C ij is the number of switches between i and j. When i and j belong to the same physical server, C ij is a preset value. In general, the preset value can be selected in the interval (0, 1).
  • the initial virtual machine deployment scheme of the system is as shown in Figure 1, and specifies that the communication cost of two nodes in the same physical server is 1.
  • the size shown in Figure 2 is a 16*16 communication cost matrix.
  • Data smoothing module 120 a determining module 110 of the communication cost C ij obtained using data smoothing algorithm, the communication cost between two nodes i and j virtual correction value C ij ';
  • the object data smoothing algorithm is used: C ij reduce the gap between the maximum and minimum, reducing the range of values of C ij.
  • a specific data smoothing algorithm used by the data smoothing module 120 such as the smoothing algorithm shown in the formulas (2.1), (2.2), and (2.3), may be selected by a person skilled in the art according to actual needs. Need to be qualified.
  • the data smoothing module 120 performs smoothing on C ij using Equation (2.1).
  • the probability that the values of various communication costs may occur is counted.
  • the statistics are as follows:
  • the probability of occurrence of the communication cost value 1 in the network is 1/4;
  • the probability of occurrence of the communication cost value 3 in the network is 1/4;
  • the probability of occurrence of the communication cost value 5 in the network is 1/2;
  • the corrected value of the communication cost is:
  • the node pair with a communication cost of 3 the correction value of the communication cost is:
  • the corrected value of the communication cost is:
  • the traffic statistics obtaining module 130 is configured to obtain a traffic statistics value D ij between the two virtual machine nodes i and j in a preset historical period;
  • D ij is the data traffic between node i and node j.
  • the data is obtained by monitoring the network running status.
  • the statistics of the nodes in a certain historical stage are generally counted, and the statistical results are taken as
  • the next stage of the virtual machine deployment plan adjustment basis a typical application scenario, for example, at 0 o'clock every day, the node traffic of the system in the previous day is counted, and then the virtual machine deployment plan of the day is determined according to the traffic situation of the previous day.
  • the modified adjacency calculation module 140 is configured to calculate a corrected adjacency A ij ' between the two virtual machine nodes i and j according to the C ij ' obtained by the data smoothing module 120 and the D ij obtained by the traffic statistics obtaining module 130;
  • the minimum cut calculation module 150 is configured to use a minimum cut algorithm for the modified adjacency map formed by the virtual machine nodes in the network to obtain at least two sets.
  • the modified adjacency map is generated according to the virtual machine node in the network.
  • different vertices in the graph correspond to one different virtual machine node and two virtual machine nodes i and j respectively.
  • the minimum cut calculation module 150 may specifically include:
  • the clustering sub-module 151 is configured to cluster N virtual machine nodes according to a preset clustering rule to obtain at least one cluster. In the same cluster, there is at least another node for any one node P. P', such that the corrected adjacency between P' and P is not less than a preset threshold;
  • the segmentation sub-module 152 is configured to determine, according to a predefined physical neighboring domain division rule, a number M of virtual machine nodes that can be accommodated in each physical adjacent domain in the network, and a modified adjacency corresponding to each cluster obtained by the clustering subunit.
  • the graphs are iteratively used to generate a segmentation result corresponding to each cluster cluster obtained by the cluster subunits, wherein each segmentation result includes at least one set.
  • the purpose of clustering the virtual machine nodes is to divide the virtual machine nodes with relatively close interaction into the same cluster, so that the nodes in the same cluster can be preferentially assigned to the physical connections. position.
  • the physical neighboring domain can be flexibly defined according to actual requirements.
  • each physical server can be defined as one physical neighboring domain, or multiple servers with less communication cost can be defined as one physical neighboring domain.
  • the physical neighboring domain partitioning rule is stored in the form of preset information, which can be read in the minimum cut calculation process to determine the parameter M that needs to be used in the minimum cut algorithm.
  • the preset modified adjacency threshold is 3, and since the calculated six modified adjacencies are greater than the threshold, the nodes 1, 2, 3, 4, 5 are determined. 13 belong to the same cluster. Further, the nodes 1, 2, 3, 4, 5, and 13 are vertices, and the adjacent degree is corrected as the edge weight value, and the node is corrected for the adjacent degree.
  • each physical server is defined as a physical contiguous domain, that is, the number of virtual machines that each physical contiguous domain can accommodate is 2;
  • the second-order minimum-cutting algorithm is used to iteratively modify the adjacency graph until the number of nodes in each sub-set is not more than 2, and finally the segmentation result including 5 virtual machine node sub-sets is obtained: 5, 13, 4, 3, (1 ,2). It can be seen that the number of nodes in each sub-collection is less than the number of virtual machines that the physical server can accommodate.
  • the segmentation result is actually a sub-set sequence, and the relative positions of each sub-set in the sequence embodies the order of sub-sets in the minimum-cut iterative algorithm:
  • the node 5 is divided into a subset according to the A 15 ' with the smallest degree of adjacency correction.
  • the node 13 is divided into a subset according to the modified A 113 ' with a small degree of adjacency.
  • the purpose of the minimum cut algorithm is to determine the cut of the sum of the edge weights from all the cuts of the graph. Therefore, the partition result may not be unique. For example, in the partition result of the above example, node 2 3, 4 can be exchanged with each other. In addition, for the convenience of description, in the embodiment, only the traffic between the node 1 and other nodes is involved, and the traffic between other nodes (for example, between nodes 2 and 3) is not involved, and the minimum cutting algorithm itself can adapt to various possibilities. What happens is not limited to dealing with the above simplifications.
  • the minimum cut calculation module 150 may further use a K-order minimum cut algorithm for the modified adjacency map including the N virtual machine nodes to obtain K virtual machine node subsets.
  • K is a preset value, and the K value can be set according to actual needs, for example, according to the number of physical neighboring domains in the network, or according to the number of logical groupings of system services, and the like.
  • the adjustment module 160 is configured to adjust the deployment location of the virtual machine node in the network according to at least two sets obtained by the minimum cut calculation module 150.
  • the minimum cut algorithm only gives a suggestion for the virtual machine deployment plan from a mathematical point of view, but the proposal does not necessarily fully correspond to the actual situation of the system. Therefore, in practical applications, it may be necessary to further combine the actual situation of the system to optimize the results of the minimum cut algorithm.
  • the overall optimization principle is: in the adjusted virtual machine deployment plan, for any virtual machine node x, If there are virtual machine nodes y and x belonging to the same set, and virtual machine nodes z and x belong to different sets, the communication cost between x and y is not greater than the communication cost between x and z.
  • the relative position of each subset in the sequence embodies the order of iteratively dividing the subset, and the first set of nodes should be deployed to the communication cost. Smaller location.
  • the adjustment module 160 determines the final virtual machine deployment plan according to the segmentation result 5, 13, 4, 3, (1, 2) of the minimum cut calculation module 150, and the virtual machine deployment position is migrated by the controller, and the adjusted virtual The machine deployment plan is shown in Figure 6. It can be seen that the virtual machines 1 and 2 with large data interaction amount, the virtual machines 1 and 3 or the virtual machines 1 and 4 are adjusted to the positions where the communication cost is small, and the virtual machines 1 and 13 and the virtual machines with small data interaction amount are small. 1 and 5 are adjusted to a position where the communication cost is large, and the adjustment result is consistent with the actual desired adjustment result.
  • the inter-node communication cost C ij is corrected, so that the modified inter-node communication cost can reflect the influence of the virtual machine deployment position adjustment result, and the communication traffic is adjusted. It plays a leading role, so that a more reasonable virtual machine deployment position adjustment result can be obtained.
  • FIG. 9 is a schematic diagram showing the hardware structure of a virtual machine deployment position adjusting apparatus according to an embodiment of the present invention.
  • the virtual machine deployment location adjustment device 900 includes a processor 902, a memory 904, an input/output interface 906, a transceiver 908, and a bus 910.
  • the processor 902, the memory 904, the input/output interface 906, and the transceiver 908 implement a communication connection with each other through the bus 910.
  • the processor 902 can be a general-purpose central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits for executing related programs.
  • CPU central processing unit
  • ASIC application specific integrated circuit
  • the memory 904 may be a read only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM).
  • Memory 904 can store operating systems and other applications.
  • the program code for implementing the technical solution provided by the embodiment of the present invention is saved in the memory 904 and executed by the processor 902.
  • the input/output interface 906 is for receiving input data and information, and outputting data such as operation results.
  • Transceiver 908 implements communication between the virtual machine deployment location adjustment device and other devices or communication networks using transceivers such as, but not limited to, transceivers.
  • Bus 910 can include a path for communicating information between various components of virtual machine deployment location adjustment device, such as processor 902, memory 904, input/output interface 906, and transceiver 908.
  • the virtual machine deployment location adjustment apparatus shown in FIG. 9 only shows the processor 902, the memory 904, the input/output interface 906, the transceiver 908, and the bus 910, in a specific implementation process, the art knows Personnel should understand that the virtual machine deployment location adjustment device also contains other devices necessary to achieve normal operation. At the same time, according to specific needs, those skilled in the art should understand that the virtual machine deployment location adjusting device may further include hardware devices that implement other additional functions. Moreover, those skilled in the art will appreciate that the virtual machine deployment location adjustment device may also only include the components necessary to implement the embodiments of the present invention, and does not necessarily include all of the devices shown in FIG.
  • FIG. 9 The hardware structure shown in FIG. 9 and the above description are applicable to various virtual machine deployment position adjusting devices provided by the embodiments of the present invention.
  • the transceiver 908 can obtain the topology of the network in which the virtual machine is located;
  • the processor 902 can determine a communication cost C ij (i ⁇ j) between any two virtual machine nodes i and j in the network according to a topology structure of the network where the virtual machine is located; and use a data smoothing algorithm for C ij to obtain a correction value C ij ' of the communication cost between the two virtual machine nodes i and j;
  • the transceiver 908 further obtains a traffic statistics value D ij between the two virtual machine nodes i and j in a preset historical period;
  • the processor 902 calculates a modified adjacency A ij ' between the two virtual machine nodes i and j according to C ij ' and D ij ; and correct adjacency for the virtual machine node in the network
  • the graph uses a minimum cut algorithm to obtain at least two sets, and then adjusts the deployment location of the virtual machine nodes in the network according to the sets, so that for any virtual machine node x, if there are virtual machine nodes y and x belong to the same
  • the set, virtual machine nodes z and x belong to different sets, then the communication cost between x and y is not greater than the communication cost between x and z.
  • the present invention can be implemented by means of software plus a necessary general hardware platform. Based on such understanding, the technical solution of the present invention may be a software product in essence or in part contributing to the prior art.
  • the computer software product can be stored in a storage medium, such as a ROM/RAM, a magnetic disk, an optical disk, etc., and includes a plurality of instructions for making a computer device (which can be a personal computer, a server, a network device, etc.) The methods described in various embodiments of the invention or in certain portions of the embodiments are performed.
  • the various embodiments in the specification are described in a progressive manner, and the same or similar parts between the various embodiments may be referred to each other, and each embodiment focuses on the differences from the other embodiments.
  • the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment.
  • the device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, ie may be located A place, or it can be distributed to multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment. Those of ordinary skill in the art can understand and implement without any creative effort.

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 VM Placement 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’。
PCT/CN2015/082580 2015-02-09 2015-06-27 一种虚拟机部署位置的调整方法、装置及系统 WO2016127547A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP15881708.0A EP3247089B1 (en) 2015-02-09 2015-06-27 Method, apparatus and system for adjusting deployment position of virtual machine
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 (2)

Application Number Priority Date Filing Date Title
CN201510067057.8A CN104639639B (zh) 2015-02-09 2015-02-09 一种虚拟机部署位置的调整方法、装置及系统
CN201510067057.8 2015-02-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/673,070 Continuation US10289451B2 (en) 2015-02-09 2017-08-09 Method, apparatus, and system for adjusting deployment location of virtual machine

Publications (1)

Publication Number Publication Date
WO2016127547A1 true WO2016127547A1 (zh) 2016-08-18

Family

ID=53217940

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/082580 WO2016127547A1 (zh) 2015-02-09 2015-06-27 一种虚拟机部署位置的调整方法、装置及系统

Country Status (4)

Country Link
US (1) US10289451B2 (zh)
EP (1) EP3247089B1 (zh)
CN (1) CN104639639B (zh)
WO (1) WO2016127547A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107491341A (zh) * 2017-08-31 2017-12-19 福州大学 一种基于粒子群优化的虚拟机分配方法
CN112463291A (zh) * 2020-11-12 2021-03-09 苏州浪潮智能科技有限公司 一种虚拟机部署方法、装置、设备及可读存储介质

Families Citing this family (52)

* Cited by examiner, † Cited by third party
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
CN104639639B (zh) 2015-02-09 2018-04-27 华为技术有限公司 一种虚拟机部署位置的调整方法、装置及系统
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
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
CN105357322B (zh) * 2015-12-11 2019-04-26 中国科学院信息工程研究所 一种基于拓扑划分的虚拟机分配方法
US10992568B2 (en) 2017-01-31 2021-04-27 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
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group 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
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
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
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
US10805114B2 (en) 2017-10-02 2020-10-13 Vmware, Inc. Processing data messages of a virtual network that are sent to and received from external service machines
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
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 湘潭大学 一种云计算中的基于强化学习的虚拟机放置方法
US11310170B2 (en) 2019-08-27 2022-04-19 Vmware, Inc. Configuring edge nodes outside of public clouds to use routes defined through the public clouds
US11044190B2 (en) 2019-10-28 2021-06-22 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11689959B2 (en) 2020-01-24 2023-06-27 Vmware, Inc. Generating path usability state for different sub-paths offered by a 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
WO2022003932A1 (ja) * 2020-07-03 2022-01-06 日本電信電話株式会社 サーマルスロットリング抑止装置、サーマルスロットリング抑止方法、および、サーマルスロットリング抑止プログラム
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11444865B2 (en) 2020-11-17 2022-09-13 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
US11601356B2 (en) 2020-12-29 2023-03-07 Vmware, Inc. 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
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US11582144B2 (en) 2021-05-03 2023-02-14 Vmware, Inc. Routing mesh to provide alternate routes through SD-WAN edge forwarding nodes based on degraded operational states of SD-WAN hubs
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
US12015536B2 (en) 2021-06-18 2024-06-18 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US12047282B2 (en) 2021-07-22 2024-07-23 VMware LLC Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
CN113743799A (zh) * 2021-09-08 2021-12-03 中国建设银行股份有限公司 机房设备的部署方法及装置
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 广东电网有限责任公司珠海供电局 一种保护控制装置的管控节点规模决策方法及相关装置
US12034587B1 (en) 2023-03-27 2024-07-09 VMware LLC Identifying and remediating anomalies in a self-healing network
US12057993B1 (en) 2023-03-27 2024-08-06 VMware LLC Identifying and remediating anomalies in a self-healing network

Citations (4)

* Cited by examiner, † Cited by third party
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 南京大学 基于网络感知的虚拟机调度与再调度方法
CN104639639A (zh) * 2015-02-09 2015-05-20 华为技术有限公司 一种虚拟机部署位置的调整方法、装置及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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 浪潮电子信息产业股份有限公司 一种云计算操作系统中动态反馈加权综合负载调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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 南京大学 基于网络感知的虚拟机调度与再调度方法
CN104639639A (zh) * 2015-02-09 2015-05-20 华为技术有限公司 一种虚拟机部署位置的调整方法、装置及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107491341A (zh) * 2017-08-31 2017-12-19 福州大学 一种基于粒子群优化的虚拟机分配方法
CN112463291A (zh) * 2020-11-12 2021-03-09 苏州浪潮智能科技有限公司 一种虚拟机部署方法、装置、设备及可读存储介质
CN112463291B (zh) * 2020-11-12 2023-01-10 苏州浪潮智能科技有限公司 一种虚拟机部署方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
EP3247089A1 (en) 2017-11-22
CN104639639B (zh) 2018-04-27
US10289451B2 (en) 2019-05-14
EP3247089B1 (en) 2019-04-03
CN104639639A (zh) 2015-05-20
US20170337086A1 (en) 2017-11-23
EP3247089A4 (en) 2018-01-17

Similar Documents

Publication Publication Date Title
WO2016127547A1 (zh) 一种虚拟机部署位置的调整方法、装置及系统
Wang et al. Virtual machine migration planning in software-defined networks
Wang et al. An efficient online algorithm for dynamic SDN controller assignment in data center networks
US9317336B2 (en) Method and apparatus for assignment of virtual resources within a cloud environment
CN113315700B (zh) 算力资源调度方法、装置和存储介质
EP3281359B1 (en) Application driven and adaptive unified resource management for data centers with multi-resource schedulable unit (mrsu)
US10356185B2 (en) Optimal dynamic cloud network control
Ayoubi et al. A reliable embedding framework for elastic virtualized services in the cloud
da Silva et al. Topology-aware virtual machine placement in data centers
Jiang et al. Towards max-min fair resource allocation for stream big data analytics in shared clouds
CN109327401B (zh) 一种sdn网络的流量调度方法与系统
CN105704054A (zh) 数据中心网络流量迁移方法及其系统
WO2018166249A1 (zh) 一种网络业务传输的方法及系统
Ntumba et al. Scheduling continuous operators for IoT edge analytics
CN110990059B (zh) 一种用于倾斜数据的流式计算引擎运行方法及系统
Lakshmanan et al. Placement of replicated tasks for distributed stream processing systems
CN109388609B (zh) 基于加速核的数据处理方法和装置
Strykhalyk et al. Synthesis of distributed service-oriented structures cloud networks is based on algorithm for determining hyperbolic virtual coordinates
CN112685167A (zh) 资源使用方法、电子设备和计算机程序产品
CN108923961B (zh) 一种多入口网络服务功能链优化方法
CN115280737B (zh) 用于东西向数据流量的位置感知路由
Chen et al. SDTP: Accelerating wide-area data analytics with simultaneous data transfer and processing
WO2022120959A1 (zh) 基于最小费用最大流的负载均衡的多服务迁移方法及系统
Balladini et al. Methodology for predicting the energy consumption of SPMD application on virtualized environments
CN104184674A (zh) 一种异构计算环境下的网络模拟任务负载平衡方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15881708

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2015881708

Country of ref document: EP