Statistics
| Branch: | Tag: | Revision:

root / doc / admin.sgml @ 973d7867

History | View | Annotate | Download (15.2 kB)

1 6bf0c9bb Guido Trotter
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
2 6bf0c9bb Guido Trotter
]>
3 6bf0c9bb Guido Trotter
  <article class="specification">
4 6bf0c9bb Guido Trotter
  <articleinfo>
5 6bf0c9bb Guido Trotter
    <title>Ganeti administrator's guide</title>
6 6bf0c9bb Guido Trotter
  </articleinfo>
7 6bf0c9bb Guido Trotter
  <para>Documents Ganeti version 1.2</para>
8 6bf0c9bb Guido Trotter
  <sect1>
9 6bf0c9bb Guido Trotter
    <title>Introduction</title>
10 6bf0c9bb Guido Trotter
11 6bf0c9bb Guido Trotter
    <para>Ganeti is a virtualization cluster management software. You are
12 6bf0c9bb Guido Trotter
    expected to be a system administrator familiar with your Linux distribution
13 6bf0c9bb Guido Trotter
    and the Xen virtualization environment before using it.
14 6bf0c9bb Guido Trotter
    </para>
15 6bf0c9bb Guido Trotter
16 6bf0c9bb Guido Trotter
    <para>The various components of Ganeti all have man pages and interactive
17 6bf0c9bb Guido Trotter
    help. This manual though will help you getting familiar with the system by
18 6bf0c9bb Guido Trotter
    explaining the most common operations, grouped by related use.
19 6bf0c9bb Guido Trotter
    </para>
20 6bf0c9bb Guido Trotter
21 6bf0c9bb Guido Trotter
    <para>After a terminology glossary and a section on the prerequisites
22 6bf0c9bb Guido Trotter
    needed to use this manual, the rest of this document is divided in three
23 6bf0c9bb Guido Trotter
    main sections, which group different features of Ganeti:
24 6bf0c9bb Guido Trotter
      <itemizedlist>
25 6bf0c9bb Guido Trotter
        <listitem>
26 6bf0c9bb Guido Trotter
          <simpara>Instance Management</simpara>
27 6bf0c9bb Guido Trotter
        </listitem>
28 6bf0c9bb Guido Trotter
        <listitem>
29 6bf0c9bb Guido Trotter
          <simpara>High Availability Features</simpara>
30 6bf0c9bb Guido Trotter
        </listitem>
31 6bf0c9bb Guido Trotter
        <listitem>
32 6bf0c9bb Guido Trotter
          <simpara>Debugging Features</simpara>
33 6bf0c9bb Guido Trotter
        </listitem>
34 6bf0c9bb Guido Trotter
      </itemizedlist>
35 6bf0c9bb Guido Trotter
    </para>
36 6bf0c9bb Guido Trotter
37 6bf0c9bb Guido Trotter
    <sect2>
38 ec377077 Iustin Pop
      <title>Ganeti terminology</title>
39 6bf0c9bb Guido Trotter
40 e3c826ec Michael Hanselmann
      <para>
41 e3c826ec Michael Hanselmann
        This section provides a small introduction to Ganeti terminology, which
42 e3c826ec Michael Hanselmann
        might be useful to read the rest of the document.
43 6bf0c9bb Guido Trotter
44 e3c826ec Michael Hanselmann
        <glosslist>
45 ec377077 Iustin Pop
          <glossentry>
46 ec377077 Iustin Pop
            <glossterm>Cluster</glossterm>
47 ec377077 Iustin Pop
            <glossdef>
48 ec377077 Iustin Pop
              <simpara>
49 ec377077 Iustin Pop
                A set of machines (nodes) that cooperate to offer a
50 ec377077 Iustin Pop
                coherent highly available virtualization service.
51 ec377077 Iustin Pop
              </simpara>
52 ec377077 Iustin Pop
            </glossdef>
53 ec377077 Iustin Pop
          </glossentry>
54 ec377077 Iustin Pop
          <glossentry>
