X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/7ba19f397098d69d4fbff3b34a2977e484838732..8a96e60d28d13d99d0c013931f145a38b91da090:/man/ganeti.rst diff --git a/man/ganeti.rst b/man/ganeti.rst index 52721d4..e3efff9 100644 --- a/man/ganeti.rst +++ b/man/ganeti.rst @@ -40,7 +40,7 @@ Cluster architecture In Ganeti 2.0, the architecture of the cluster is a little more complicated than in 1.2. The cluster is coordinated by a master daemon -(**ganeti-masterd**(8)), running on the master node. Each node runs +(**ganeti-masterd**\(8)), running on the master node. Each node runs (as before) a node daemon, and the master has the RAPI daemon running too. @@ -99,8 +99,8 @@ vm_capable Node Parameters ~~~~~~~~~~~~~~~ -These parameters are node specific and can be preseeded on node-group -and cluster level. +The ``ndparams`` refer to node parameters. These can be set as defaults +on cluster and node group levels, but they take effect for nodes only. Currently we support the following node parameters: @@ -109,6 +109,77 @@ oob_program the `Ganeti Node OOB Management Framework `_ design document. +spindle_count + This should reflect the I/O performance of local attached storage + (e.g. for "file", "plain" and "drbd" disk templates). It doesn't + have to match the actual spindle count of (any eventual) mechanical + hard-drives, its meaning is site-local and just the relative values + matter. + +exclusive_storage + When this Boolean flag is enabled, physical disks on the node are + assigned to instance disks in an exclusive manner, so as to lower I/O + interference between instances. See the `Partitioned Ganeti + `_ design document for more details. This + parameter cannot be set on individual nodes, as its value must be + the same within each node group. + + +Hypervisor State Parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Using ``--hypervisor-state`` you can set hypervisor specific states as +pointed out in ``Ganeti Resource Model ``. + +The format is: ``hypervisor:option=value``. + +Currently we support the following hypervisor state values: + +mem_total + Total node memory, as discovered by this hypervisor +mem_node + Memory used by, or reserved for, the node itself; note that some + hypervisors can report this in an authoritative way, other not +mem_hv + Memory used either by the hypervisor itself or lost due to instance + allocation rounding; usually this cannot be precisely computed, but + only roughly estimated +cpu_total + Total node cpu (core) count; usually this can be discovered + automatically +cpu_node + Number of cores reserved for the node itself; this can either be + discovered or set manually. Only used for estimating how many VCPUs + are left for instances + +Note that currently this option is unused by Ganeti; values will be +recorded but will not influence the Ganeti operation. + + +Disk State Parameters +~~~~~~~~~~~~~~~~~~~~~ + +Using ``--disk-state`` you can set disk specific states as pointed out +in ``Ganeti Resource Model ``. + +The format is: ``storage_type/identifier:option=value``. Where we +currently just support ``lvm`` as storage type. The identifier in this +case is the LVM volume group. By default this is ``xenvg``. + +Currently we support the following hypervisor state values: + +disk_total + Total disk size (usually discovered automatically) +disk_reserved + Reserved disk size; this is a lower limit on the free space, if such a + limit is desired +disk_overhead + Disk that is expected to be used by other volumes (set via + ``reserved_lvs``); usually should be zero + +Note that currently this option is unused by Ganeti; values will be +recorded but will not influence the Ganeti operation. + Cluster configuration ~~~~~~~~~~~~~~~~~~~~~ @@ -168,7 +239,8 @@ Many Ganeti commands provide the following options. The availability for a certain command can be checked by calling the command using the ``--help`` option. -**gnt-...** *command* [--dry-run] [--priority {low | normal | high}] +| **gnt-...** *command* [\--dry-run] [\--priority {low | normal | high}] +| [\--submit] The ``--dry-run`` option can be used to check whether an operation would succeed. @@ -176,6 +248,41 @@ would succeed. The option ``--priority`` sets the priority for opcodes submitted by the command. +The ``--submit`` option is used to send the job to the master daemon but +not wait for its completion. The job ID will be shown so that it can be +examined using **gnt-job info**. + +Defaults +~~~~~~~~ + +For certain commands you can use environment variables to provide +default command line arguments. Just assign the arguments as a string to +the corresponding environment variable. The format of that variable +name is **binary**_*command*. **binary** is the name of the ``gnt-*`` +script all upper case and dashes replaced by underscores, and *command* +is the command invoked on that script. + +Currently supported commands are ``gnt-node list``, ``gnt-group list`` +and ``gnt-instance list``. So you can configure default command line +flags by setting ``GNT_NODE_LIST``, ``GNT_GROUP_LIST`` and +``GNT_INSTANCE_LIST``. + +Debug options +~~~~~~~~~~~~~ + +If the variable ``FORCE_LUXI_SOCKET`` is set, it will override the +socket used for LUXI connections by command-line tools +(``gnt-*``). This is useful mostly for debugging, and some operations +won't work at all if, for example, you point this variable to the +confd-supplied query socket and try to submit a job. + +If the variable is set to the value ``master``, it will connect to the +correct path for the master daemon (even if, for example, split +queries are enabled and this is a query operation). If set to +``query``, it will always (try to) connect to the query socket, even +if split queries are disabled. Otherwise, the value is taken to +represent a filesystem path to the socket to use. + Field formatting ---------------- @@ -185,7 +292,7 @@ list**, **gnt-debug locks**, etc.). For these commands, special states are denoted via a special symbol (in terse mode) or a string (in verbose mode): -*, (offline) +\*, (offline) The node in question is marked offline, and thus it cannot be queried for data. This result is persistent until the node is de-offlined. @@ -224,8 +331,116 @@ behaviour):: # gnt-instance modify -H kernel_path=an\\,example instance1 # gnt-instance modify -H kernel_path='an\,example' instance1 +Query filters +~~~~~~~~~~~~~ + +Most commands listing resources (e.g. instances or nodes) support filtering. +The filter language is similar to Python expressions with some elements from +Perl. The language is not generic. Each condition must consist of a field name +and a value (except for boolean checks), a field can not be compared to another +field. Keywords are case-sensitive. + +Examples (see below for syntax details): + +- List webservers:: + + gnt-instance list --filter 'name =* "web*.example.com"' + +- List instances with three or six virtual CPUs and whose primary + nodes reside in groups starting with the string "rack":: + + gnt-instance list --filter + '(be/vcpus == 3 or be/vcpus == 6) and pnode.group =~ m/^rack/' + +- Nodes hosting primary instances:: + + gnt-node list --filter 'pinst_cnt != 0' + +- Nodes which aren't master candidates:: + + gnt-node list --filter 'not master_candidate' + +- Short version for globbing patterns:: + + gnt-instance list '*.site1' '*.site2' + +Syntax in pseudo-BNF:: + + ::= /* String quoted with single or double quotes, + backslash for escaping */ + + ::= /* Number in base-10 positional notation */ + + ::= /* Regular expression */ + + /* + Modifier "i": Case-insensitive matching, see + http://docs.python.org/library/re#re.IGNORECASE + + Modifier "s": Make the "." special character match any character, + including newline, see http://docs.python.org/library/re#re.DOTALL + */ + ::= /* empty */ | i | s + + ::= | + + ::= + { /* Value comparison */ + { == | != | < | <= | >= | > } + + /* Collection membership */ + | [ not ] in + + /* Regular expressions (recognized delimiters + are "/", "#", "^", and "|"; backslash for escaping) + */ + | { =~ | !~ } m// + + /* Globbing */ + | { =* | !* } + + /* Boolean */ + | + } + + ::= + { [ not ] | ( ) } + [ { and | or } ] + +Operators: + +*==* + Equality +*!=* + Inequality +*<* + Less than +*<=* + Less than or equal +*>* + Greater than +*>=* + Greater than or equal +*=~* + Pattern match using regular expression +*!~* + Logically negated from *=~* +*=\** + Globbing, see **glob**\(7), though only * and ? are supported +*!\** + Logically negated from *=\** +*in*, *not in* + Collection membership and negation + + Common daemon functionality --------------------------- All Ganeti daemons re-open the log file(s) when sent a SIGHUP signal. -**logrotate**(8) can be used to rotate Ganeti's log files. +**logrotate**\(8) can be used to rotate Ganeti's log files. + +.. vim: set textwidth=72 : +.. Local Variables: +.. mode: rst +.. fill-column: 72 +.. End: