Statistics
| Branch: | Tag: | Revision:

root / man / gnt-node.rst @ 896a03f6

History | View | Annotate | Download (17.1 kB)

1
gnt-node(8) Ganeti | Version @GANETI_VERSION@
2
=============================================
3

    
4
Name
5
----
6

    
7
gnt-node - Node administration
8

    
9
Synopsis
10
--------
11

    
12
**gnt-node** {command} [arguments...]
13

    
14
DESCRIPTION
15
-----------
16

    
17
The **gnt-node** is used for managing the (physical) nodes in the
18
Ganeti system.
19

    
20
COMMANDS
21
--------
22

    
23
ADD
24
~~~
25

    
26
| **add** [--readd] [{-s|--secondary-ip} *secondary\_ip*]
27
| [{-g|--node-group} *nodegroup*]
28
| [--master-capable=``yes|no``] [--vm-capable=``yes|no``]
29
| [--node-parameters *ndparams*]
30
| {*nodename*}
31

    
32
Adds the given node to the cluster.
33

    
34
This command is used to join a new node to the cluster. You will
35
have to provide the password for root of the node to be able to add
36
the node in the cluster. The command needs to be run on the Ganeti
37
master.
38

    
39
Note that the command is potentially destructive, as it will
40
forcibly join the specified host the cluster, not paying attention
41
to its current status (it could be already in a cluster, etc.)
42

    
43
The ``-s (--secondary-ip)`` is used in dual-home clusters and
44
specifies the new node's IP in the secondary network. See the
45
discussion in **gnt-cluster**(8) for more information.
46

    
47
In case you're readding a node after hardware failure, you can use
48
the ``--readd`` parameter. In this case, you don't need to pass the
49
secondary IP again, it will reused from the cluster. Also, the
50
drained and offline flags of the node will be cleared before
51
re-adding it.
52

    
53
The ``--force-join`` option is to proceed with adding a node even if it already
54
appears to belong to another cluster. This is used during cluster merging, for
55
example.
56

    
57
The ``-g (--node-group)`` option is used to add the new node into a
58
specific node group, specified by UUID or name. If only one node group
59
exists you can skip this option, otherwise it's mandatory.
60

    
61
The ``vm_capable``, ``master_capable`` and ``ndparams`` options are
62
described in **ganeti**(7), and are used to set the properties of the
63
new node.
64

    
65
Example::
66

    
67
    # gnt-node add node5.example.com
68
    # gnt-node add -s 192.0.2.5 node5.example.com
69
    # gnt-node add -g group2 -s 192.0.2.9 node9.group2.example.com
70

    
71

    
72
ADD-TAGS
73
~~~~~~~~
74

    
75
**add-tags** [--from *file*] {*nodename*} {*tag*...}
76

    
77
Add tags to the given node. If any of the tags contains invalid
78
characters, the entire operation will abort.
79

    
80
If the ``--from`` option is given, the list of tags will be
81
extended with the contents of that file (each line becomes a tag).
82
In this case, there is not need to pass tags on the command line
83
(if you do, both sources will be used). A file name of - will be
84
interpreted as stdin.
85

    
86
EVACUATE
87
~~~~~~~~
88

    
89
**evacuate** [-f] [--early-release] [--iallocator *NAME* \|
90
--new-secondary *destination\_node*]
91
[--primary-only \| --secondary-only] [--early-release] {*node*}
92

    
93
This command will move instances away from the given node. If
94
``--primary-only`` is given, only primary instances are evacuated, with
95
``--secondary-only`` only secondaries. If neither is given, all
96
instances are evacuated. It works only for instances having a drbd disk
97
template.
98

    
99
The new location for the instances can be specified in two ways:
100

    
101
- as a single node for all instances, via the ``-n (--new-secondary)``
102
  option
103

    
104
- or via the ``-I (--iallocator)`` option, giving a script name as
105
  parameter, so each instance will be in turn placed on the (per the
106
  script) optimal node
