- Top of Page
1. Technical Field
This invention generally relates to cloud computing systems, and more specifically relates to placing virtual machines in a cloud environment based on factors that include optimized processor-memory affinity.
2. Background Art
Cloud computing is a common expression for distributed computing over a network and can also be used with reference to network-based services such as Infrastructure as a Service (IaaS). IaaS is a cloud based service that provides physical processing resources to run virtual machines (VMs) as a guest for different customers. The virtual machine may host a user application or a server.
It is often necessary or desirable to migrate workload in one computer system (a source) to another computer system (a target). Often, workload migration takes the form of migrating one or more virtual machines (sometimes referred to as logical partitions) from the source to the target, the migrated virtual machine's workload previously being performed in the source being subsequently performed in the target. For example, each client of a server may have its own virtual machine within the server for one or more respective client processes, so the workload is migrated by moving the workload of one or more clients, and reconstructing the virtual machine parameters, on one or more other server systems. A virtual machine may be migrated to balance workload among multiple systems, but may also be migrated to perform maintenance on the source system or for some other reason.
Physically, many large server systems are designed as systems having a non-uniform memory access in which multiple processors and main memory are physically distributed, so that each processor has some portion of main memory which is in closer physical proximity (and is accessed faster) than other portions of main memory. In such a system, it is desirable, insofar as possible, to hold instructions and other data required for executing a process or thread in the main memory portion which is physically closest to the processor executing the process or thread, a characteristic referred to as “processor-memory affinity” or “affinity”.
- Top of Page
An apparatus and method places virtual machines in a cloud environment based on factors where a primary factor is optimized processor-memory affinity. A smart migration mechanism (SMM) predicts an optimization score for multiple permutations of placing virtual machines on a target system to create an optimal move list. The optimization score is a theoretical score calculated using dynamic platform optimization (DPO). The SMM may allow the user to set initial parameters and change the parameters to create potential changes lists. The move lists are ranked to allow the user to select the optimal change list to provide the best affinity, quickest fulfillment of requirements and least disruption for a given set of parameters.
The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)
The disclosure will be described in conjunction with the appended drawings, where like designations denote like elements, and:
FIG. 1 is a block diagram of a cloud computing node;
FIG. 2 is a block diagram of a cloud computing environment;
FIG. 3 is a block diagram of abstraction model layers;
FIG. 4 is a block diagram that illustrates an example a computer system that includes hardware and memory that could be allocated to different virtual machines;
FIG. 5 illustrates manager code and virtual machines in one of the server systems 203 shown in FIG. 2;
FIG. 6 illustrates a block diagram of a system that places virtual machines in a cloud environment based on optimized processor-memory affinity;
FIGS. 7 and 8 illustrate an example of creating an optimal move list for placing virtual machines in a cloud environment based on optimized processor-memory affinity;
FIG. 9 is a flow diagram for placing virtual machines in a cloud environment based on optimized processor-memory affinity;
FIG. 10 is a flow diagram of an example method for step 870 in FIG. 8; and
FIG. 11 is a flow diagram of an example method for step 1020 in FIG. 10.
- Top of Page
The claims and disclosure herein describe placing virtual machines in a cloud environment based on factors where a primary factor is optimized processor-memory affinity. A smart migration mechanism (SMM) predicts an optimization score for multiple permutations of placing virtual machines on a target system to create an optimal move list. The optimization score is a theoretical score calculated using dynamic platform optimization (DPO). The SMM may allow the user to set initial parameters and change the parameters to create potential changes lists. The move lists are ranked to allow the user to select the optimal change list to provide the best affinity, quickest fulfillment of requirements and least disruption for a given set of parameters.
It is understood in advance that although this disclosure includes a detailed description on cloud computing, implementation of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the present invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed.
Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
Characteristics are as follows:
On-demand self-service: a cloud consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with the service\'s provider.
Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
Resource pooling: the provider\'s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to demand. There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).
Rapid elasticity: capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.
Measured service: cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.