55 ec377077 Iustin Pop
            <glossterm>Node</glossterm>
56 ec377077 Iustin Pop
            <glossdef>
57 ec377077 Iustin Pop
              <simpara>
58 ec377077 Iustin Pop
                A physical machine which is member of a cluster.
59 ec377077 Iustin Pop
                Nodes are the basic cluster infrastructure, and are
60 ec377077 Iustin Pop
                not fault tolerant.
61 ec377077 Iustin Pop
              </simpara>
62 ec377077 Iustin Pop
            </glossdef>
63 ec377077 Iustin Pop
          </glossentry>
64 ec377077 Iustin Pop
          <glossentry>
65 ec377077 Iustin Pop
            <glossterm>Master node</glossterm>
66 ec377077 Iustin Pop
            <glossdef>
67 ec377077 Iustin Pop
              <simpara>
68 ec377077 Iustin Pop
                The node which controls the Cluster, from which all
69 ec377077 Iustin Pop
                Ganeti commands must be given.
70 ec377077 Iustin Pop
              </simpara>
71 ec377077 Iustin Pop
            </glossdef>
72 ec377077 Iustin Pop
          </glossentry>
73 ec377077 Iustin Pop
          <glossentry>
74 ec377077 Iustin Pop
            <glossterm>Instance</glossterm>
75 ec377077 Iustin Pop
            <glossdef>
76 ec377077 Iustin Pop
              <simpara>
77 ec377077 Iustin Pop
                A virtual machine which runs on a cluster. It can be a
78 ec377077 Iustin Pop
                fault tolerant highly available entity.
79 ec377077 Iustin Pop
              </simpara>
80 ec377077 Iustin Pop
            </glossdef>
81 ec377077 Iustin Pop
          </glossentry>
82 ec377077 Iustin Pop
          <glossentry>
83 ec377077 Iustin Pop
            <glossterm>Pool</glossterm>
84 ec377077 Iustin Pop
            <glossdef>
85 ec377077 Iustin Pop
              <simpara>
86 ec377077 Iustin Pop
                A pool is a set of clusters sharing the same network.
87 ec377077 Iustin Pop
              </simpara>
88 ec377077 Iustin Pop
            </glossdef>
89 ec377077 Iustin Pop
          </glossentry>
90 ec377077 Iustin Pop
          <glossentry>
91 ec377077 Iustin Pop
            <glossterm>Meta-Cluster</glossterm>
92 ec377077 Iustin Pop
            <glossdef>
93 ec377077 Iustin Pop
              <simpara>
94 ec377077 Iustin Pop
                Anything that concerns more than one cluster.
95 ec377077 Iustin Pop
              </simpara>
96 ec377077 Iustin Pop
            </glossdef>
97 ec377077 Iustin Pop
          </glossentry>
98 e3c826ec Michael Hanselmann
        </glosslist>
99 6bf0c9bb Guido Trotter
      </para>
100 6bf0c9bb Guido Trotter
    </sect2>
101 6bf0c9bb Guido Trotter
102 6bf0c9bb Guido Trotter
    <sect2>
103 6bf0c9bb Guido Trotter
      <title>Prerequisites</title>
104 6bf0c9bb Guido Trotter
105 ec377077 Iustin Pop
      <para>
106 e3c826ec Michael Hanselmann
        You need to have your Ganeti cluster installed and configured before
107 e3c826ec Michael Hanselmann
        you try any of the commands in this document. Please follow the
108 e3c826ec Michael Hanselmann
        <emphasis>Ganeti installation tutorial</emphasis> for instructions on
109 e3c826ec Michael Hanselmann
        how to do that.
110 6bf0c9bb Guido Trotter
      </para>
111 6bf0c9bb Guido Trotter
    </sect2>
112 6bf0c9bb Guido Trotter
113 6bf0c9bb Guido Trotter
  </sect1>
114 6bf0c9bb Guido Trotter
115 6bf0c9bb Guido Trotter
  <sect1>
116 6bf0c9bb Guido Trotter
    <title>Managing Instances</title>
