Statistics
| Branch: | Tag: | Revision:

root / man / gnt-node.sgml @ 9b603bff

History | View | Annotate | Download (15.5 kB)

1
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2

    
3
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4
  <!-- Please adjust the date whenever revising the manpage. -->
5
  <!ENTITY dhdate      "<date>June 20, 2007</date>">
6
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7
       allowed: see man(7), man(1). -->
8
  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
9
  <!ENTITY dhucpackage "<refentrytitle>gnt-node</refentrytitle>">
10
  <!ENTITY dhpackage   "gnt-node">
11

    
12
  <!ENTITY debian      "<productname>Debian</productname>">
13
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15
  <!ENTITY footer SYSTEM "footer.sgml">
16
]>
17

    
18
<refentry>
19
  <refentryinfo>
20
    <copyright>
21
      <year>2006</year>
22
      <year>2007</year>
23
      <holder>Google Inc.</holder>
24
    </copyright>
25
    &dhdate;
26
  </refentryinfo>
27
  <refmeta>
28
    &dhucpackage;
29

    
30
    &dhsection;
31
    <refmiscinfo>ganeti 1.2</refmiscinfo>
32
  </refmeta>
33
  <refnamediv>
34
    <refname>&dhpackage;</refname>
35

    
36
    <refpurpose>node administration</refpurpose>
37
  </refnamediv>
38
  <refsynopsisdiv>
39
    <cmdsynopsis>
40
      <command>&dhpackage; </command>
41

    
42
      <arg choice="req">command</arg>
43
      <arg>arguments...</arg>
44
    </cmdsynopsis>
45
  </refsynopsisdiv>
46
  <refsect1>
47
    <title>DESCRIPTION</title>
48

    
49
    <para>
50
      The <command>&dhpackage;</command> is used for managing the
51
      (physical) nodes in the ganeti system.
52
    </para>
53

    
54
  </refsect1>
55
  <refsect1>
56
    <title>COMMANDS</title>
57

    
58
    <refsect2>
59
      <title>ADD</title>
60

    
61
      <cmdsynopsis>
62
        <command>add</command>
63
        <arg>-s <replaceable>secondary_ip</replaceable></arg>
64
        <arg choice="req"><replaceable>nodename</replaceable></arg>
65
      </cmdsynopsis>
66

    
67
      <para>
68
        Adds the given node to the cluster.
69
      </para>
70

    
71
      <para>
72
        This command is used to join a new node to the cluster. You
73
        will have to provide the password for root of the node to be
74
        able to add the node in the cluster. The command needs to be
75
        run on the ganeti master.
76
      </para>
77

    
78
      <para>
79
        Note that the command is potentially destructive, as it will
80
        forcibly join the specified host the cluster, not paying
81
        attention to its current status (it could be already in a
82
        cluster, etc.)
83
      </para>
84

    
85
      <para>
86
        The <option>-s</option> is used in dual-home clusters and
87
        specifies the new node's IP in the secondary network. See the
88
        discussion in <citerefentry>
89
        <refentrytitle>gnt-cluster</refentrytitle>
90
        <manvolnum>8</manvolnum> </citerefentry> for more
91
        informations.
92
      </para>
93

    
94
      <para>
95
        Example:
96
        <screen>
97
# gnt-node add node5.example.com
98
# gnt-node add -s 192.168.44.5 node5.example.com
99
        </screen>
100
      </para>
101
    </refsect2>
102

    
103
    <refsect2>
104
      <title>ADD-TAGS</title>
105

    
106
      <cmdsynopsis>
107
        <command>add-tags</command>
108
        <arg choice="opt">--from <replaceable>file</replaceable></arg>
109
        <arg choice="req"><replaceable>nodename</replaceable></arg>
110
        <arg choice="req"
111
        rep="repeat"><replaceable>tag</replaceable></arg>
112
      </cmdsynopsis>
113

    
114
      <para>
115
        Add tags to the given node. If any of the tags contains
116
        invalid characters, the entire operation will abort.
117
      </para>
118

    
119
      <para>
120
        If the <option>--from</option> option is given, the list of
121
        tags will be extended with the contents of that file (each
122
        line becomes a tag). In this case, there is not need to pass
