hsqueeze

NAME

hsqueeze - Dynamic power management

SYNOPSIS

hsqueeze {backend options...} [algorithm options...] [reporting options...]

hsqueeze –version

Backend options:

{ -L[ path ] [-X]** | -t data-file }

Algorithm options:

[ –minimal-resources=*factor* ] [ –target-resources=*factor* ]

Reporting options:

[ -S *file* ] [ -C[*file*] ]

DESCRIPTION

hsqueeze does dynamic power management, by powering up or shutting down nodes, depending on the current load of the cluster. Currently, only suggesting nodes is implemented.

ALGORITHM

hsqueeze considers all online non-master nodes with only externally mirrored instances as candidates for being taken offline. These nodes are iteratively, starting from the node with the least number of instances, added to the set of nodes to be put offline, if possible. A set of nodes is considered as suitable for being taken offline, if, after marking these nodes as offline, balancing the cluster by the algorithm used by hbal(1) yields a situation where all instances are located on online nodes, and each node has at least the target resources free for new instances.

All offline nodes with a tag starting with htools:standby are considered candidates for being taken online. Those nodes are taken online till balancing the cluster by the algorithm used by hbal(1) yields a situation where each node has at least the minimal resources free for new instances.

OPTIONS

-L [path]
Backend specification: collect data directly from the master daemon, which is to be contacted via LUXI (an internal Ganeti protocol). The option is described in the man page htools(1).
-X

When using the Luxi backend, hsqueeze can also execute the given commands.

The execution of the job series can be interrupted, see below for signal handling.

-S filename, –save-cluster=*filename*
If given, the state of the cluster before the squeezing is saved to the given file plus the extension “original” (i.e. filename.original), and the state at the end of the squeezing operation is saved to the given file plus the extension “squeezed” (i.e. filename.squeezed).
-C[filename], –print-commands[=*filename*]
If given, a shell script containing the commands to squeeze or unsqueeze the cluster are saved in a file with the given name; if no name is provided, they are printed to stdout.
-t datafile, –text-data=*datafile*
Backend specification: the name of the file holding node and instance information (if not collecting LUXI). This or one of the other backends must be selected. The option is described in the man page htools(1).
–minimal-resources=*factor*
Specify the amount of resources to be free on each node for hsqueeze not to consider onlining additional nodes. The value is reported a multiple of the standard instance specification, as taken from the instance policy.
–target-resources=*factor*
Specify the amount of resources to remain free on any node after squeezing. The value is reported a multiple of the standard instance specification, as taken from the instance policy.