Saving Energy Strategy¶
Requirements¶
This feature will use Ironic to do the power on/off actions, therefore this feature requires that the ironic component is configured. And the compute node should be managed by Ironic.
Ironic installation: https://docs.openstack.org/ironic/latest/install/index.html
Actions¶
action
description
change_node_power_state
Compute node power on/off
By using this action, you will be able to on/off the power of a compute node.
The action schema is:
schema = Schema({ 'resource_id': str, 'state': str, })The resource_id references a ironic node id (list of available ironic node is returned by this command:
ironic node-list
). The state value should either be on or off.
Planner¶
Default Watcher’s planner:
Weight planner implementation
This implementation builds actions with parents in accordance with weights. Set of actions having a higher weight will be scheduled before the other ones. There are two config options to configure: action_weights and parallelization.
Limitations
This planner requires to have action_weights and parallelization configs tuned well.
Configuration¶
Strategy parameter is:
parameter |
type |
default Value |
description |
---|---|---|---|
|
Number |
10.0 |
a rational number, which describes the the quotient of min_free_hosts_num/nodes_with_VMs_num |
|
Int |
1 |
an int number describes minimum free compute nodes |
Efficacy Indicator¶
None
Algorithm¶
For more information on the Energy Saving Strategy please refer to: http://specs.openstack.org/openstack/watcher-specs/specs/pike/implemented/energy-saving-strategy.html
How to use it ?¶
step1: Add compute nodes info into ironic node management
$ ironic node-create -d pxe_ipmitool -i ipmi_address=10.43.200.184 \
ipmi_username=root -i ipmi_password=nomoresecret -e compute_node_id=3
step 2: Create audit to do optimization
$ openstack optimize audittemplate create \
saving_energy_template1 saving_energy --strategy saving_energy
$ openstack optimize audit create -a saving_energy_audit1 \
-p free_used_percent=20.0
External Links¶
None