117 6bf0c9bb Guido Trotter
118 6bf0c9bb Guido Trotter
    <sect2>
119 6bf0c9bb Guido Trotter
      <title>Adding/Removing an instance</title>
120 6bf0c9bb Guido Trotter
121 ec377077 Iustin Pop
      <para>
122 e3c826ec Michael Hanselmann
        Adding a new virtual instance to your Ganeti cluster is really easy.
123 e3c826ec Michael Hanselmann
        The command is:
124 ec377077 Iustin Pop
125 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance add -n <replaceable>TARGET_NODE</replaceable> -o <replaceable>OS_TYPE</replaceable> -t <replaceable>DISK_TEMPLATE</replaceable> <replaceable>INSTANCE_NAME</replaceable></synopsis>
126 ec377077 Iustin Pop
127 ec377077 Iustin Pop
        The instance name must be resolvable (e.g. exist in DNS) and
128 ec377077 Iustin Pop
        of course map to an address in the same subnet as the cluster
129 ec377077 Iustin Pop
        itself. Options you can give to this command include:
130 ec377077 Iustin Pop
131 6bf0c9bb Guido Trotter
      <itemizedlist>
132 6bf0c9bb Guido Trotter
        <listitem>
133 ec377077 Iustin Pop
          <simpara>The disk size (<option>-s</option>)</simpara>
134 6bf0c9bb Guido Trotter
        </listitem>
135 6bf0c9bb Guido Trotter
        <listitem>
136 ec377077 Iustin Pop
          <simpara>The swap size (<option>--swap-size</option>)</simpara>
137 6bf0c9bb Guido Trotter
        </listitem>
138 6bf0c9bb Guido Trotter
        <listitem>
139 ec377077 Iustin Pop
          <simpara>The memory size (<option>-m</option>)</simpara>
140 6bf0c9bb Guido Trotter
        </listitem>
141 6bf0c9bb Guido Trotter
        <listitem>
142 ec377077 Iustin Pop
          <simpara>The number of virtual CPUs (<option>-p</option>)</simpara>
143 6bf0c9bb Guido Trotter
        </listitem>
144 6bf0c9bb Guido Trotter
        <listitem>
145 e3c826ec Michael Hanselmann
          <simpara>The instance ip address (<option>-i</option>) (use the value
146 e3c826ec Michael Hanselmann
            <literal>auto</literal> to make Ganeti record the address from
147 e3c826ec Michael Hanselmann
            dns)</simpara>
148 6bf0c9bb Guido Trotter
        </listitem>
149 6bf0c9bb Guido Trotter
        <listitem>
150 e3c826ec Michael Hanselmann
          <simpara>The bridge to connect the instance to (<option>-b</option>),
151 e3c826ec Michael Hanselmann
            if you don't want to use the default one</simpara>
152 6bf0c9bb Guido Trotter
        </listitem>
153 6bf0c9bb Guido Trotter
      </itemizedlist>
154 53b78ba4 Guido Trotter
      </para>
155 53b78ba4 Guido Trotter
156 ec377077 Iustin Pop
      <para>There are four types of disk template you can choose from:</para>
157 53b78ba4 Guido Trotter
158 53b78ba4 Guido Trotter
      <variablelist>
159 53b78ba4 Guido Trotter
        <varlistentry>
160 53b78ba4 Guido Trotter
          <term>diskless</term>
161 e3c826ec Michael Hanselmann
          <listitem>
162 e3c826ec Michael Hanselmann
            <para>The instance has no disks. Only used for special purpouse
163 e3c826ec Michael Hanselmann
              operating systems or for testing.</para>
164 e3c826ec Michael Hanselmann
          </listitem>
165 53b78ba4 Guido Trotter
        </varlistentry>
166 53b78ba4 Guido Trotter
167 53b78ba4 Guido Trotter
        <varlistentry>
168 53b78ba4 Guido Trotter
          <term>plain</term>
169 e3c826ec Michael Hanselmann
          <listitem>
170 e3c826ec Michael Hanselmann
            <para>The instance will use LVM devices as backend for its disks.
