X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/d7731f511bc7bc5202bba5afd35bc8794581593e..2ab65a5db84dc7154a11f3ed050725ab8d5c7248:/man/htools.rst diff --git a/man/htools.rst b/man/htools.rst index 3104bf0..85e8f52 100644 --- a/man/htools.rst +++ b/man/htools.rst @@ -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**\(8)) + - 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 @@ -157,7 +272,7 @@ 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. +be read in the **units**\(7) man page. ENVIRONMENT -----------