123
        tags on the command line (if you do, both sources will be
124
        used). A file name of - will be interpreted as stdin.
125
      </para>
126
    </refsect2>
127

    
128
    <refsect2>
129
      <title>EVACUATE</title>
130

    
131
      <cmdsynopsis>
132
        <command>evacuate</command>
133
        <arg>-f</arg>
134
        <arg choice="req"><replaceable>source_node</replaceable></arg>
135
        <arg choice="req"><replaceable>destination_node</replaceable></arg>
136
      </cmdsynopsis>
137

    
138
      <para>
139
        This command will change the secondary node from the source
140
        node to the destination node for all instances having the
141
        source node as secondary. It works only for instances having
142
        a remote_raid1 or drbd disk layout.
143
      </para>
144

    
145
      <para>
146
        Example:
147
        <screen>
148
          # gnt-node evacuate node1.example.com node2.example.com
149
        </screen>
150
      </para>
151
    </refsect2>
152

    
153
    <refsect2>
154
      <title>FAILOVER</title>
155

    
156
      <cmdsynopsis>
157
        <command>failover</command>
158
        <arg>-f</arg>
159
        <arg>--ignore-consistency</arg>
160
        <arg choice="req"><replaceable>node</replaceable></arg>
161
      </cmdsynopsis>
162

    
163
      <para>
164
        This command will fail over all instances having the given
165
        node as primary to their secondary nodes. This works only for
166
        instances having a remote raid disk layout.
167
      </para>
168

    
169
      <para>
170
        Normally the failover will check the consistency of the disks
171
        before failing over the instance. If you are trying to migrate
172
        instances off a dead node, this will fail. Use the
173
        <option>--ignore-consistency</option> option for this purpose.
174
      </para>
175

    
176
      <para>
177
        Example:
178
        <screen>
179
          # gnt-node failover node1.example.com
180
        </screen>
181
      </para>
182
    </refsect2>
183

    
184
    <refsect2>
185
      <title>INFO</title>
186

    
187
      <cmdsynopsis>
188
        <command>info</command>
189
        <arg rep="repeat"><replaceable>node</replaceable></arg>
190
      </cmdsynopsis>
191

    
192
      <para>
193
        Show detailed information about the nodes in the cluster. If you
194
        don't give any arguments, all nodes will be shows, otherwise the
195
        output will be restricted to the given names.
196
      </para>
197
    </refsect2>
198

    
199
    <refsect2>
200
      <title>LIST</title>
201

    
202
      <cmdsynopsis>
203
        <command>list</command>
204
        <arg>--no-headers</arg>
205
        <arg>--separator=<replaceable>SEPARATOR</replaceable></arg>
206
        <arg>-o <replaceable>FIELD,...</replaceable></arg>
207
      </cmdsynopsis>
208

    
209
      <para>
210
        Lists the nodes in the cluster. If you give the
211
        <option>--ip-info</option> option, the output contains just
212
        the node name, primary ip and secondary ip. In case the
213
        secondary ip is the same as the primary one, it will be listed
214
        as <emphasis>"-"</emphasis>.
215
      </para>
216

    
217
      <para>
218
        The <option>--no-headers</option> option will skip the initial
219
        header line. The <option>--separator</option> option takes an
220
        argument which denotes what will be used between the output
221
        fields. Both these options are to help scripting.
222
      </para>
223

    
224
      <para>
225
        The <option>-o</option> option takes a comma-separated list of
226
        output fields. The available fields and their meaning are:
227
        <variablelist>
228
          <varlistentry>
229
            <term>name</term>
230
            <listitem>
231
              <simpara>the node name</simpara>
232
            </listitem>
233
          </varlistentry>
234
          <varlistentry>
235
            <term>pinst_cnt</term>
236
            <listitem>
237
              <simpara>the number of instances having this node as
238
              primary</simpara>
239
            </listitem>
240
          </varlistentry>
241
          <varlistentry>
242
            <term>pinst_list</term>
243
            <listitem>
244
              <simpara>the list of instances having this node as
245
              primary, comma separated</simpara>
246
            </listitem>
247
          </varlistentry>
248
          <varlistentry>
249
            <term>sinst_cnt</term>
250
            <listitem>