107

    
108
The ``--early-release`` changes the code so that the old storage on
109
node being evacuated is removed early (before the resync is
110
completed) and the internal Ganeti locks are also released for both
111
the current secondary and the new secondary, thus allowing more
112
parallelism in the cluster operation. This should be used only when
113
recovering from a disk failure on the current secondary (thus the
114
old storage is already broken) or when the storage on the primary
115
node is known to be fine (thus we won't need the old storage for
116
potential recovery).
117

    
118
Example::
119

    
120
    # gnt-node evacuate -I hail node3.example.com
121

    
122

    
123
FAILOVER
124
~~~~~~~~
125

    
126
**failover** [-f] [--ignore-consistency] {*node*}
127

    
128
This command will fail over all instances having the given node as
129
primary to their secondary nodes. This works only for instances having
130
a drbd disk template.
131

    
132
Normally the failover will check the consistency of the disks before
133
failing over the instance. If you are trying to migrate instances off
134
a dead node, this will fail. Use the ``--ignore-consistency`` option
135
for this purpose.
136

    
137
Example::
138

    
139
    # gnt-node failover node1.example.com
140

    
141

    
142
INFO
143
~~~~
144

    
145
**info** [*node*...]
146

    
147
Show detailed information about the nodes in the cluster. If you
148
don't give any arguments, all nodes will be shows, otherwise the
149
output will be restricted to the given names.
150

    
151
LIST
152
~~~~
153

    
154
| **list**
155
| [--no-headers] [--separator=*SEPARATOR*]
156
| [--units=*UNITS*] [-v] [{-o|--output} *[+]FIELD,...*]
157
| [--filter]
158
| [node...]
159

    
160
Lists the nodes in the cluster.
161

    
162
The ``--no-headers`` option will skip the initial header line. The
163
``--separator`` option takes an argument which denotes what will be
164
used between the output fields. Both these options are to help
165
scripting.
166

    
167
The units used to display the numeric values in the output varies,
168
depending on the options given. By default, the values will be
169
formatted in the most appropriate unit. If the ``--separator``
170
option is given, then the values are shown in mebibytes to allow
171
parsing by scripts. In both cases, the ``--units`` option can be
172
used to enforce a given output unit.
173

    
174
Queries of nodes will be done in parallel with any running jobs. This might
175
give inconsistent results for the free disk/memory.
176

    
177
The ``-v`` option activates verbose mode, which changes the display of
178
special field states (see **ganeti(7)**).
179

    
180
The ``-o (--output)`` option takes a comma-separated list of output
181
fields. The available fields and their meaning are:
182

    
183
@QUERY_FIELDS_NODE@
184

    
185
If the value of the option starts with the character ``+``, the new
186
fields will be added to the default list. This allows one to quickly
187
see the default list plus a few other fields, instead of retyping
188
the entire list of fields.
189

    
190
Note that some of these fields are known from the configuration of the
191
cluster (e.g. ``name``, ``pinst``, ``sinst``, ``pip``, ``sip``) and thus
192
the master does not need to contact the node for this data (making the
193
listing fast if only fields from this set are selected), whereas the
194
other fields are "live" fields and require a query to the cluster nodes.
195

    
196
Depending on the virtualization type and implementation details, the
197
``mtotal``, ``mnode`` and ``mfree`` fields may have slighly varying
198
meanings. For example, some solutions share the node memory with the
199
pool of memory used for instances (KVM), whereas others have separate
200
memory for the node and for the instances (Xen).
201

    
202
If exactly one argument is given and it appears to be a query filter
203
(see **ganeti(7)**), the query result is filtered accordingly. For
204
ambiguous cases (e.g. a single field name as a filter) the ``--filter``
205
(``-F``) option forces the argument to be treated as a filter (e.g.
206
``gnt-node list -F master_candidate``).
207

    
208
If no node names are given, then all nodes are queried. Otherwise,
209
only the given nodes will be listed.
210

    
211

    
212
LIST-FIELDS
213
~~~~~~~~~~~
214

    
215
**list-fields** [field...]
216

    
217
Lists available fields for nodes.
218

    
219

    
220
LIST-TAGS
221
~~~~~~~~~
222

    
223
**list-tags** {*nodename*}
224

    
225
List the tags of the given node.
226

    
227
MIGRATE
228
~~~~~~~
229

    
230
**migrate** [-f] [--non-live] [--migration-mode=live\|non-live]
231
{*node*}
232

    
233
This command will migrate all instances having the given node as
234
primary to their secondary nodes. This works only for instances
235
having a drbd disk template.
236

    
237
As for the **gnt-instance migrate** command, the options
238
``--no-live`` and ``--migration-mode`` can be given to influence
239
the migration type.
240

    
241
Example::
242

    
243
    # gnt-node migrate node1.example.com
