HSQUEEZE(1)

πŸ“¦
version 3.1.0~rc2 Β· 4 versions
, in debian trixie, ubuntu questing, ubuntu resolute

πŸ’– HSQUEEZE(1) πŸ’–

okay so bestie, welcome to hsqueeze, the dynamic power management girlie of the Ganeti htools fam. this page is from Version 3.1.0~rc2, so let's get into it ✨


🌸 NAME 🌸

hsqueeze β€” dynamic power management. she literally powers nodes up and down depending on the vibe of your cluster's load πŸ’…


πŸŽ€ 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 πŸ¦‹

so hsqueeze does dynamic power management β€” she powers nodes up or shuts them down depending on the current load of the cluster. currently, only suggesting nodes is implemented, no cap πŸ‘‘

✨ ALGORITHM ✨

okay this is the part where she does the actual thinking, and it's giving genius fr fr 🧠✨

hsqueeze considers all online non-master nodes with only externally mirrored instances as candidates for being taken offline. these nodes get iteratively added to the set of nodes to be put offline, starting from the node with the least number of instances, if possible.

a set of nodes counts as suitable for being taken offline if β€” after marking those 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 πŸ’–

meanwhile, all offline nodes with a tag starting with htools:standby are considered candidates for being taken online. those nodes get 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). two receipts, one for before and one for after πŸ’Ύβœ¨
  • -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. slay 🐚
  • -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 πŸ™ˆ

found a bug? report it to the project's issue tracker, or contact the developers using the Ganeti mailing list. they wanna hear about it fr fr, no gatekeeping πŸ’Œ


🌈 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 (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.

and that's the whole page bestie!! this one's from the <strong>Ganeti</strong> crew, Version 3.1.0~rc2, HSQUEEZE(1), and it ate, no crumbs. go forth and squeeze responsibly πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from