Dynamic resource scheduling service for OpenStack cloud.
Go to file
OpenDev Sysadmins 8f6419693a OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:51:56 +00:00
doc fix tox 2016-02-04 14:21:40 +08:00
etc/terracotta Use oslo-config-generator to sync config file 2016-02-06 09:43:27 +08:00
terracotta Fix the wrong i18n domain definition 2016-03-24 10:01:17 +08:00
tools fix tox 2016-02-04 14:21:40 +08:00
.gitignore Use oslo-config-generator to sync config file 2016-02-06 09:43:27 +08:00
.gitreview OpenDev Migration Patch 2019-04-19 19:51:56 +00:00
.pylintrc Refactor global manager 2015-05-01 23:58:06 +08:00
.testr.conf fix tox 2016-02-04 14:21:40 +08:00
LICENSE Added the Apache 2.0 license, header, and notice file 2012-08-02 15:55:15 +10:00
README.md Update README.md for Terracotta 2016-01-06 17:43:07 +08:00
nosetests.sh Made the test runner accept a package argument to run tests from 2012-10-23 16:34:14 +11:00
openstack-common.conf Refactor api service 2015-05-04 16:40:32 +08:00
requirements.txt Sync requirements 2017-07-02 12:51:15 +02:00
run_tests.sh Refactor global manager 2015-05-01 23:58:06 +08:00
setup.cfg Use oslo-config-generator to sync config file 2016-02-04 17:05:18 +08:00
setup.py Sync requirements 2017-07-02 12:51:15 +02:00
test-requirements.txt Sync requirements 2017-07-02 12:51:15 +02:00
tox.ini Remove unused linters tox target 2017-07-02 12:51:26 +02:00

README.md

Terracotta: A Framework for Dynamic Consolidation of Resources in Openstack Clouds

Terracotta is an extension to OpenStack implementing dynamic consolidation of resources, e.g. Virtual Machines (VMs) using live migration.

Currently, the major objective is dynamic VM consolidation to improve the utilization of physical resources and reduce energy consumption by re-allocating resources using live migration according to their real-time resource demand and switching idle hosts to the sleep mode.

For example, assume that two VMs are placed on two different hosts, but the combined resource capacity required by the VMs to serve the current load can be provided by just one of the hosts. Then, one of the VMs can be migrated to the host serving the other VM, and the idle host can be switched to a low power mode to save energy. When the resource demand of either of the VMs increases, they get deconsolidated to avoid performance degradation. This process is dynamically managed by Terracotta.

In general, the problem of dynamic VM consolidation can be split into 4 sub-problems:

  • Deciding when a host is considered to be underloaded, so that all the VMs should be migrated from it, and the host should be switched to a low power mode, such as the sleep mode.
  • Deciding when a host is considered to be overloaded, so that some VMs should be migrated from the host to other hosts to avoid performance degradation.
  • Selecting VMs to migrate from an overloaded host out of the full set of the VMs currently served by the host.
  • Placing VMs selected for migration to other active or re-activated hosts.

The aim of the Terracotta project is to provide an extensible framework for dynamic consolidation of resources based on the OpenStack platform. The framework provides an infrastructure enabling the interaction of components implementing the 4 decision-making algorithms listed above. The framework allows configuration-driven switching of different implementations of the decision-making algorithms.

More details

The Terracotta project idea originally comes from the paper describing the architecture and implementation of OpenStack Neat and Chapter 6 of Anton Beloglazov's PhD thesis: http://beloglazov.info/thesis.pdf. After discussion with the author, we are authorized to use Neat as the Terracotta code base at the very early stage. However, a lot of work need to be done according to OpenStack project's requirement.