251
              <simpara>the number of instances having this node as a
252
              secondary node</simpara>
253
            </listitem>
254
          </varlistentry>
255
          <varlistentry>
256
            <term>sinst_list</term>
257
            <listitem>
258
              <simpara>the list of instances having this node as a
259
              secondary node, comma separated</simpara>
260
            </listitem>
261
          </varlistentry>
262
          <varlistentry>
263
            <term>pip</term>
264
            <listitem>
265
              <simpara>the primary ip of this node (used for cluster
266
              communication)</simpara>
267
            </listitem>
268
          </varlistentry>
269
          <varlistentry>
270
            <term>sip</term>
271
            <listitem>
272
              <simpara>
273
                the secondary ip of this node (used for data
274
                replication in dual-ip clusters, see <citerefentry>
275
                <refentrytitle>gnt-cluster</refentrytitle>
276
                <manvolnum>8</manvolnum>
277
                </citerefentry>
278
              </simpara>
279
            </listitem>
280
          </varlistentry>
281
          <varlistentry>
282
            <term>dtotal</term>
283
            <listitem>
284
              <simpara>total disk space in the volume group used for
285
              instance disk allocations</simpara>
286
            </listitem>
287
          </varlistentry>
288
          <varlistentry>
289
            <term>dfree</term>
290
            <listitem>
291
              <simpara>available disk space in the volume group</simpara>
292
            </listitem>
293
          </varlistentry>
294
          <varlistentry>
295
            <term>mtotal</term>
296
            <listitem>
297
              <simpara>total memory on the physical node</simpara>
298
            </listitem>
299
          </varlistentry>
300
          <varlistentry>
301
            <term>mnode</term>
302
            <listitem>
303
              <simpara>the memory used by the node itself</simpara>
304
            </listitem>
305
          </varlistentry>
306
          <varlistentry>
307
            <term>mfree</term>
308
            <listitem>
309
              <simpara>memory available for instance
310
              allocations</simpara>
311
            </listitem>
312
          </varlistentry>
313
          <varlistentry>
314
            <term>bootid</term>
315
            <listitem>
316
              <simpara>the node bootid value; this is a linux specific
317
              feature that assigns a new UUID to the node at each boot
318
              and can be use to detect node reboots (by tracking
319
              changes in this value)</simpara>
320
            </listitem>
321
          </varlistentry>
322
        </variablelist>
323
      </para>
324

    
325
      <para>
326
        Note that some of this fields are known from the configuration
327
        of the cluster (<simplelist type="inline">
328
        <member>name</member> <member>pinst</member>
329
        <member>sinst</member> <member>pip</member>
330
        <member>sip</member> </simplelist> and thus the master does
331
        not need to contact the node for this data (making the listing
332
        fast if only fields from this set are selected), whereas the
333
        other fields are "live" fields and we need to make a query to
334
        the cluster nodes.
335
      </para>
336

    
337
      <para>
338
        Depending on the virtualization type and implementation
339
        details, the mtotal, mnode and mfree may have slighly varying
340
        meanings. For example, some solutions share the node memory
341
        with the pool of memory used for instances
342
        (<acronym>UML</acronym>), whereas others have separate memory
343
        for the node and for the instances (Xen).
344
      </para>
345
    </refsect2>
346

    
347
    <refsect2>
348
      <title>LIST-TAGS</title>
349

    
350
      <cmdsynopsis>
351
        <command>list-tags</command>
352
        <arg choice="req"><replaceable>nodename</replaceable></arg>
353
      </cmdsynopsis>
354

    
355
      <para>List the tags of the given node.</para>
356
    </refsect2>
357

    
358
    <refsect2>
359
      <title>REMOVE</title>
360

    
361
      <cmdsynopsis>
362
        <command>remove</command>
363
        <arg choice="req"><replaceable>nodename</replaceable></arg>
364
      </cmdsynopsis>
365

    
366
      <para>
367
        Removes a node from the cluster. Instances must be removed or
368
        migrated to another cluster before.
369
      </para>
370

    
371
      <para>
372
        Example:
373
        <screen>
374
# gnt-node remove node5.example.com
375
        </screen>
376
      </para>
377
    </refsect2>
378

    
379
    <refsect2>
380
      <title>REMOVE-TAGS</title>
381
      <cmdsynopsis>
382
        <command>remove-tags</command>
383
        <arg choice="opt">--from <replaceable>file</replaceable></arg>
384
        <arg choice="req"><replaceable>nodename</replaceable></arg>
385
        <arg choice="req"
386
        rep="repeat"><replaceable>tag</replaceable></arg>
387
      </cmdsynopsis>
388

    
389
      <para>
390
        Remove tags from the given node. If any of the tags are not
391
        existing on the node, the entire operation will abort.
392
      </para>
393

    
394
      <para>
395
        If the <option>--from</option> option is given, the list of
396
        tags will be extended with the contents of that file (each
397
        line becomes a tag). In this case, there is not need to pass
398
        tags on the command line (if you do, both sources will be
399
        used). A file name of - will be interpreted as stdin.
400
      </para>
401
    </refsect2>
402

    
403
    <refsect2>
404
      <title>VOLUMES</title>
405

    
406
      <cmdsynopsis>
407
        <command>volumes</command>
408
        <arg>--no-headers</arg>
409
        <arg>--human-readable</arg>
410
        <arg>--separator=<replaceable>SEPARATOR</replaceable></arg>
411
        <arg>--output=<replaceable>FIELDS</replaceable></arg>
412
        <sbr>
413
        <arg rep="repeat"><replaceable>node</replaceable></arg>
414
      </cmdsynopsis>
415

    
416
      <para>
417
        Lists all logical volumes and their physical disks from the node(s)
418
        provided.
419
      </para>
420

    
421
      <para>
422
        The <option>--no-headers</option> option will skip the initial
423
        header line. The <option>--separator</option> option takes an
424
        argument which denotes what will be used between the output
425
        fields. Both these options are to help scripting.
426
      </para>
427

    
428
      <para>
429
        The <option>-o</option> option takes a comma-separated list of
430
        output fields. The available fields and their meaning are:
431
        <variablelist>
432
          <varlistentry>
433
            <term>node</term>
434
            <listitem>
435
              <simpara>the node name on which the volume exists</simpara>
436
            </listitem>
437
          </varlistentry>
438
          <varlistentry>
439
            <term>phys</term>
440
            <listitem>
441
              <simpara>the physical drive (on which the LVM physical
442
              volume lives)</simpara>
443
            </listitem>
444
          </varlistentry>
445
          <varlistentry>
446
            <term>vg</term>
447
            <listitem>
448
              <simpara>the volume group name</simpara>
449
            </listitem>
450
          </varlistentry>
451
          <varlistentry>
452
            <term>name</term>
453
            <listitem>
454
              <simpara>the logical volume name</simpara>
455
            </listitem>
456
          </varlistentry>
457
          <varlistentry>
458
            <term>size</term>
459
            <listitem>
460
              <simpara>the logical volume size</simpara>
461
            </listitem>
462
          </varlistentry>
463
          <varlistentry>
464
            <term>instance</term>
465
            <listitem>
466
              <simpara>The name of the instance to which this volume
467
              belongs, or (in case it's an orphan volume) the
468
              character <quote>-</quote></simpara>
469
            </listitem>
470
          </varlistentry>
471
        </variablelist>
472
      </para>
473

    
474
      <para>
475
        Example:
476
        <screen>
477
# gnt-node volumes node5.example.com
478
Node              PhysDev   VG    Name                                 Size Instance
479
node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11000.meta 128  instance1.example.com
480
node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11001.data 256  instance1.example.com
481
        </screen>
482
      </para>
483
    </refsect2>
484

    
485
  </refsect1>
486

    
487
  &footer;
488

    
489
</refentry>
490

    
491
<!-- Keep this comment at the end of the file
492
Local variables:
493
mode: sgml
494
sgml-omittag:t
495
sgml-shorttag:t
496
sgml-minimize-attributes:nil
497
sgml-always-quote-attributes:t
498
sgml-indent-step:2
499
sgml-indent-data:t
500
sgml-parent-document:nil
501
sgml-default-dtd-file:nil
502
sgml-exposed-tags:nil
503
sgml-local-catalogs:nil
504
sgml-local-ecat-files:nil
505
End:
506
-->