<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!-- Please adjust the date whenever revising the manpage. -->
- <!ENTITY dhdate "<date>June 20, 2007</date>">
+ <!ENTITY dhdate "<date>December 12, 2007</date>">
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
allowed: see man(7), man(1). -->
<!ENTITY dhsection "<manvolnum>8</manvolnum>">
<title>COMMANDS</title>
<refsect2>
+ <title>ADD-TAGS</title>
+
+ <cmdsynopsis>
+ <command>add-tags</command>
+ <arg choice="opt">--from <replaceable>file</replaceable></arg>
+ <arg choice="req"
+ rep="repeat"><replaceable>tag</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>
+ Add tags to the cluster. If any of the tags contains invalid
+ characters, the entire operation will abort.
+ </para>
+
+ <para>
+ If the <option>--from</option> option is given, the list of
+ tags will be extended with the contents of that file (each
+ line becomes a tag). In this case, there is not need to pass
+ tags on the command line (if you do, both sources will be
+ used). A file name of - will be interpreted as stdin.
+ </para>
+ </refsect2>
+
+ <refsect2>
<title>COMMAND</title>
<cmdsynopsis>
</para>
<para>
+ The command is executed serially on the selected nodes. If the
+ master node is present in the list, the command will be
+ executed last on the master. Regarding the other nodes, the
+ execution order is somewhat alphabetic (it's smarter so that
+ node2.example.com will be earlier than node10.example.com but
+ after node1.example.com).
+ </para>
+
+ <para>
+ So given the node names node1, node2, node3, node10, node11,
+ with node3 being the master, the order will be: node1, node2,
+ node10, node11, node3.
+ </para>
+
+ <para>
The command is constructed by concatenating all other command
line arguments. For example, to list the contents of the
<filename class="directory">/etc</filename> directory on all
<cmdsynopsis>
<command>destroy</command>
+ <arg choice="req">--yes-do-it</arg>
</cmdsynopsis>
<para>
a <command>gnt-cluster init</command> can be done again
afterwards.
</para>
+
+ <para>
+ Since this is a dangerous command, you are required to pass
+ the argument <replaceable>--yes-do-it.</replaceable>
+ </para>
</refsect2>
<refsect2>
<command>init</command>
<arg>-s <replaceable>secondary_ip</replaceable></arg>
<arg>-b <replaceable>bridge</replaceable></arg>
+ <arg>-t <replaceable>hypervisor-type</replaceable></arg>
+ <arg>-g <replaceable>vg-name</replaceable></arg>
+ <arg>--master-netdev <replaceable>vg-name</replaceable></arg>
+ <arg>-m <replaceable>mac-prefix</replaceable></arg>
+ <arg>--no-lvm-storage</arg>
<arg choice="req"><replaceable>clustername</replaceable></arg>
</cmdsynopsis>
Note that the <replaceable>clustername</replaceable> is not
any random name. It has to be resolvable to an IP address
using DNS, and it is best if you give the fully-qualified
- domain name.
+ domain name. Also it is advisable to reserve a per-cluster
+ unique name, and not try to reuse one of the nodes' names.
</para>
<para>
<para>
Note that for Ganeti it doesn't matter if the secondary
-
network is actually a separate physical network, or is done
using tunneling, etc. For performance reasons, it's
recommended to use a separate network, of course.
The <option>-b</option> option specifies the default bridge
for instances.
</para>
+
+ <para>
+ The <option>-t</option> allows to set the hypervisor type of
+ the cluster. Available hypervisor types are: xen-3.0, fake and
+ xen-hvm3.1. The default is the xen-3.0 hypervisor.
+ Note that if you init the cluster with hypervisor-type
+ xen-hvm3.1 you also need to provide the cluster VNC password
+ file <filename>/etc/ganeti/vnc-cluster-password</filename> and
+ the HVM boot ISO image
+ <filename>/srv/ganeti/iso/hvm-install.iso</filename> because
+ instances created by the experimental HVM support require them.
+ </para>
+
+ <para>
+ The <option>-g</option> option will let you specify a volume group
+ different than 'xenvg' for ganeti to use when creating instance disks.
+ This volume group must have the same name on all nodes. Once the
+ cluster is initialized this can be altered by using the
+ <command>modify</command> command. If you don't want to use lvm
+ storage at all use the <option>--no-lvm-storage</option> option.
+ Once the cluster is initialized you can change this setup with the
+ <command>modify</command> command.
+ </para>
+
+ <para>
+ The <option>--master-netdev</option> option is useful for specifying a
+ different interface on which the master will activate its IP address.
+ It's important that all nodes have this interface because you'll need
+ it for a master failover.
+ </para>
+
+ <para>
+ The <option>-m</option> option will let you specify a three byte prefix
+ under which the virtual MAC addresses of your instances will be
+ generated. The prefix must be specified in the format XX:XX:XX and the
+ default is aa:00:00.
+ </para>
+
+ <para>
+ The <option>--no-lvm-storage</option> allows you to initialize the
+ cluster without lvm support. This means that only instances using
+ files as storage backend will be possible to create. Once the cluster
+ is initialized you can change this setup with the
+ <command>modify</command> command.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>LIST-TAGS</title>
+
+ <cmdsynopsis>
+ <command>list-tags</command>
+ </cmdsynopsis>
+
+ <para>List the tags of the cluster.</para>
</refsect2>
<refsect2>
</refsect2>
<refsect2>
+ <title>MODIFY</title>
+
+ <cmdsynopsis>
+ <command>modify</command>
+ <arg choice="opt">-g <replaceable>vg-name</replaceable></arg>
+ <arg choice="opt">--no-lvm-storage</arg>
+ </cmdsynopsis>
+
+ <para>
+ Modify the options for the cluster.
+ </para>
+
+ <para>
+ The <option>-g</option> and <option>--no-lvm-stoarge</option> are
+ described in the <command>init</command> command.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>REMOVE-TAGS</title>
+
+ <cmdsynopsis>
+ <command>remove-tags</command>
+ <arg choice="opt">--from <replaceable>file</replaceable></arg>
+ <arg choice="req"
+ rep="repeat"><replaceable>tag</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>
+ Remove tags from the cluster. If any of the tags are not
+ existing on the cluster, the entire operation will abort.
+ </para>
+
+ <para>
+ If the <option>--from</option> option is given, the list of
+ tags will be extended with the contents of that file (each
+ line becomes a tag). In this case, there is not need to pass
+ tags on the command line (if you do, both sources will be
+ used). A file name of - will be interpreted as stdin.
+ </para>
+ </refsect2>
+
+ <refsect2>
<title>RENAME</title>
<cmdsynopsis>
</refsect2>
<refsect2>
+ <title>SEARCH-TAGS</title>
+
+ <cmdsynopsis>
+ <command>search-tags</command>
+ <arg choice="req"><replaceable>pattern</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>
+ Searches the tags on all objects in the cluster (the cluster
+ itself, the nodes and the instances) for a given pattern. The
+ pattern is interpreted as a regular expression and a search
+ will be done on it (i.e. the given pattern is not anchored to
+ the beggining of the string; if you want that, prefix the
+ pattern with <literal>^</literal>).
+ </para>
+
+ <para>
+ If no tags are matching the pattern, the exit code of the
+ command will be one. If there is at least one match, the exit
+ code will be zero. Each match is listed on one line, the
+ object and the tag separated by a space. The cluster will be
+ listed as <filename>/cluster</filename>, a node will be listed
+ as
+ <filename>/nodes/<replaceable>name</replaceable></filename>,
+ and an instance as
+ <filename>/instances/<replaceable>name</replaceable></filename>.
+ Example:
+ </para>
+<screen>
+# gnt-cluster search time
+/cluster ctime:2007-09-01
+/nodes/node1.example.com mtime:2007-10-04
+</screen>
+ </refsect2>
+
+ <refsect2>
<title>VERIFY</title>
<cmdsynopsis>
<command>verify</command>
+ <arg choice="opt">--no-nplus1-mem</arg>
</cmdsynopsis>
<para>
respect to running instances, and incurs no downtime of the
instances.
</para>
+
+ <para>
+ If the <option>--no-nplus1-mem</option> option is given, ganeti won't
+ check whether if it loses a node it can restart all the instances on
+ their secondaries (and report an error otherwise).
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>VERIFY-DISKS</title>
+
+ <cmdsynopsis>
+ <command>verify-disks</command>
+ </cmdsynopsis>
+
+ <para>
+ The command checks which instances have degraded DRBD disks
+ and activates the disks of those instances.
+ </para>
+
+ <para>
+ This command is run from the <command>ganeti-watcher</command>
+ tool, which also has a different, complementary algorithm for
+ doing this check. Together, these two should ensure that DRBD
+ disks are kept consistent.
+ </para>
</refsect2>
<refsect2>