Add new back-end parameter "always_failover"
[ganeti-local] / man / gnt-node.rst
index 97094cd..e2ddae6 100644 (file)
@@ -23,7 +23,8 @@ COMMANDS
 ADD
 ~~~
 
-| **add** [--readd] [-s *secondary\_ip*] [-g *nodegroup*]
+| **add** [--readd] [{-s|--secondary-ip} *secondary\_ip*]
+| [{-g|--node-group} *nodegroup*]
 | [--master-capable=``yes|no``] [--vm-capable=``yes|no``]
 | [--node-parameters *ndparams*]
 | {*nodename*}
@@ -39,9 +40,9 @@ Note that the command is potentially destructive, as it will
 forcibly join the specified host the cluster, not paying attention
 to its current status (it could be already in a cluster, etc.)
 
-The ``-s`` is used in dual-home clusters and specifies the new node's
-IP in the secondary network. See the discussion in **gnt-cluster**(8)
-for more information.
+The ``-s (--secondary-ip)`` is used in dual-home clusters and
+specifies the new node's IP in the secondary network. See the
+discussion in **gnt-cluster**(8) for more information.
 
 In case you're readding a node after hardware failure, you can use
 the ``--readd`` parameter. In this case, you don't need to pass the
@@ -53,9 +54,9 @@ The ``--force-join`` option is to proceed with adding a node even if it already
 appears to belong to another cluster. This is used during cluster merging, for
 example.
 
-The ``-g`` is used to add the new node into a specific node group,
-specified by UUID or name. If only one node group exists you can
-skip this option, otherwise it's mandatory.
+The ``-g (--node-group)`` option is used to add the new node into a
+specific node group, specified by UUID or name. If only one node group
+exists you can skip this option, otherwise it's mandatory.
 
 The ``vm_capable``, ``master_capable`` and ``ndparams`` options are
 described in **ganeti**(7), and are used to set the properties of the
@@ -86,21 +87,24 @@ EVACUATE
 ~~~~~~~~
 
 **evacuate** [-f] [--early-release] [--iallocator *NAME* \|
---new-secondary *destination\_node*] {*node*...}
+--new-secondary *destination\_node*]
+[--primary-only \| --secondary-only] [--early-release] {*node*}
 
-This command will move all secondary instances away from the given
-node(s). It works only for instances having a drbd disk template.
+This command will move instances away from the given node. If
+``--primary-only`` is given, only primary instances are evacuated, with
+``--secondary-only`` only secondaries. If neither is given, all
+instances are evacuated. It works only for instances having a drbd disk
+template.
 
 The new location for the instances can be specified in two ways:
 
-- as a single node for all instances, via the ``--new-secondary``
+- as a single node for all instances, via the ``-n (--new-secondary)``
   option
 
-- or via the ``--iallocator`` option, giving a script name as
+- or via the ``-I (--iallocator)`` option, giving a script name as
   parameter, so each instance will be in turn placed on the (per the
   script) optimal node
 
-
 The ``--early-release`` changes the code so that the old storage on
 node being evacuated is removed early (before the resync is
 completed) and the internal Ganeti locks are also released for both
@@ -111,9 +115,17 @@ old storage is already broken) or when the storage on the primary
 node is known to be fine (thus we won't need the old storage for
 potential recovery).
 
+Note that this command is equivalent to using per-instance commands for
+each affected instance individually:
+
+- ``--primary-only`` is equivalent to ``gnt-instance failover/migration``
+- ``--secondary-only`` is equivalent to ``gnt-instance replace-disks``
+  in the secondary node change mode (only valid for DRBD instances)
+- when neither of the above is done a combination of the two cases is run
+
 Example::
 
-    # gnt-node evacuate -I dumb node3.example.com
+    # gnt-node evacuate -I hail node3.example.com
 
 
 FAILOVER
@@ -149,7 +161,8 @@ LIST
 
 | **list**
 | [--no-headers] [--separator=*SEPARATOR*]
-| [--units=*UNITS*] [-v] [-o *[+]FIELD,...*]
+| [--units=*UNITS*] [-v] [{-o|--output} *[+]FIELD,...*]
+| [--filter]
 | [node...]
 
 Lists the nodes in the cluster.
@@ -172,148 +185,34 @@ give inconsistent results for the free disk/memory.
 The ``-v`` option activates verbose mode, which changes the display of
 special field states (see **ganeti(7)**).
 