171 e3c826ec Michael Hanselmann
              No redundancy is provided.</para>
172 e3c826ec Michael Hanselmann
          </listitem>
173 53b78ba4 Guido Trotter
        </varlistentry>
174 53b78ba4 Guido Trotter
175 53b78ba4 Guido Trotter
        <varlistentry>
176 53b78ba4 Guido Trotter
          <term>local_raid1</term>
177 e3c826ec Michael Hanselmann
          <listitem>
178 e3c826ec Michael Hanselmann
            <para>A local mirror is set between LVM devices to back the
179 e3c826ec Michael Hanselmann
              instance. This provides some redundancy for the instance's
180 e3c826ec Michael Hanselmann
              data.</para>
181 e3c826ec Michael Hanselmann
          </listitem>
182 53b78ba4 Guido Trotter
        </varlistentry>
183 53b78ba4 Guido Trotter
184 53b78ba4 Guido Trotter
        <varlistentry>
185 53b78ba4 Guido Trotter
          <term>remote_raid1</term>
186 e3c826ec Michael Hanselmann
          <listitem>
187 e3c826ec Michael Hanselmann
            <simpara><emphasis role="strong">Note:</emphasis> This is only
188 6c4811dc Iustin Pop
              valid for multi-node clusters using drbd 0.7.</simpara>
189 ec377077 Iustin Pop
            <simpara>
190 4677a909 Michael Hanselmann
              A mirror is set between the local node and a remote one, which
191 4677a909 Michael Hanselmann
              must be specified with the second value of the --node option. Use
192 4677a909 Michael Hanselmann
              this option to obtain a highly available instance that can be
193 4677a909 Michael Hanselmann
              failed over to a remote node should the primary one fail.
194 e3c826ec Michael Hanselmann
            </simpara>
195 e3c826ec Michael Hanselmann
          </listitem>
196 53b78ba4 Guido Trotter
        </varlistentry>
197 53b78ba4 Guido Trotter
198 6c4811dc Iustin Pop
        <varlistentry>
199 6c4811dc Iustin Pop
          <term>drbd</term>
200 6c4811dc Iustin Pop
          <listitem>
201 6c4811dc Iustin Pop
            <simpara><emphasis role="strong">Note:</emphasis> This is only
202 6c4811dc Iustin Pop
              valid for multi-node clusters using drbd 8.0.</simpara>
203 6c4811dc Iustin Pop
            <simpara>
204 6c4811dc Iustin Pop
              This is similar to the
205 6c4811dc Iustin Pop
              <replaceable>remote_raid1</replaceable> option, but uses
206 6c4811dc Iustin Pop
              new features in drbd 8 to simplify the device
207 6c4811dc Iustin Pop
              stack. From a user's point of view, this will improve
208 6c4811dc Iustin Pop
              the speed of the <command>replace-disks</command>
209 6c4811dc Iustin Pop
              command and (in future versions) provide more
210 6c4811dc Iustin Pop
              functionality.
211 6c4811dc Iustin Pop
            </simpara>
212 6c4811dc Iustin Pop
          </listitem>
213 6c4811dc Iustin Pop
        </varlistentry>
214 6c4811dc Iustin Pop
215 53b78ba4 Guido Trotter
      </variablelist>
216 53b78ba4 Guido Trotter
217 ec377077 Iustin Pop
      <para>
218 e3c826ec Michael Hanselmann
        For example if you want to create an highly available instance use the
219 6c4811dc Iustin Pop
        remote_raid1 or drbd disk templates:
220 4677a909 Michael Hanselmann
        <synopsis>gnt-instance add -n <replaceable>TARGET_NODE</replaceable><optional>:<replaceable>SECONDARY_NODE</replaceable></optional> -o <replaceable>OS_TYPE</replaceable> -t remote_raid1 \
221 4677a909 Michael Hanselmann
  <replaceable>INSTANCE_NAME</replaceable></synopsis>
222 ec377077 Iustin Pop
223 ec377077 Iustin Pop
      <para>
