Virtual Machine Consolidation Agent

During the lifecycle of a private Cloud deployment, the Virtual Machines (VM) are placed in real virtualization hosts. When these VMs are no longer needed, they are destroyed and their resources are freed. The problem here is that due to these movements, we can find that the remaining VMs at a moment are spreaded among the real hosts resulting in a low density of VM per real host. The consequence is that is get a fragmentation of the resources of the virtualization hosts. Such fragmentation may have critical effects if a new VM should be started but there are not enough continous resources to be allocated, while there exist fragmented resources.

On the other hand, when the fragmentation of resources happens, another consequence is an inefficient usage of the virtualization resources. That means that we are probably keeping powered on some real hosts because they are running VMs. In case that these VMs were hosted in other hosts, some of the virtualization hosts may be powered off to save energy.

The Virtual Machine Consolidation Agent (VMCA) inspects your private Cloud deployment to try to defragment the available resources by migrating VMs from some real hosts to other real hosts that have enough resources to keep all the VMs running. The result is a compression of the existing free resources and an increase of the density of VMs per real host.

One of the main objectives of the VMCA is getting real hosts free from VMs. Using this agent in conjunction with CLUES it is possible to achieve a more efficient usage of the resources. Moreover we will save energy because those nodes that are not used by the virtualization platform will be powered off by CLUES.

Integration with CLUES

While VMCA and CLUES work independently to each other, it is very interesting to use them together in OpenNebula based private Cloud deployments to achive a proper save of energy and a higher efficiency of resource usage.

During its common work, CLUES will monitor the OpenNebula deployment and it will power off those nodes that are detected to be idle for a while. The fragmentation of the virtualization resources will make that some of the real hosts remain powered on because they are running VM. But some of these VMs would potentially be hosted by other hosts that are running other VMs. The VMCA comes into play here to try to detect those real hosts that have a low usage and whose VMs may be placed into other hosts. In such case the VMCA will migrate the VMs to other hosts.

The result is that some of the nodes will run out of running VMs and CLUES will consider them idle during its conventional duty. The consequence is that those idle hosts will be considered to be powered off to save energy.

Development and Licensing

The system is currently integrated with OpenNebula, and it implements an original VM replacement algorithm called "bestfit" that minimizes the logic of deciding when to migrate VMs. This algorithm provides a balanced ratio between speed and resource compactation.

VMCA is completely developed in python, and all of its source code is distributed as open source under the GNU General Public License - version 3.0. This license allows users to make modifications, as long as the license type is kept if the results are distributed.

© GRyCAP - UPV, Edificio 8B - Universidad Politécnica de Valencia - 46022, Valencia.
Contacto: +34963877023, Fax: +34963877274
legal note