-The ``-o`` option takes a comma-separated list of output fields.
-The available fields and their meaning are:
-
-
-name
-    the node name
-
-pinst_cnt
-    the number of instances having this node as primary
-
-pinst_list
-    the list of instances having this node as primary, comma separated
-
-sinst_cnt
-    the number of instances having this node as a secondary node
-
-sinst_list
-    the list of instances having this node as a secondary node, comma
-    separated
-
-pip
-    the primary ip of this node (used for cluster communication)
-
-sip
-    the secondary ip of this node (used for data replication in dual-ip
-    clusters, see gnt-cluster(8)
-
-dtotal
-    total disk space in the volume group used for instance disk
-    allocations
-
-dfree
-    available disk space in the volume group
-
-mtotal
-    total memory on the physical node
-
-mnode
-    the memory used by the node itself
-
-mfree
-    memory available for instance allocations
-
-bootid
-    the node bootid value; this is a linux specific feature that
-    assigns a new UUID to the node at each boot and can be use to
-    detect node reboots (by tracking changes in this value)
-
-tags
-    comma-separated list of the node's tags
-
-serial_no
-    the so called 'serial number' of the node; this is a numeric field
-    that is incremented each time the node is modified, and it can be
-    used to detect modifications
-
-ctime
-    the creation time of the node; note that this field contains spaces
-    and as such it's harder to parse
-
-    if this attribute is not present (e.g. when upgrading from older
-    versions), then "N/A" will be shown instead
-
-mtime
-    the last modification time of the node; note that this field
-    contains spaces and as such it's harder to parse
-
-    if this attribute is not present (e.g. when upgrading from older
-    versions), then "N/A" will be shown instead
-
-uuid
-    Show the UUID of the node (generated automatically by Ganeti)
-
-ctotal
-    the toal number of logical processors
-
-cnodes
-    the number of NUMA domains on the node, if the hypervisor can
-    export this information
-
-csockets
-    the number of physical CPU sockets, if the hypervisor can export
-    this information
-
-master_candidate
-    whether the node is a master candidate or not
-
-drained
-    whether the node is drained or not; the cluster still communicates
-    with drained nodes but excludes them from allocation operations
-
-offline
-    whether the node is offline or not; if offline, the cluster does
-    not communicate with offline nodes; useful for nodes that are not
-    reachable in order to avoid delays
-
-role
-    A condensed version of the node flags; this field will output a
-    one-character field, with the following possible values:
-
-    - *M* for the master node
-
-    - *C* for a master candidate
-
-    - *R* for a regular node
-
-    - *D* for a drained node
-
-    - *O* for an offline node
-
-master_capable
-    whether the node can become a master candidate
-
-vm_capable
-    whether the node can host instances
-
-group
-    the name of the node's group, if known (the query is done without
-    locking, so data consistency is not guaranteed)
-
-group.uuid
-    the UUID of the node's group
+The ``-o (--output)`` option takes a comma-separated list of output
+fields. The available fields and their meaning are:
 
+@QUERY_FIELDS_NODE@
 
 If the value of the option starts with the character ``+``, the new
-fields will be added to the default list. This allows to quickly
+fields will be added to the default list. This allows one to quickly
 see the default list plus a few other fields, instead of retyping
 the entire list of fields.
 
-Note that some of this fields are known from the configuration of
-the cluster (e.g. name, pinst, sinst, pip, sip and thus the master
-does not need to contact the node for this data (making the listing
-fast if only fields from this set are selected), whereas the other
-fields are "live" fields and we need to make a query to the cluster
-nodes.
-
-Depending on the virtualization type and implementation details,
-the mtotal, mnode and mfree may have slighly varying meanings. For
-example, some solutions share the node memory with the pool of
-memory used for instances (KVM), whereas others have separate
+Note that some of these fields are known from the configuration of the
+cluster (e.g. ``name``, ``pinst``, ``sinst``, ``pip``, ``sip``) and thus
+the master does not need to contact the node for this data (making the
+listing fast if only fields from this set are selected), whereas the
+other fields are "live" fields and require a query to the cluster nodes.
+
+Depending on the virtualization type and implementation details, the
+``mtotal``, ``mnode`` and ``mfree`` fields may have slighly varying
+meanings. For example, some solutions share the node memory with the
+pool of memory used for instances (KVM), whereas others have separate
 memory for the node and for the instances (Xen).
 
+If exactly one argument is given and it appears to be a query filter
+(see **ganeti(7)**), the query result is filtered accordingly. For
+ambiguous cases (e.g. a single field name as a filter) the ``--filter``
+(``-F``) option forces the argument to be treated as a filter (e.g.
+``gnt-node list -F master_candidate``).
+
 If no node names are given, then all nodes are queried. Otherwise,
 only the given nodes will be listed.
 
@@ -356,11 +255,14 @@ MODIFY
 ~~~~~~
 
 | **modify** [-f] [--submit]
-| [--master-candidate=``yes|no``] [--drained=``yes|no``] [--offline=``yes|no``]
+| [{-C|--master-candidate} ``yes|no``]
+| [{-D|--drained} ``yes|no``] [{-O|--offline} ``yes|no``]
 | [--master-capable=``yes|no``] [--vm-capable=``yes|no``] [--auto-promote]
-| [-s *secondary_ip*]
+| [{-s|--secondary-ip} *secondary_ip*]
 | [--node-parameters *ndparams*]
 | [--node-powered=``yes|no``]
+| [--hypervisor-state *hvstate*]
+| [--disk-state *diskstate*]
 | {*node*}
 
 This command changes the role of the node. Each options takes
@@ -368,8 +270,8 @@ either a literal yes or no, and only one option should be given as
 yes. The meaning of the roles and flags are described in the
 manpage **ganeti**(7).
 
-``--node-powered`` can be used to modify state-of-record if it doesn't reflect
-the reality anymore.
+The option ``--node-powered`` can be used to modify state-of-record if
+it doesn't reflect the reality anymore.
 
 In case a node is demoted from the master candidate role, the
 operation will be refused unless you pass the ``--auto-promote``
@@ -385,9 +287,9 @@ candidate role if is in that role)::
 
     # gnt-node modify --offline=yes node1.example.com
 
