Scroll to navigation

HTOOLS(1) Version 2.5.2 HTOOLS(1)

NAME

htools - Cluster allocation and placement tools for Ganeti

SYNOPSIS

hbal
cluster balancer
hspace
cluster capacity computation
hail
IAllocator plugin
hscan
saves cluster state for later reuse

DESCRIPTION

htools is a suite of tools designed to help with allocation/movement of instances and balancing of Ganeti clusters. htools is also the generic binary that must be symlinked or hardlinked under each tool's name in order to perform the different functions. Alternatively, the environment variable HTOOLS can be used to set the desired role.
Installed as hbal, it computes and optionally executes a suite of instance moves in order to balance the cluster.
Installed as hspace, it computes how many additional instances can be fit on a cluster, while maintaining N+1 status. It can run on models of existing clusters or of simulated clusters.
Installed as hail, it acts as an IAllocator plugin, i.e. it is used by Ganeti to compute new instance allocations and instance moves.
Installed as hscan, it scans the local or remote cluster state and saves it to files which can later be reused by the other roles.

COMMON OPTIONS

Options behave the same in all program modes, but not all program modes support all options. Some common options are:
-p, --print-nodes
Prints the node status, in a format designed to allow the user to understand the node's most important parameters. If the command in question makes a cluster transition (e.g. balancing or allocation), then usually both the initial and final node status is printed.
It is possible to customise the listed information by passing a comma-separated list of field names to this option (the field list is currently undocumented), or to extend the default field list by prefixing the additional field list with a plus sign. By default, the node list will contain the following information:
F
a character denoting the status of the node, with '-' meaning an offline node, '*' meaning N+1 failure and blank meaning a good node
Name
the node name
t_mem
the total node memory
n_mem
the memory used by the node itself
i_mem
the memory used by instances
x_mem
amount memory which seems to be in use but cannot be determined why or by which instance; usually this means that the hypervisor has some overhead or that there are other reporting errors
f_mem
the free node memory
r_mem
the reserved node memory, which is the amount of free memory needed for N+1 compliance
t_dsk
total disk
f_dsk
free disk
pcpu
the number of physical cpus on the node
vcpu
the number of virtual cpus allocated to primary instances
pcnt
number of primary instances
scnt
number of secondary instances
p_fmem
percent of free memory
p_fdsk
percent of free disk
r_cpu
ratio of virtual to physical cpus
lCpu
the dynamic CPU load (if the information is available)
lMem
the dynamic memory load (if the information is available)
lDsk
the dynamic disk load (if the information is available)
lNet
the dynamic net load (if the information is available)
-v, --verbose
Increase the output verbosity. Each usage of this option will increase the verbosity (currently more than 2 doesn't make sense) from the default of one.
-q, --quiet
Decrease the output verbosity. Each usage of this option will decrease the verbosity (less than zero doesn't make sense) from the default of one.
-V, --version
Just show the program version and exit.

UNITS

Some options accept not simply numerical values, but numerical values together with a unit. By default, such unit-accepting options use mebibytes. Using the lower-case letters of m, g and t (or their longer equivalents of mib, gib, tib, for which case doesn't matter) explicit binary units can be selected. Units in the SI system can be selected using the upper-case letters of M, G and T (or their longer equivalents of MB, GB, TB, for which case doesn't matter).
More details about the difference between the SI and binary systems can be read in the units(7) man page.

ENVIRONMENT

The environment variable HTOOLS can be used instead of renaming/symlinking the programs; simply set it to the desired role and then the name of the program is no longer used.

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 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-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-masterd(8) (master 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).

COPYRIGHT

Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Google Inc. Permission is granted to copy, distribute and/or modify under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.
 
Ganeti