224 e3c826ec Michael Hanselmann
        To know which operating systems your cluster supports you can use
225 ec377077 Iustin Pop
        <synopsis>gnt-os list</synopsis>
226 6bf0c9bb Guido Trotter
      </para>
227 6bf0c9bb Guido Trotter
228 6bf0c9bb Guido Trotter
      <para>
229 e3c826ec Michael Hanselmann
        Removing an instance is even easier than creating one. This operation
230 e3c826ec Michael Hanselmann
        is non-reversible and destroys all the contents of your instance. Use
231 e3c826ec Michael Hanselmann
        with care:
232 ec377077 Iustin Pop
233 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance remove <replaceable>INSTANCE_NAME</replaceable></synopsis>
234 6bf0c9bb Guido Trotter
      </para>
235 6bf0c9bb Guido Trotter
    </sect2>
236 6bf0c9bb Guido Trotter
237 6bf0c9bb Guido Trotter
    <sect2>
238 6bf0c9bb Guido Trotter
      <title>Starting/Stopping an instance</title>
239 6bf0c9bb Guido Trotter
240 ec377077 Iustin Pop
      <para>
241 e3c826ec Michael Hanselmann
        Instances are automatically started at instance creation time. To
242 e3c826ec Michael Hanselmann
        manually start one which is currently stopped you can run:
243 ec377077 Iustin Pop
244 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance startup <replaceable>INSTANCE_NAME</replaceable></synopsis>
245 ec377077 Iustin Pop
246 ec377077 Iustin Pop
        While the command to stop one is:
247 ec377077 Iustin Pop
248 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance shutdown <replaceable>INSTANCE_NAME</replaceable></synopsis>
249 ec377077 Iustin Pop
250 e3c826ec Michael Hanselmann
        The command to see all the instances configured and their status is:
251 ec377077 Iustin Pop
252 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance list</synopsis>
253 ec377077 Iustin Pop
254 6bf0c9bb Guido Trotter
      </para>
255 53b78ba4 Guido Trotter
256 ec377077 Iustin Pop
      <para>
257 ec377077 Iustin Pop
        Do not use the xen commands to stop instances. If you run for
258 ec377077 Iustin Pop
        example xm shutdown or xm destroy on an instance Ganeti will
259 ec377077 Iustin Pop
        automatically restart it (via the
260 ec377077 Iustin Pop
        <citerefentry><refentrytitle>ganeti-watcher</refentrytitle>
261 ec377077 Iustin Pop
        <manvolnum>8</manvolnum></citerefentry>)
262 53b78ba4 Guido Trotter
      </para>
263 53b78ba4 Guido Trotter
264 6bf0c9bb Guido Trotter
    </sect2>
265 6bf0c9bb Guido Trotter
266 6bf0c9bb Guido Trotter
    <sect2>
267 6bf0c9bb Guido Trotter
      <title>Exporting/Importing an instance</title>
268 6bf0c9bb Guido Trotter
269 ec377077 Iustin Pop
      <para>
270 ec377077 Iustin Pop
        You can create a snapshot of an instance disk and Ganeti
271 ec377077 Iustin Pop
        configuration, which then you can backup, or import into
272 e3c826ec Michael Hanselmann
        another cluster. The way to export an instance is:
273 ec377077 Iustin Pop
274 e3c826ec Michael Hanselmann
        <synopsis>gnt-backup export -n <replaceable>TARGET_NODE</replaceable> <replaceable>INSTANCE_NAME</replaceable></synopsis>
275 ec377077 Iustin Pop
276 ec377077 Iustin Pop
        The target node can be any node in the cluster with enough
277 ec377077 Iustin Pop
        space under <filename class="directory">/srv/ganeti</filename>
278 ec377077 Iustin Pop
        to hold the instance image. Use the
279 ec377077 Iustin Pop
        <option>--noshutdown</option> option to snapshot an instance
280 ec377077 Iustin Pop
        without rebooting it. Any previous snapshot of the same