-The ``-s`` can be used to change the node's secondary ip. No drbd
-instances can be running on the node, while this operation is
-taking place.
+The ``-s (--secondary-ip)`` option can be used to change the node's
+secondary ip. No drbd instances can be running on the node, while this
+operation is taking place.
 
 Example (setting the node back to online and master candidate)::
 
@@ -425,7 +327,7 @@ VOLUMES
 ~~~~~~~
 
 | **volumes** [--no-headers] [--human-readable]
-| [--separator=*SEPARATOR*] [--output=*FIELDS*]
+| [--separator=*SEPARATOR*] [{-o|--output} *FIELDS*]
 | [*node*...]
 
 Lists all logical volumes and their physical disks from the node(s)
@@ -443,8 +345,8 @@ option is given, then the values are shown in mebibytes to allow
 parsing by scripts. In both cases, the ``--units`` option can be
 used to enforce a given output unit.
 
-The ``-o`` option takes a comma-separated list of output fields.
-The available fields and their meaning are:
+The ``-o (--output)`` option takes a comma-separated list of output
+fields. The available fields and their meaning are:
 
 node
     the node name on which the volume exists
@@ -479,7 +381,7 @@ LIST-STORAGE
 
 | **list-storage** [--no-headers] [--human-readable]
 | [--separator=*SEPARATOR*] [--storage-type=*STORAGE\_TYPE*]
-| [--output=*FIELDS*]
+| [{-o|--output} *FIELDS*]
 | [*node*...]
 
 Lists the available storage units and their details for the given
@@ -500,8 +402,8 @@ used to enforce a given output unit.
 The ``--storage-type`` option can be used to choose a storage unit
 type. Possible choices are lvm-pv, lvm-vg or file.
 
-The ``-o`` option takes a comma-separated list of output fields.
-The available fields and their meaning are:
+The ``-o (--output)`` option takes a comma-separated list of output
+fields. The available fields and their meaning are:
 
 node
     the node name on which the volume exists
@@ -590,7 +492,7 @@ POWERCYCLE
 
 **powercycle** [``--yes``] [``--force``] {*node*}
 
-This commands (tries to) forcefully reboot a node. It is a command
+This command (tries to) forcefully reboot a node. It is a command
 that can be used if the node environemnt is broken, such that the
 admin can no longer login over ssh, but the Ganeti node daemon is
 still working.
@@ -607,8 +509,49 @@ node.
 POWER
 ~~~~~
 
-**power** on|off|cycle|status {*node*}
+**power** [``--force``] [``--ignore-status``] [``--all``]
+[``--power-delay``] on|off|cycle|status [*nodes*]
 
-This commands calls out to out-of-band management to change the power
+This command calls out to out-of-band management to change the power
 state of given node. With ``status`` you get the power status as reported
 by the out-of-band managment script.
+
+Note that this command will only work if the out-of-band functionality
+is configured and enabled on the cluster. If this is not the case,
+please use the **powercycle** command above.
+
+Using ``--force`` you skip the confirmation to do the operation.
+Currently this only has effect on ``off`` and ``cycle``. On those two
+you can *not* operate on the master. However, the command will provide
+you with the command to invoke to operate on the master nerver-mind.
+This is considered harmful and Ganeti does not support the use of it.
+
+Providing ``--ignore-status`` will ignore the offline=N state of a node
+and continue with power off.
+
+``--power-delay`` specifies the time in seconds (factions allowed)
+waited between powering on the next node. This is by default 2 seconds
+but can increased if needed with this option.
+
+*nodes* are optional. If not provided it will call out for every node in
+the cluster. Except for the ``off`` and ``cycle`` command where you've
+to explicit use ``--all`` to select all.
+
+
+HEALTH
+~~~~~~
+
+**health** [*nodes*]
+
+This command calls out to out-of-band management to ask for the health status
+of all or given nodes. The health contains the node name and then the items
+element with their status in a ``item=status`` manner. Where ``item`` is script
+specific and ``status`` can be one of ``OK``, ``WARNING``, ``CRITICAL`` or
+``UNKNOWN``. Items with status ``WARNING`` or ``CRITICAL`` are logged and
+annotated in the command line output.
+
+.. vim: set textwidth=72 :
+.. Local Variables:
+.. mode: rst
+.. fill-column: 72
+.. End: