Provided by: ganeti-htools-2.16_2.16.0-5ubuntu1_amd64 bug

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.

REPORTING BUGS

       Report  bugs  to  project  website  (http://code.google.com/p/ganeti/)  or   contact   the
       developers using the Ganeti mailing list (ganeti@googlegroups.com).

SEE ALSO

       Ganeti  overview  and specifications: ganeti(7) (general overview), ganeti-os-interface(7)
       (guest OS definitions), ganeti-extstorage-interface(7) (external storage providers).

       Ganeti  commands:  gnt-cluster(8)   (cluster-wide   commands),   gnt-job(8)   (job-related
       commands),  gnt-node(8)  (node-related  commands),  gnt-instance(8)  (instance  commands),
       gnt-os(8) (guest OS commands), gnt-storage(8) (storage commands), gnt-group(8) (node group
       commands), gnt-backup(8) (instance import/export commands), gnt-debug(8) (debug commands).

       Ganeti  daemons:  ganeti-watcher(8) (automatic instance restarter), ganeti-cleaner(8) (job
       queue cleaner), ganeti-noded(8) (node daemon), ganeti-rapi(8) (remote API daemon).

       Ganeti htools: htools(1) (generic binary), hbal(1) (cluster balancer), hspace(1) (capacity
       calculation),  hail(1) (IAllocator plugin), hscan(1) (data gatherer from remote clusters),
       hinfo(1) (cluster information printer), mon-collector(7) (data collectors interface).

COPYRIGHT

       Copyright (C) 2006-2015 Google Inc.  All rights reserved.

       Redistribution and use in source and binary  forms,  with  or  without  modification,  are
       permitted provided that the following conditions are met:

       1.   Redistributions  of  source code must retain the above copyright notice, this list of
       conditions and the following disclaimer.

       2.  Redistributions in binary form must reproduce the above copyright notice, this list of
       conditions  and  the  following  disclaimer  in  the  documentation and/or other materials
       provided with the distribution.

       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS  AND  CONTRIBUTORS  "AS  IS"  AND  ANY
       EXPRESS  OR  IMPLIED  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
       MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN  NO  EVENT  SHALL
       THE  COPYRIGHT  HOLDER  OR  CONTRIBUTORS  BE  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
       SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED  TO,  PROCUREMENT
       OF  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
       HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  LIABILITY,  OR
       TORT  (INCLUDING  NEGLIGENCE  OR  OTHERWISE)  ARISING  IN  ANY  WAY OUT OF THE USE OF THIS
       SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.