HSCAN(1)

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

✨ HSCAN(1) ✨

okay bestie, gather round, because this is the manual page for hscan from Ganeti, version 3.1.0~rc2, and we are going to understand it together. πŸ’–


🌸 NAME 🌸

hscan β€” scan clusters via RAPI and save node/instance data πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

hscan [-p] [--no-headers] [-d path ] cluster...

hscan --version

yes bestie, that [-d path ] spacing is real, I'm not touching it, it's part of the vibe. πŸŽ€


✨ DESCRIPTION ✨

So here's the tea. hscan is the tool that goes out and scans clusters via RAPI, then saves all that data in the input format that hbal(1) and hspace(1) eat. πŸ“ It'll also show you a one-line score for every cluster it scanned β€” or, if you want, the whole cluster state exactly as the -p option shows it in those other tools. main character energy fr fr πŸ‘‘

For each cluster, one file named cluster.data gets generated, holding the node and instance data. That file can then be used in hbal(1) or hspace(1) through the -t option. πŸ’« And heads up: if the cluster name contains slashes (which lowkey happens when the cluster is a fully-specified URL), those slashes get replaced with underscores. 🩹

The one-line output for each cluster shows you all of this:

  • Name β€” the name of the cluster (or the IP address that was given, etc.) 🏷️
  • Nodes β€” the number of nodes in the cluster
  • Inst β€” the number of instances in the cluster
  • BNode β€” the number of nodes failing N+1 😭
  • BInst β€” the number of instances living on N+1-failed nodes
  • t_mem β€” total memory in the cluster
  • f_mem β€” free memory in the cluster
  • t_disk β€” total disk in the cluster
  • f_disk β€” free disk space in the cluster
  • Score β€” the score of the cluster, as would be reported by hbal(1) if it were run on the generated data files ✨

And if there are errors while collecting data? Then every field after the name of the cluster gets replaced with the error display. πŸ’€ not cute but it's honest.

Note: this output format is not yet final, so it should not be used for scripting yet. πŸ™ˆ like, admire it, don't depend on it, bestie.

πŸŽ€ OPTIONS πŸŽ€

The options you can pass to the program are, and I quote, as follows:

  • -p, --print-nodes β€” Prints the node status for each cluster after that cluster's one-line status display, in a format designed to let you understand the node's most important parameters. For the details, go see the man page for htools(1). πŸ”
  • -d path β€” Save the node and instance data for each cluster under path, instead of in the current directory. πŸ“
  • -V, --version β€” Just show the program version and exit. πŸšͺπŸ’¨

πŸ’œ EXIT STATUS πŸ’œ

The exit status of the command will be zero, unless for some reason loading the input data failed fatally (e.g. wrong node or instance data). then it's not zero and we are Not Okay. 😭


πŸ’€ BUGS πŸ’€

ngl this one's a lil scary. The program does not check its input data for consistency, and it aborts with cryptic error messages in that case. 🫠 so, y'know, feed it good data or get mystery messages, iykyk.


🌈 EXAMPLE 🌈

$ hscan cluster1
Name     Nodes  Inst BNode BInst  t_mem  f_mem t_disk f_disk      Score
cluster1     2     2     0     0   1008    652    255    253 0.24404762
$ ls -l cluster1.data
-rw-r--r-- 1 root root 364 2009-03-23 07:26 cluster1.data

look at that beautiful little cluster1.data file just existing. iconic. πŸŽ€


🫢 REPORTING BUGS 🫢

Report bugs to the project's issue tracker, or contact the developers using the Ganeti mailing list. πŸ“¬ they want to hear from you, fr fr.


πŸ‘‘ 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.

okay so this next part is the legal bit and we are reading it in full because that's the rule, bestie. every word. here we go. 🫑

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 is the Ganeti HSCAN(1) page, version 3.1.0~rc2 β€” go scan some clusters and slay. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from