281 ec377077 Iustin Pop
        instance existing cluster-wide under <filename
282 ec377077 Iustin Pop
        class="directory">/srv/ganeti</filename> will be removed by
283 ec377077 Iustin Pop
        this operation: if you want to keep them move them out of the
284 ec377077 Iustin Pop
        Ganeti exports directory.
285 6bf0c9bb Guido Trotter
      </para>
286 6bf0c9bb Guido Trotter
287 ec377077 Iustin Pop
      <para>
288 e3c826ec Michael Hanselmann
        Importing an instance is similar to creating a new one. The command is:
289 ec377077 Iustin Pop
290 e3c826ec Michael Hanselmann
        <synopsis>gnt-backup import -n <replaceable>TARGET_NODE</replaceable> -t <replaceable>DISK_TEMPLATE</replaceable> --src-node=<replaceable>NODE</replaceable> --src-dir=DIR INSTANCE_NAME</synopsis>
291 ec377077 Iustin Pop
292 ec377077 Iustin Pop
        Most of the options available for the command
293 ec377077 Iustin Pop
        <emphasis>gnt-instance add</emphasis> are supported here too.
294 ec377077 Iustin Pop
295 6bf0c9bb Guido Trotter
      </para>
296 6bf0c9bb Guido Trotter
    </sect2>
297 6bf0c9bb Guido Trotter
298 6bf0c9bb Guido Trotter
  </sect1>
299 6bf0c9bb Guido Trotter
300 6bf0c9bb Guido Trotter
301 6bf0c9bb Guido Trotter
  <sect1>
302 6bf0c9bb Guido Trotter
    <title>High availability features</title>
303 6bf0c9bb Guido Trotter
304 ec377077 Iustin Pop
    <note>
305 ec377077 Iustin Pop
      <simpara>This section only applies to multi-node clusters.</simpara>
306 ec377077 Iustin Pop
    </note>
307 ec377077 Iustin Pop
308 6bf0c9bb Guido Trotter
    <sect2>
309 6bf0c9bb Guido Trotter
      <title>Failing over an instance</title>
310 6bf0c9bb Guido Trotter
311 ec377077 Iustin Pop
      <para>
312 ec377077 Iustin Pop
        If an instance is built in highly available mode you can at
313 ec377077 Iustin Pop
        any time fail it over to its secondary node, even if the
314 ec377077 Iustin Pop
        primary has somehow failed and it's not up anymore. Doing it
315 ec377077 Iustin Pop
        is really easy, on the master node you can just run:
316 ec377077 Iustin Pop
317 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance failover <replaceable>INSTANCE_NAME</replaceable></synopsis>
318 ec377077 Iustin Pop
319 ec377077 Iustin Pop
        That's it. After the command completes the secondary node is
320 ec377077 Iustin Pop
        now the primary, and vice versa.
321 6bf0c9bb Guido Trotter
      </para>
322 6bf0c9bb Guido Trotter
    </sect2>
323 ec377077 Iustin Pop
324 6bf0c9bb Guido Trotter
    <sect2>
325 6bf0c9bb Guido Trotter
      <title>Replacing an instance disks</title>
326 6bf0c9bb Guido Trotter
327 ec377077 Iustin Pop
      <para>
328 ec377077 Iustin Pop
        So what if instead the secondary node for an instance has
329 ec377077 Iustin Pop
        failed, or you plan to remove a node from your cluster, and
330 ec377077 Iustin Pop
        you failed over all its instances, but it's still secondary
331 ec377077 Iustin Pop
        for some? The solution here is to replace the instance disks,
332 6c4811dc Iustin Pop
        changing the secondary node. This is done in two ways, depending on the disk template type. For <literal>remote_raid1</literal>:
333 6c4811dc Iustin Pop
334 6c4811dc Iustin Pop
        <synopsis>gnt-instance replace-disks <option>-n <replaceable>NEW_SECONDARY</replaceable></option> <replaceable>INSTANCE_NAME</replaceable></synopsis>
335 ec377077 Iustin Pop
336 6c4811dc Iustin Pop
        and for <literal>drbd</literal>:
