Overview¶
TerraCotta is an extension to OpenStack implementing dynamic consolidation of instances using live migration. The major objective of dynamic instance consolidation is to improve the utilization of physical resources and reduce energy consumption by re-allocating instancess using live migration according to their real-time resource demand and switching idle hosts to sleep mode.
Usecases¶
For example, assume that two instances are placed on two different hosts, but the combined resource capacity required by the instances to serve the current load can be provided by just one of the hosts. Then, one of the instances can be migrated to the host serving the other instance, and the idle host can be switched to a low power mode to save energy. When the resource demand of either of the instances increases, they get deconsolidated to avoid performance degradation. This process is dynamically managed by OpenStack Terracotta.
Architecture¶
In general, the problem of dynamic instance consolidation can be split into 4 sub-problems:
1. Deciding when a host is considered to be underloaded, so that all the instances should be migrated from it, and the host should be switched to a low power mode, such as the sleep mode.
2. Deciding when a host is considered to be overloaded, so that some instances should be migrated from the host to other hosts to avoid performance degradation.
3. Selecting instances to migrate from an overloaded host out of the full set of the instances currently served by the host.
- Placing instances selected for migration to other active or re-activated hosts.
The aim of the OpenStack Terracotta project is to provide an extensible framework for dynamic consolidation of instances 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.
Note: The current version of this file is copied from Neat with modifications