244

    
245

    
246
MODIFY
247
~~~~~~
248

    
249
| **modify** [-f] [--submit]
250
| [{-C|--master-candidate} ``yes|no``]
251
| [{-D|--drained} ``yes|no``] [{-O|--offline} ``yes|no``]
252
| [--master-capable=``yes|no``] [--vm-capable=``yes|no``] [--auto-promote]
253
| [{-s|--secondary-ip} *secondary_ip*]
254
| [--node-parameters *ndparams*]
255
| [--node-powered=``yes|no``]
256
| {*node*}
257

    
258
This command changes the role of the node. Each options takes
259
either a literal yes or no, and only one option should be given as
260
yes. The meaning of the roles and flags are described in the
261
manpage **ganeti**(7).
262

    
263
The option ``--node-powered`` can be used to modify state-of-record if
264
it doesn't reflect the reality anymore.
265

    
266
In case a node is demoted from the master candidate role, the
267
operation will be refused unless you pass the ``--auto-promote``
268
option. This option will cause the operation to lock all cluster nodes
269
(thus it will not be able to run in parallel with most other jobs),
270
but it allows automated maintenance of the cluster candidate pool. If
271
locking all cluster node is too expensive, another option is to
272
promote manually another node to master candidate before demoting the
273
current one.
274

    
275
Example (setting a node offline, which will demote it from master
276
candidate role if is in that role)::
277

    
278
    # gnt-node modify --offline=yes node1.example.com
279

    
280
The ``-s (--secondary-ip)`` option can be used to change the node's
281
secondary ip. No drbd instances can be running on the node, while this
282
operation is taking place.
283

    
284
Example (setting the node back to online and master candidate)::
285

    
286
    # gnt-node modify --offline=no --master-candidate=yes node1.example.com
287

    
288

    
289
REMOVE
290
~~~~~~
291

    
292
**remove** {*nodename*}
293

    
294
Removes a node from the cluster. Instances must be removed or
295
migrated to another cluster before.
296

    
297
Example::
298

    
299
    # gnt-node remove node5.example.com
300

    
301

    
302
REMOVE-TAGS
303
~~~~~~~~~~~
304

    
305
**remove-tags** [--from *file*] {*nodename*} {*tag*...}
306

    
307
Remove tags from the given node. If any of the tags are not
308
existing on the node, the entire operation will abort.
309

    
310
If the ``--from`` option is given, the list of tags to be removed will
311
be extended with the contents of that file (each line becomes a tag).
312
In this case, there is not need to pass tags on the command line (if
313
you do, tags from both sources will be removed). A file name of - will
314
be interpreted as stdin.
315

    
316
VOLUMES
317
~~~~~~~
318

    
319
| **volumes** [--no-headers] [--human-readable]
320
| [--separator=*SEPARATOR*] [{-o|--output} *FIELDS*]
321
| [*node*...]
322

    
323
Lists all logical volumes and their physical disks from the node(s)
324
provided.
325

    
326
The ``--no-headers`` option will skip the initial header line. The
327
``--separator`` option takes an argument which denotes what will be
328
used between the output fields. Both these options are to help
329
scripting.
330

    
331
The units used to display the numeric values in the output varies,
332
depending on the options given. By default, the values will be
333
formatted in the most appropriate unit. If the ``--separator``
334
option is given, then the values are shown in mebibytes to allow
335
parsing by scripts. In both cases, the ``--units`` option can be
336
used to enforce a given output unit.
337

    
338
The ``-o (--output)`` option takes a comma-separated list of output
339
fields. The available fields and their meaning are:
340

    
341
node
342
    the node name on which the volume exists
