hsqueeze.rst 3.05 KB
Newer Older
Klaus Aehlig's avatar
Klaus Aehlig committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
HSQUEEZE(1) Ganeti | Version @GANETI_VERSION@
=============================================

NAME
----

hsqueeze \- Dynamic power management

SYNOPSIS
--------

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

**hsqueeze** \--version

Backend options:

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

Algorithm options:

22
**[ \--minimal-resources=*factor* ]**
Klaus Aehlig's avatar
Klaus Aehlig committed
23 24 25 26 27
**[ \--target-resources=*factor* ]**

Reporting options:

**[ -S *file* ]**
28
**[ -C[*file*] ]**
Klaus Aehlig's avatar
Klaus Aehlig committed
29 30 31 32 33 34 35


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
36
is implemented.
Klaus Aehlig's avatar
Klaus Aehlig committed
37 38 39 40 41 42 43 44 45 46 47 48 49

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.

50 51 52 53 54 55
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.

Klaus Aehlig's avatar
Klaus Aehlig committed
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
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).

-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).

71 72 73 74 75
-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.

Klaus Aehlig's avatar
Klaus Aehlig committed
76 77 78 79 80 81
-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).

82 83 84 85 86
\--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.

Klaus Aehlig's avatar
Klaus Aehlig committed
87 88 89 90
\--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.