337 6c4811dc Iustin Pop
        <synopsis>gnt-instance replace-disks <option>-s</option> <option>-n <replaceable>NEW_SECONDARY</replaceable></option> <replaceable>INSTANCE_NAME</replaceable></synopsis>
338 ec377077 Iustin Pop
339 ec377077 Iustin Pop
        This process is a bit longer, but involves no instance
340 ec377077 Iustin Pop
        downtime, and at the end of it the instance has changed its
341 ec377077 Iustin Pop
        secondary node, to which it can if necessary be failed over.
342 6bf0c9bb Guido Trotter
      </para>
343 6bf0c9bb Guido Trotter
    </sect2>
344 6bf0c9bb Guido Trotter
    <sect2>
345 6bf0c9bb Guido Trotter
      <title>Failing over the master node</title>
346 6bf0c9bb Guido Trotter
347 ec377077 Iustin Pop
      <para>
348 ec377077 Iustin Pop
        This is all good as long as the Ganeti Master Node is
349 ec377077 Iustin Pop
        up. Should it go down, or should you wish to decommission it,
350 ec377077 Iustin Pop
        just run on any other node the command:
351 ec377077 Iustin Pop
352 e3c826ec Michael Hanselmann
        <synopsis>gnt-cluster masterfailover</synopsis>
353 ec377077 Iustin Pop
354 ec377077 Iustin Pop
        and the node you ran it on is now the new master.
355 6bf0c9bb Guido Trotter
      </para>
356 6bf0c9bb Guido Trotter
    </sect2>
357 6bf0c9bb Guido Trotter
    <sect2>
358 6bf0c9bb Guido Trotter
      <title>Adding/Removing nodes</title>
359 6bf0c9bb Guido Trotter
360 ec377077 Iustin Pop
      <para>
361 ec377077 Iustin Pop
        And of course, now that you know how to move instances around,
362 ec377077 Iustin Pop
        it's easy to free up a node, and then you can remove it from
363 ec377077 Iustin Pop
        the cluster:
364 ec377077 Iustin Pop
365 e3c826ec Michael Hanselmann
        <synopsis>gnt-node remove <replaceable>NODE_NAME</replaceable></synopsis>
366 ec377077 Iustin Pop
367 ec377077 Iustin Pop
        and maybe add a new one:
368 ec377077 Iustin Pop
369 e3c826ec Michael Hanselmann
        <synopsis>gnt-node add <optional><option>--secondary-ip=<replaceable>ADDRESS</replaceable></option></optional> <replaceable>NODE_NAME</replaceable>
370 ec377077 Iustin Pop
371 ec377077 Iustin Pop
      </synopsis>
372 6bf0c9bb Guido Trotter
      </para>
373 6bf0c9bb Guido Trotter
    </sect2>
374 6bf0c9bb Guido Trotter
  </sect1>
375 6bf0c9bb Guido Trotter
376 6bf0c9bb Guido Trotter
  <sect1>
377 6bf0c9bb Guido Trotter
    <title>Debugging Features</title>
378 6bf0c9bb Guido Trotter
379 ec377077 Iustin Pop
    <para>
380 ec377077 Iustin Pop
      At some point you might need to do some debugging operations on
381 ec377077 Iustin Pop
      your cluster or on your instances. This section will help you
382 ec377077 Iustin Pop
      with the most used debugging functionalities.
383 6bf0c9bb Guido Trotter
    </para>
384 6bf0c9bb Guido Trotter
385 6bf0c9bb Guido Trotter
    <sect2>
386 6bf0c9bb Guido Trotter
      <title>Accessing an instance's disks</title>
387 6bf0c9bb Guido Trotter
388 ec377077 Iustin Pop
      <para>
389 ec377077 Iustin Pop
        From an instance's primary node you have access to its
390 ec377077 Iustin Pop
        disks. Never ever mount the underlying logical volume manually
391 ec377077 Iustin Pop
        on a fault tolerant instance, or you risk breaking
