Improve the reception of replies in the confd client
[ganeti-local] / man / htools.rst
index 3104bf0..e19ce82 100644 (file)
@@ -12,6 +12,9 @@ SYNOPSIS
 **hbal**
   cluster balancer
 
+**hcheck**
+  cluster checker
+
 **hspace**
   cluster capacity computation
 
@@ -21,11 +24,15 @@ SYNOPSIS
 **hscan**
   saves cluster state for later reuse
 
+**hinfo**
+  cluster information printer
+
+**hroller**
+  cluster rolling maintenance scheduler
 
 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
@@ -35,6 +42,9 @@ 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 ``hcheck``, it preforms cluster checks and optionally
+simulates rebalancing with all the ``hbal`` options available.
+
 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.
@@ -45,13 +55,19 @@ 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.
 
+Installed as ``hinfo``, it prints information about the current cluster
+state.
+
+Installed as ``hroller``, it helps scheduling maintenances that require
+node reboots on a cluster.
+
 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
+-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),
@@ -131,17 +147,116 @@ support all options. Some common options are:
   lNet
     the dynamic net load (if the information is available)
 
--v, --verbose
+-t *datafile*, \--text-data=*datafile*
+  Backend specification: the name of the file holding node and instance
+  information (if not collecting via RAPI or LUXI). This or one of the
+  other backends must be selected. The option is described in the man
+  page **htools**(1).
+
+  The file should contain text data, line-based, with two empty lines
+  separating sections. The lines themselves are column-based, with the
+  pipe symbol (``|``) acting as separator.
+
+  The first section contains group data, with two columns:
+
+  - group name
+  - group uuid
+
+  The second sections contains node data, with the following columns:
+
+  - node name
+  - node total memory
+  - node free memory
+  - node total disk
+  - node free disk
+  - node physical cores
+  - offline field (as ``Y`` or ``N``)
+  - group UUID
+  - node spindle count
+
+  The third section contains instance data, with the fields:
+
+  - instance name
+  - instance memory
+  - instance disk size
+  - instance vcpus
+  - instance status (in Ganeti's format, e.g. ``running`` or ``ERROR_down``)
+  - instance ``auto_balance`` flag (see man page **gnt-instance** (7))
+  - instance primary node
+  - instance secondary node(s), if any
+  - instance disk type (e.g. ``plain`` or ``drbd``)
+  - instance tags
+
+  The fourth section contains the cluster tags, with one tag per line
+  (no columns/no column processing).
+
+  The fifth section contains the ipolicies of the cluster and the node
+  groups, in the following format (separated by ``|``):
+
+  - owner (empty if cluster, group name otherwise)
+  - standard, min, max instance specs, containing the following values
+    separated by commas:
+    - memory size
+    - cpu count
+    - disk size
+    - disk count
+    - nic count
+  - disk templates
+  - vcpu ratio
+  - spindle ratio
+
+-m *cluster*
+  Backend specification: collect data directly from the *cluster* given
+  as an argument via RAPI. If the argument doesn't contain a colon (:),
+  then it is converted into a fully-built URL via prepending
+  ``https://`` and appending the default RAPI port, otherwise it is
+  considered a fully-specified URL and used as-is.
+
+-L [*path*]
+  Backend specification: collect data directly from the master daemon,
+  which is to be contacted via LUXI (an internal Ganeti protocol). An
+  optional *path* argument is interpreted as the path to the unix socket
+  on which the master daemon listens; otherwise, the default path used
+  by Ganeti (configured at build time) is used.
+
+-I|\--ialloc-src *path*
+  Backend specification: load data directly from an iallocator request
+  (as produced by Ganeti when doing an iallocator call).  The iallocator
+  request is read from specified path.
+
+\--simulate *description*
+  Backend specification: instead of using actual data, build an empty
+  cluster given a node description. The *description* parameter must be
+  a comma-separated list of five elements, describing in order:
+
+  - the allocation policy for this node group (*preferred*, *allocable*
+    or *unallocable*, or alternatively the short forms *p*, *a* or *u*)
+  - the number of nodes in the cluster
+  - the disk size of the nodes (default in mebibytes, units can be used)
+  - the memory size of the nodes (default in mebibytes, units can be used)
+  - the cpu core count for the nodes
+  - the spindle count for the nodes
+
+  An example description would be **preferred,20,100G,16g,4,2**
+  describing a 20-node cluster where each node has 100GB of disk space,
+  16GiB of memory, 4 CPU cores and 2 disk spindles. Note that all nodes
+  must have the same specs currently.
+
+  This option can be given multiple times, and each new use defines a
+  new node group. Hence different node groups can have different
+  allocation policies and node count/specifications.
+
+-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
+-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
+-V, \--version
   Just show the program version and exit.
 
 UNITS