343

    
344
phys
345
    the physical drive (on which the LVM physical volume lives)
346

    
347
vg
348
    the volume group name
349

    
350
name
351
    the logical volume name
352

    
353
size
354
    the logical volume size
355

    
356
instance
357
    The name of the instance to which this volume belongs, or (in case
358
    it's an orphan volume) the character "-"
359

    
360

    
361
Example::
362

    
363
    # gnt-node volumes node5.example.com
364
    Node              PhysDev   VG    Name                                 Size Instance
365
    node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11000.meta 128  instance1.example.com
366
    node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11001.data 256  instance1.example.com
367

    
368

    
369
LIST-STORAGE
370
~~~~~~~~~~~~
371

    
372
| **list-storage** [--no-headers] [--human-readable]
373
| [--separator=*SEPARATOR*] [--storage-type=*STORAGE\_TYPE*]
374
| [{-o|--output} *FIELDS*]
375
| [*node*...]
376

    
377
Lists the available storage units and their details for the given
378
node(s).
379

    
380
The ``--no-headers`` option will skip the initial header line. The
381
``--separator`` option takes an argument which denotes what will be
382
used between the output fields. Both these options are to help
383
scripting.
384

    
385
The units used to display the numeric values in the output varies,
386
depending on the options given. By default, the values will be
387
formatted in the most appropriate unit. If the ``--separator``
388
option is given, then the values are shown in mebibytes to allow
389
parsing by scripts. In both cases, the ``--units`` option can be
390
used to enforce a given output unit.
391

    
392
The ``--storage-type`` option can be used to choose a storage unit
393
type. Possible choices are lvm-pv, lvm-vg or file.
394

    
395
The ``-o (--output)`` option takes a comma-separated list of output
396
fields. The available fields and their meaning are:
397

    
398
node
399
    the node name on which the volume exists
400

    
401
type
402
    the type of the storage unit (currently just what is passed in via
403
    ``--storage-type``)
404

    
405
name
406
    the path/identifier of the storage unit
407

    
408
size
409
    total size of the unit; for the file type see a note below
410

    
411
used
412
    used space in the unit; for the file type see a note below
413

    
414
free
415
    available disk space
416

    
417
allocatable
418
    whether we the unit is available for allocation (only lvm-pv can
419
    change this setting, the other types always report true)
420

    
421

    
422
Note that for the "file" type, the total disk space might not equal
423
to the sum of used and free, due to the method Ganeti uses to
424
compute each of them. The total and free values are computed as the
425
total and free space values for the filesystem to which the
426
directory belongs, but the used space is computed from the used
427
space under that directory *only*, which might not be necessarily
428
the root of the filesystem, and as such there could be files
429
outside the file storage directory using disk space and causing a
430
mismatch in the values.
431

    
432
Example::
433

    
434
    node1# gnt-node list-storage node2
435
    Node  Type   Name        Size Used   Free Allocatable
436
    node2 lvm-pv /dev/sda7 673.8G 1.5G 672.3G Y
437
    node2 lvm-pv /dev/sdb1 698.6G   0M 698.6G Y
438

    
439

    
440
MODIFY-STORAGE
441
~~~~~~~~~~~~~~
442

    
443
**modify-storage** [``--allocatable=yes|no``]
444
{*node*} {*storage-type*} {*volume-name*}
445

    
446
Modifies storage volumes on a node. Only LVM physical volumes can
447
be modified at the moment. They have a storage type of "lvm-pv".
448

    
449
Example::
450

    
451
    # gnt-node modify-storage --allocatable no node5.example.com lvm-pv /dev/sdb1
452

    
453

    
454
REPAIR-STORAGE
455
~~~~~~~~~~~~~~
456

    
457
**repair-storage** [--ignore-consistency] {*node*} {*storage-type*}
458
{*volume-name*}
459

    
460
Repairs a storage volume on a node. Only LVM volume groups can be
461
repaired at this time. They have the storage type "lvm-vg".
462

    
463
On LVM volume groups, **repair-storage** runs "vgreduce
464
--removemissing".
465

    
466

    
467

    
468
**Caution:** Running this command can lead to data loss. Use it with
469
care.
470

    
471
The ``--ignore-consistency`` option will ignore any inconsistent
472
disks (on the nodes paired with this one). Use of this option is
473
most likely to lead to data-loss.
474

    
475
Example::
476

    
477
    # gnt-node repair-storage node5.example.com lvm-vg xenvg
478

    
479

    
480
POWERCYCLE
481
~~~~~~~~~~
482

    
483
**powercycle** [``--yes``] [``--force``] {*node*}
484

    
485
This commands (tries to) forcefully reboot a node. It is a command
486
that can be used if the node environemnt is broken, such that the
487
admin can no longer login over ssh, but the Ganeti node daemon is
488
still working.
489

    
490
Note that this command is not guaranteed to work; it depends on the
491
hypervisor how effective is the reboot attempt. For Linux, this
492
command require that the kernel option CONFIG\_MAGIC\_SYSRQ is
493
enabled.
494

    
495
The ``--yes`` option can be used to skip confirmation, while the
496
``--force`` option is needed if the target node is the master
497
node.
498

    
499
POWER
500
~~~~~
501

    
502
**power** [``--force``] [``--ignore-status``] [``--all``]
503
[``--power-delay``] on|off|cycle|status [*nodes*]
504

    
505
This commands calls out to out-of-band management to change the power
506
state of given node. With ``status`` you get the power status as reported
507
by the out-of-band managment script.
508

    
509
Note that this command will only work if the out-of-band functionality
510
is configured and enabled on the cluster. If this is not the case,
511
please use the **powercycle** command above.
512

    
513
Using ``--force`` you skip the confirmation to do the operation.
514
Currently this only has effect on ``off`` and ``cycle``. On those two
515
you can *not* operate on the master. However, the command will provide
516
you with the command to invoke to operate on the master nerver-mind.
517
This is considered harmful and Ganeti does not support the use of it.
518

    
519
Providing ``--ignore-status`` will ignore the offline=N state of a node
520
and continue with power off.
521

    
522
``--power-delay`` specifies the time in seconds (factions allowed)
523
waited between powering on the next node. This is by default 2 seconds
524
but can increased if needed with this option.
525

    
526
*nodes* are optional. If not provided it will call out for every node in
527
the cluster. Except for the ``off`` and ``cycle`` command where you've
528
to explicit use ``--all`` to select all.
529

    
530

    
531
HEALTH
532
~~~~~~
533

    
534
**health** [*nodes*]
535

    
536
This commands calls out to out-pf-band management to ask for the health status
537
of all or given nodes. The health contains the node name and then the items
538
element with their status in a ``item=status`` manner. Where ``item`` is script
539
specific and ``status`` can be one of ``OK``, ``WARNING``, ``CRITICAL`` or
540
``UNKNOWN``. Items with status ``WARNING`` or ``CRITICAL`` are logged and
541
annotated in the command line output.
542

    
543
.. vim: set textwidth=72 :
544
.. Local Variables:
545
.. mode: rst
546
.. fill-column: 72
547
.. End: