Good Thermal Strategy:
Towards to software defined infrastructure, the power and thermal
intelligences is being adopted to optimize workload, which can help
improve efficiency, reduce power, as well as to improve datacenter PUE
and lower down operation cost in data center.
Outlet (Exhaust Air) Temperature is one of the important thermal
telemetries to measure thermal/workload status of server.
-
class watcher.decision_engine.strategy.strategies.outlet_temp_control.OutletTempControl(config, osc=None)[source]
Bases: watcher.decision_engine.strategy.strategies.base.ThermalOptimizationBaseStrategy
[PoC] Outlet temperature control using live migration
Description
It is a migration strategy based on the outlet temperature of compute
hosts. It generates solutions to move a workload whenever a server’s
outlet temperature is higher than the specified threshold.
Requirements
- Hardware: All computer hosts should support IPMI and PTAS technology
- Software: Ceilometer component ceilometer-agent-ipmi running
in each compute host, and Ceilometer API can report such telemetry
hardware.ipmi.node.outlet_temperature successfully.
- You must have at least 2 physical compute hosts to run this strategy.
Limitations
- This is a proof of concept that is not meant to be used in production
- We cannot forecast how many servers should be migrated. This is the
reason why we only plan a single virtual machine migration at a time.
So it’s better to use this algorithm with CONTINUOUS audits.
- It assume that live migrations are possible
Spec URL
https://github.com/openstack/watcher-specs/blob/master/specs/mitaka/approved/outlet-temperature-based-strategy.rst
-
calc_used_res(node, cpu_capacity, memory_capacity, disk_capacity)[source]
Calculate the used vcpus, memory and disk based on VM flavors
-
choose_instance_to_migrate(hosts)[source]
Pick up an active instance to migrate from provided hosts
-
do_execute()[source]
-
filter_dest_servers(hosts, instance_to_migrate)[source]
Only return hosts with sufficient available resources
-
classmethod get_display_name()[source]
-
classmethod get_name()[source]
-
classmethod get_schema()[source]
-
classmethod get_translatable_display_name()[source]
-
group_hosts_by_outlet_temp()[source]
Group hosts based on outlet temp meters
-
post_execute()[source]
-
pre_execute()[source]