OpenStack Neat: A Framework for Dynamic Consolidation of Virtual Machines

Registered by Anton Beloglazov

OpenStack Neat is a project intended to provide an extension to OpenStack implementing dynamic consolidation of Virtual Machines (VMs) using live migration. The major objective of dynamic VM consolidation is to improve the utilization of physical resources and reduce energy consumption by re-allocating VMs using live migration according to their real-time resource demand and switching idle hosts to the sleep mode. Apart from consolidating VMs, the system should be able to react to increases in the resource demand and deconsolidate VMs when necessary to avoid performance degradation. In general, the problem of dynamic VM consolidation includes 4 sub-problems: host underload / overload detection, VM selection, and VM placement.

This work is conducted within the Cloud Computing and Distributed Systems (CLOUDS) Laboratory (http://www.cloudbus.org/) at the University of Melbourne. The problem of dynamic VM consolidation considering Quality of Service (QoS) constraints has been studied from the theoretical perspective and algorithms addressing the sub-problems listed above have been proposed [1], [2]. The algorithms have been evaluated using CloudSim (http://code.google.com/p/cloudsim/) and real-world workload traces collected from more than a thousand PlanetLab VMs hosted on servers located in more than 500 places around the world.

The aim of the OpenStack Neat project is to provide an extensible framework for dynamic consolidation of VMs based on the OpenStack platform. The framework should provide an infrastructure enabling the interaction of components implementing the decision-making algorithms. The framework should allow configuration-driven switching of different implementations of the decision-making algorithms. The implementation of the framework will include the algorithms proposed in our previous works [1], [2].

The full version of the blueprint can be downloaded as a PDF:

https://github.com/beloglazov/openstack-neat/raw/master/doc/blueprint/openstack-neat-blueprint.pdf

It would be great to get any feedback or suggestions from anyone.

[1] Anton Beloglazov and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012.
Download: http://beloglazov.info/papers/2012-optimal-algorithms-ccpe.pdf

[2] Anton Beloglazov and Rajkumar Buyya, "Managing Overloaded Hosts for Dynamic Consolidation of Virtual Machines in Cloud Data Centers Under Quality of Service Constraints", IEEE Transactions on Parallel and Distributed Systems (TPDS), IEEE CS Press, USA, 2012 (in press, accepted on August 2, 2012).
Download: http://beloglazov.info/papers/2012-host-overload-detection-tpds.pdf

Blueprint information

Status:
Complete
Approver:
Russell Bryant
Priority:
Not
Drafter:
Anton Beloglazov
Direction:
Needs approval
Assignee:
Anton Beloglazov
Definition:
Obsolete
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
Anton Beloglazov
Completed by
Russell Bryant

Related branches

Sprints

Whiteboard

Very interesting project, but I don't think the blueprint belongs in nova since it's a separate project, not an enhancement to nova. I would draw attention to your project on the mailing lists. Thanks! --Russell

-----------------------------------------------------------------------------------------------------------------------------------

No worries, Russell!

For anyone who is interested in the project, please follow us on github: https://github.com/beloglazov/openstack-neat

Or open a discussion on the project's mailing list: http://groups.google.com/group/openstack-neat

Cheers,
Anton

(?)

Work Items

Work items:
Implement and unit test the data collector: DONE
Implement and unit test the local manager: DONE
Implement and unit test the global manager: DONE
Deploy and test the data collector on a testbed: DONE
Deploy and test the local manager on a testbed: DONE
Deploy and test the global manager on a testbed: DONE
Integration tests of the components: DONE
More extensive tests of the system using PlanetLab workload traces: INPROGRESS