392 ec377077 Iustin Pop
        replication. The correct way to access them is to run the
393 ec377077 Iustin Pop
        command:
394 ec377077 Iustin Pop
395 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance activate-disks <replaceable>INSTANCE_NAME</replaceable></synopsis>
396 ec377077 Iustin Pop
397 ec377077 Iustin Pop
        And then access the device that gets created.  After you've
398 ec377077 Iustin Pop
        finished you can deactivate them with the deactivate-disks
399 ec377077 Iustin Pop
        command, which works in the same way.
400 6bf0c9bb Guido Trotter
      </para>
401 6bf0c9bb Guido Trotter
    </sect2>
402 6bf0c9bb Guido Trotter
403 6bf0c9bb Guido Trotter
    <sect2>
404 6bf0c9bb Guido Trotter
      <title>Accessing an instance's console</title>
405 6bf0c9bb Guido Trotter
406 ec377077 Iustin Pop
      <para>
407 ec377077 Iustin Pop
        The command to access a running instance's console is:
408 ec377077 Iustin Pop
409 e3c826ec Michael Hanselmann
        <synopsis>gnt-instance console <replaceable>INSTANCE_NAME</replaceable></synopsis>
410 ec377077 Iustin Pop
411 ec377077 Iustin Pop
        Use the console normally and then type
412 ec377077 Iustin Pop
        <userinput>^]</userinput> when done, to exit.
413 6bf0c9bb Guido Trotter
      </para>
414 6bf0c9bb Guido Trotter
    </sect2>
415 6bf0c9bb Guido Trotter
416 6bf0c9bb Guido Trotter
    <sect2>
417 6c4811dc Iustin Pop
      <title>Instance OS definitions Debugging</title>
418 6bf0c9bb Guido Trotter
419 ec377077 Iustin Pop
      <para>
420 ec377077 Iustin Pop
        Should you have any problems with operating systems support
421 ec377077 Iustin Pop
        the command to ran to see a complete status for all your nodes
422 ec377077 Iustin Pop
        is:
423 ec377077 Iustin Pop
424 e3c826ec Michael Hanselmann
        <synopsis>gnt-os diagnose</synopsis>
425 ec377077 Iustin Pop
426 6bf0c9bb Guido Trotter
      </para>
427 6bf0c9bb Guido Trotter
428 6bf0c9bb Guido Trotter
    </sect2>
429 6bf0c9bb Guido Trotter
430 6bf0c9bb Guido Trotter
    <sect2>
431 6bf0c9bb Guido Trotter
      <title>Cluster-wide debugging</title>
432 6bf0c9bb Guido Trotter
433 ec377077 Iustin Pop
      <para>
434 ec377077 Iustin Pop
        The gnt-cluster command offers several options to run tests or
435 ec377077 Iustin Pop
        execute cluster-wide operations. For example:
436 ec377077 Iustin Pop
437 ec377077 Iustin Pop
      <screen>
438 6bf0c9bb Guido Trotter
gnt-cluster command
439 6bf0c9bb Guido Trotter
gnt-cluster copyfile
440 6bf0c9bb Guido Trotter
gnt-cluster verify
441 6bf0c9bb Guido Trotter
gnt-cluster getmaster
442 6bf0c9bb Guido Trotter
gnt-cluster version
443 ec377077 Iustin Pop
      </screen>
444 ec377077 Iustin Pop
445 ec377077 Iustin Pop
        See the man page <citerefentry>
446 ec377077 Iustin Pop
        <refentrytitle>gnt-cluster</refentrytitle>
447 ec377077 Iustin Pop
        <manvolnum>8</manvolnum> </citerefentry> to know more about
448 ec377077 Iustin Pop
        their usage.
449 6bf0c9bb Guido Trotter
      </para>
450 6bf0c9bb Guido Trotter
    </sect2>
451 6bf0c9bb Guido Trotter
452 6bf0c9bb Guido Trotter
  </sect1>
453 6bf0c9bb Guido Trotter
454 6bf0c9bb Guido Trotter
  </article>