1. Field of the Invention
The present invention relates to the field of virtualization and more particularly to migrating virtual machines in a virtualized environment.
2. Description of the Related Art
The data center has changed over time from a mainframe centric environment requiring dozens of skilled technologists to ensure the ongoing operation of the mainframe, to a complex environment of many different server computing platforms coupled to one another over sophisticated data communications networks. Initially a resource only available to the wealthiest of organizations, recent advances in the mass production of personal computers has provided access to data center technologies at a reasonable cost. Generally facilitated by a rack, the modern data center involves the arrangement of a multiplicity of servers in one or more racks coupled together according to conventional network protocols.
Addressing the unwieldy and unreliable nature of rack-mounted ordinary computers, blade server solutions have become pervasive in more sophisticated data centers. In the blade center environment, different computing platforms can be arranged into blades and coupled to one another across a mid-plane in a single chassis. The mid-plane can provide access to a unified power source, input output (I/O) devices and even removable media drives. In this way, the blades need not include or manage a power supply or commonly used drives within the blades themselves resulting in substantial power savings, a reduced footprint and overall lower total cost of ownership. Additionally, failover concerns can be met through the hot-swappable nature of the blades in the chassis.
Rack mounted arrangements of servers provide a natural platform for deploying a virtualized environment. The virtualized environment embodies virtualization technology. Virtualization as a technology aims to interject a layer between the hardware platform and operating system and executing applications. From the perspective of business continuity and disaster recovery, virtualization provides the inherent advantage of environment portability. Specifically, to move an entire environment configured with multiple different applications is a matter of moving a virtual image from one supporting hardware platform to another. Further, more powerful computing environments can support the coexistence of multiple different virtual images, all the while maintaining a virtual separation between the images. Consequently, a failure condition in one virtual image cannot jeopardize the integrity of other co-executing virtual images in the same hardware platform.
A virtual machine monitor, known in the art as a “hypervisor”, manages the interaction between each virtual image and the underlying resources provided by the hardware platform. In this regard, a bare metal hypervisor runs directly on the hardware platform much as an operating system runs directly on hardware. By comparison, a hosted hypervisor runs within a host operating system. In either case, the hypervisor can support the operation of different “guest operating system images”—known as virtual machine (VM) images—the number of VM images being limited only by the processing resources of a VM container holding the VM images or the hardware platform itself.
Deploying virtualized environments within an arrangement of servers in a cluster permits the ad hoc arrangement of VM images in the cluster. While deploying an ad hoc arrangement of VM images in a cluster more effectively utilizes the computing resources of the underlying servers when compared to a bare metal environment, deploying an ad hoc arrangement of VM images in a cluster is not optimal. Specifically, some VM images will consume more underlying computing resources than other VM images such that one underlying server in a cluster may not adequately provide the requisite computing resource for hosted VM images, while other underlying servers may not completely utilize computing resources available for use by hosted VM images.
Embodiments of the present invention address deficiencies of the art in respect to deploying and managing VM images in a virtualized environment, and provide a novel and non-obvious method, system and computer program product for power optimization via virtualization opportunity determination. In an embodiment of the invention, a method for power optimization via virtualization opportunity determination can be provided. The method can include monitoring power utilization in individual server hosts in a cluster and determining a set of the server hosts in the cluster demonstrating low power utilization. The method also can include selecting a subset of server hosts in the set and migrating each VM in non-selected server hosts in the set to the subset of server hosts. Finally, the method can include powering down the non-selected server hosts.
In an aspect of the embodiment, monitoring power utilization in individual server hosts in a cluster can include monitoring resource utilization metrics in the individual server hosts, and correlating the metrics with power utilization states. In another aspect of the embodiment, the method yet further can include performing the selecting, migrating and power-down steps only if the determined set of the server hosts exceeds a threshold value. In other aspect of the embodiment, selecting a subset of server hosts in the set and migrating each VM in non-selected ones of the server hosts in the set to the subset of server hosts can include selecting a subset of server hosts in the set, determining an optimal power utilization for each of the server hosts in the subset, monitoring power utilization in each of the server hosts in the subset, and migrating each VM in non-selected ones of the server hosts in the set to the server hosts in the subset only until the determined optimal power utilization of each of the server hosts in the subset has been reached and then discontinuing migration of VMs to ones of the server hosts in the subset determined to have reached optimal power utilization.
In another embodiment of the invention, a virtualized data processing system can be configured for power optimization via virtualization opportunity determination. The system can include a cluster of server hosts. Each of the server hosts can support a hypervisor managing at least one VM. Multiple different management controllers each can be coupled to a corresponding one of the server hosts. Finally, power optimization logic can be communicatively coupled to each management controllers and each hypervisor in each of the server hosts in the cluster.
The logic can include program code enabled to monitor power utilization in individual ones of the server hosts. The program code also can be enabled to determine a set of the server hosts in the cluster demonstrating low power utilization. The program code yet further can be enabled to select a subset of server hosts in the set. The program code even yet further can be enabled to migrate each VM in non-selected ones of the server hosts in the set to the subset of server hosts. Finally, the program code can be enabled to power down the non-selected ones of the server hosts.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
Embodiments of the present invention provide a method, system and computer program product for power optimization via virtualization opportunity determination. In accordance with an embodiment of the present invention, power utilization can be monitored in multiple different servers in a cluster. Servers deemed to be in a low power state are determined to be underutilized. When a threshold number of servers are deemed to be in a low power state, VM images hosted within the servers in the low power state can be consolidated in a subset of the servers in the low power state and the remaining server or servers amongst the servers in the low power state can be powered off. In this way, power consumption within the cluster can be optimized.
In illustration,
Notably, the live migration of VMs 130 in to the subset of underutilized ones of the server hosts 110 can be tempered for optimal power utilization in the server hosts 110. In this regard, an optimal power utilization can be determined for each of the server hosts 110 in the subset. Thereafter, during live migration, power utilization can be monitored in each of the server hosts 110 in the subset. Thereafter, the VMs 130 hosted within the underutilized ones of the server hosts 110 can be live migrated to the subset of the underutilized ones of the server hosts 110 only until the determined optimal power utilization of each of the server hosts 110 in the subset has been reached. Subsequently, live migration of the VMs 130 to those server hosts 110 having reached optimal power utilization can be discontinued.
The process described in connection with the power optimization logic 150 of
A computing device 260 can be communicatively coupled to the cluster 250 over a computer communications network 270. The computing device 260 can support the operation of power optimization logic 300 such that the power optimization logic 300 both can access the interface provided by each management controller 240 for each of the server hosts 210, and also can access each hypervisor 220 for each of the server hosts 210. The power optimization logic 300 can include program code enabled to monitor power utilization in each of the server hosts 210 by way of the corresponding ones of the management controllers 240. For example, the power utilization of each of the server hosts 210 can be measured according to a power state of a CPU within each of the server hosts 210, a power state of a fixed disk within each of the server hosts 210, a power state of memory within each of the server hosts 210, or bus utilization within each of the server hosts 210.
The program code further can be enabled to determine based upon the measured power utilization a low power utilization state in one or more of the server hosts 210. The low power utilization state, for example, can be determined by reference to a table correlating the metrics to estimated or empirically determined power utilization states. The program code yet further can be enabled, in response to determining a low power utilization state in a number of the server hosts 210 exceeding a threshold value, to migrate the VMs in the number of the server hosts 210 to a subset of the number of the server hosts 210. The program code even yet further can be enabled to direct the power-down of each remaining host server amongst the number of the server hosts 210 determined to be a low power utilization state. Consequently, power utilization within the cluster can be optimized.
In yet further illustration of the operation of the power optimization logic 300,
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.