Statistics
| Branch: | Tag: | Revision:

root / man / gnt-node.rst @ 6d846d0e

History | View | Annotate | Download (21.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
| [\--disk-state *diskstate*]
31
| [\--hypervisor-state *hvstate*]
32
| {*nodename*}
33

    
34
Adds the given node to the cluster.
35

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

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

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

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

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

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

    
63
The command performs some operations that change the state of the master
64
and the new node, like copying certificates and starting the node daemon
65
on the new node, or updating ``/etc/hosts`` on the master node.  If the
66
command fails at a later stage, it doesn't undo such changes.  This
67
should not be a problem, as a successful run of ``gnt-node add`` will
68
bring everything back in sync.
69

    
70
Example::
71

    
72
    # gnt-node add node5.example.com
73
    # gnt-node add -s 192.0.2.5 node5.example.com
74
    # gnt-node add -g group2 -s 192.0.2.9 node9.group2.example.com
75

    
76

    
77
ADD-TAGS
78
~~~~~~~~
79

    
80
**add-tags** [\--from *file*] {*nodename*} {*tag*...}
81

    
82
Add tags to the given node. If any of the tags contains invalid
83
characters, the entire operation will abort.
84

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

    
91
EVACUATE
92
~~~~~~~~
93

    
94
| **evacuate** [-f] [\--early-release] [\--submit]
95
| [{-I|\--iallocator} *NAME* \| {-n|\--new-secondary} *destination\_node*]
96
| [{-p|\--primary-only} \| {-s|\--secondary-only} ]
97
|  {*node*}
98

    
99
This command will move instances away from the given node. If
100
``--primary-only`` is given, only primary instances are evacuated, with
101
``--secondary-only`` only secondaries. If neither is given, all
102
instances are evacuated. It works only for instances having a drbd disk
103
template.
104

    
105
The new location for the instances can be specified in two ways:
106

    
107
- as a single node for all instances, via the ``-n (--new-secondary)``
108
  option
109

    
110
- or via the ``-I (--iallocator)`` option, giving a script name as
111
  parameter (or ``.`` to use the default allocator), so each instance
112
  will be in turn placed on the (per the script) optimal node
113

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

    
124
Note that this command is equivalent to using per-instance commands for
125
each affected instance individually:
126

    
127
- ``--primary-only`` is equivalent to ``gnt-instance
128
  failover/migration`` for non-DRBD instances, but for DRBD instances
129
  it's different, and usually is a slow process (it will change the
130
  primary to another node while keeping the secondary, this requiring
131
  data copies, whereas failover/migrate will only toggle the
132
  primary/secondary roles, a fast process)
133
- ``--secondary-only`` is equivalent to ``gnt-instance replace-disks``
134
  in the secondary node change mode (only valid for DRBD instances)
135
- when neither of the above is done a combination of the two cases is run
136

    
137
See **ganeti(7)** for a description of ``--submit`` and other common
138
options.
139

    
140
Example::
141

    
142
    # gnt-node evacuate -I hail node3.example.com
143

    
144

    
145
FAILOVER
146
~~~~~~~~
147

    
148
**failover** [-f] [\--ignore-consistency] {*node*}
149

    
150
This command will fail over all instances having the given node as
151
primary to their secondary nodes. This works only for instances having
152
a drbd disk template.
153

    
154
Normally the failover will check the consistency of the disks before
155
failing over the instance. If you are trying to migrate instances off
156
a dead node, this will fail. Use the ``--ignore-consistency`` option
157
for this purpose.
158

    
159
Example::
160

    
161
    # gnt-node failover node1.example.com
162

    
163

    
164
INFO
165
~~~~
166

    
167
**info** [*node*...]
168

    
169
Show detailed information about the nodes in the cluster. If you
170
don't give any arguments, all nodes will be shows, otherwise the
171
output will be restricted to the given names.
172

    
173
LIST
174
~~~~
175

    
176
| **list**
177
| [\--no-headers] [\--separator=*SEPARATOR*]
178
| [\--units=*UNITS*] [-v] [{-o|\--output} *[+]FIELD,...*]
179
| [\--filter]
180
| [node...]
181

    
182
Lists the nodes in the cluster.
183

    
184
The ``--no-headers`` option will skip the initial header line. The
185
``--separator`` option takes an argument which denotes what will be
186
used between the output fields. Both these options are to help
187
scripting.
188

    
189
The units used to display the numeric values in the output varies,
190
depending on the options given. By default, the values will be
191
formatted in the most appropriate unit. If the ``--separator``
192
option is given, then the values are shown in mebibytes to allow
193
parsing by scripts. In both cases, the ``--units`` option can be
194
used to enforce a given output unit.
195

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

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

    
202
The ``-o (--output)`` option takes a comma-separated list of output
203
fields. The available fields and their meaning are:
204

    
205
@QUERY_FIELDS_NODE@
206

    
207
If the value of the option starts with the character ``+``, the new
208
fields will be added to the default list. This allows one to quickly
209
see the default list plus a few other fields, instead of retyping
210
the entire list of fields.
211

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

    
218
Depending on the virtualization type and implementation details, the
219
``mtotal``, ``mnode`` and ``mfree`` fields may have slightly varying
220
meanings. For example, some solutions share the node memory with the
221
pool of memory used for instances (KVM), whereas others have separate
222
memory for the node and for the instances (Xen).
223

    
224
If exactly one argument is given and it appears to be a query filter
225
(see **ganeti(7)**), the query result is filtered accordingly. For
226
ambiguous cases (e.g. a single field name as a filter) the ``--filter``
227
(``-F``) option forces the argument to be treated as a filter (e.g.
228
``gnt-node list -F master_candidate``).
229

    
230
If no node names are given, then all nodes are queried. Otherwise,
231
only the given nodes will be listed.
232

    
233

    
234
LIST-DRBD
235
~~~~~~~~~
236

    
237
**list-drbd** [\--no-headers] [\--separator=*SEPARATOR*] node
238

    
239
Lists the mapping of DRBD minors for a given node. This outputs a static
240
list of fields (it doesn't accept the ``--output`` option), as follows:
241

    
242
``Node``
243
  The (full) name of the node we are querying
244
``Minor``
245
  The DRBD minor
246
``Instance``
247
  The instance the DRBD minor belongs to
248
``Disk``
249
  The disk index that the DRBD minor belongs to
250
``Role``
251
  Either ``primary`` or ``secondary``, denoting the role of the node for
252
  the instance (note: this is not the live status of the DRBD device,
253
  but the configuration value)
254
``PeerNode``
255
  The node that the minor is connected to on the other end
256

    
257
This command can be used as a reverse lookup (from node and minor) to a
258
given instance, which can be useful when debugging DRBD issues.
259

    
260
Note that this command queries Ganeti via :manpage:`ganeti-confd(8)`, so
261
it won't be available if support for ``confd`` has not been enabled at
262
build time; furthermore, in Ganeti 2.6 this is only available via the
263
Haskell version of confd (again selected at build time).
264

    
265
LIST-FIELDS
266
~~~~~~~~~~~
267

    
268
**list-fields** [field...]
269

    
270
Lists available fields for nodes.
271

    
272

    
273
LIST-TAGS
274
~~~~~~~~~
275

    
276
**list-tags** {*nodename*}
277

    
278
List the tags of the given node.
279

    
280
MIGRATE
281
~~~~~~~
282

    
283
| **migrate** [-f] [\--non-live] [\--migration-mode=live\|non-live]
284
| [\--ignore-ipolicy] [\--submit] {*node*}
285

    
286
This command will migrate all instances having the given node as
287
primary to their secondary nodes. This works only for instances
288
having a drbd disk template.
289

    
290
As for the **gnt-instance migrate** command, the options
291
``--no-live``, ``--migration-mode`` and ``--no-runtime-changes``
292
can be given to influence the migration type.
293

    
294
If ``--ignore-ipolicy`` is given any instance policy violations
295
occurring during this operation are ignored.
296

    
297
See **ganeti(7)** for a description of ``--submit`` and other common
298
options.
299

    
300
Example::
301

    
302
    # gnt-node migrate node1.example.com
303

    
304

    
305
MODIFY
306
~~~~~~
307

    
308
| **modify** [-f] [\--submit]
309
| [{-C|\--master-candidate} ``yes|no``]
310
| [{-D|\--drained} ``yes|no``] [{-O|\--offline} ``yes|no``]
311
| [\--master-capable=``yes|no``] [\--vm-capable=``yes|no``] [\--auto-promote]
312
| [{-s|\--secondary-ip} *secondary_ip*]
313
| [\--node-parameters *ndparams*]
314
| [\--node-powered=``yes|no``]
315
| [\--hypervisor-state *hvstate*]
316
| [\--disk-state *diskstate*]
317
| {*node*}
318

    
319
This command changes the role of the node. Each options takes
320
either a literal yes or no, and only one option should be given as
321
yes. The meaning of the roles and flags are described in the
322
manpage **ganeti(7)**.
323

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

    
327
In case a node is demoted from the master candidate role, the
328
operation will be refused unless you pass the ``--auto-promote``
329
option. This option will cause the operation to lock all cluster nodes
330
(thus it will not be able to run in parallel with most other jobs),
331
but it allows automated maintenance of the cluster candidate pool. If
332
locking all cluster node is too expensive, another option is to
333
promote manually another node to master candidate before demoting the
334
current one.
335

    
336
Example (setting a node offline, which will demote it from master
337
candidate role if is in that role)::
338

    
339
    # gnt-node modify --offline=yes node1.example.com
340

    
341
The ``-s (--secondary-ip)`` option can be used to change the node's
342
secondary ip. No drbd instances can be running on the node, while this
343
operation is taking place. Remember that the secondary ip must be
344
reachable from the master secondary ip, when being changed, so be sure
345
that the node has the new IP already configured and active. In order to
346
convert a cluster from single homed to multi-homed or vice versa
347
``--force`` is needed as well, and the target node for the first change
348
must be the master.
349

    
350
See **ganeti(7)** for a description of ``--submit`` and other common
351
options.
352

    
353
Example (setting the node back to online and master candidate)::
354

    
355
    # gnt-node modify --offline=no --master-candidate=yes node1.example.com
356

    
357

    
358
REMOVE
359
~~~~~~
360

    
361
**remove** {*nodename*}
362

    
363
Removes a node from the cluster. Instances must be removed or
364
migrated to another cluster before.
365

    
366
Example::
367

    
368
    # gnt-node remove node5.example.com
369

    
370

    
371
REMOVE-TAGS
372
~~~~~~~~~~~
373

    
374
**remove-tags** [\--from *file*] {*nodename*} {*tag*...}
375

    
376
Remove tags from the given node. If any of the tags are not
377
existing on the node, the entire operation will abort.
378

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

    
385
VOLUMES
386
~~~~~~~
387

    
388
| **volumes** [\--no-headers] [\--human-readable]
389
| [\--separator=*SEPARATOR*] [{-o|\--output} *FIELDS*]
390
| [*node*...]
391

    
392
Lists all logical volumes and their physical disks from the node(s)
393
provided.
394

    
395
The ``--no-headers`` option will skip the initial header line. The
396
``--separator`` option takes an argument which denotes what will be
397
used between the output fields. Both these options are to help
398
scripting.
399

    
400
The units used to display the numeric values in the output varies,
401
depending on the options given. By default, the values will be
402
formatted in the most appropriate unit. If the ``--separator``
403
option is given, then the values are shown in mebibytes to allow
404
parsing by scripts. In both cases, the ``--units`` option can be
405
used to enforce a given output unit.
406

    
407
The ``-o (--output)`` option takes a comma-separated list of output
408
fields. The available fields and their meaning are:
409

    
410
node
411
    the node name on which the volume exists
412

    
413
phys
414
    the physical drive (on which the LVM physical volume lives)
415

    
416
vg
417
    the volume group name
418

    
419
name
420
    the logical volume name
421

    
422
size
423
    the logical volume size
424

    
425
instance
426
    The name of the instance to which this volume belongs, or (in case
427
    it's an orphan volume) the character "-"
428

    
429

    
430
Example::
431

    
432
    # gnt-node volumes node5.example.com
433
    Node              PhysDev   VG    Name                                 Size Instance
434
    node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11000.meta 128  instance1.example.com
435
    node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11001.data 256  instance1.example.com
436

    
437

    
438
LIST-STORAGE
439
~~~~~~~~~~~~
440

    
441
| **list-storage** [\--no-headers] [\--human-readable]
442
| [\--separator=*SEPARATOR*] [\--storage-type=*STORAGE\_TYPE*]
443
| [{-o|\--output} *FIELDS*]
444
| [*node*...]
445

    
446
Lists the available storage units and their details for the given
447
node(s).
448

    
449
The ``--no-headers`` option will skip the initial header line. The
450
``--separator`` option takes an argument which denotes what will be
451
used between the output fields. Both these options are to help
452
scripting.
453

    
454
The units used to display the numeric values in the output varies,
455
depending on the options given. By default, the values will be
456
formatted in the most appropriate unit. If the ``--separator``
457
option is given, then the values are shown in mebibytes to allow
458
parsing by scripts. In both cases, the ``--units`` option can be
459
used to enforce a given output unit.
460

    
461
The ``--storage-type`` option can be used to choose a storage unit
462
type. Possible choices are lvm-pv, lvm-vg or file.
463

    
464
The ``-o (--output)`` option takes a comma-separated list of output
465
fields. The available fields and their meaning are:
466

    
467
node
468
    the node name on which the volume exists
469

    
470
type
471
    the type of the storage unit (currently just what is passed in via
472
    ``--storage-type``)
473

    
474
name
475
    the path/identifier of the storage unit
476

    
477
size
478
    total size of the unit; for the file type see a note below
479

    
480
used
481
    used space in the unit; for the file type see a note below
482

    
483
free
484
    available disk space
485

    
486
allocatable
487
    whether we the unit is available for allocation (only lvm-pv can
488
    change this setting, the other types always report true)
489

    
490

    
491
Note that for the "file" type, the total disk space might not equal
492
to the sum of used and free, due to the method Ganeti uses to
493
compute each of them. The total and free values are computed as the
494
total and free space values for the filesystem to which the
495
directory belongs, but the used space is computed from the used
496
space under that directory *only*, which might not be necessarily
497
the root of the filesystem, and as such there could be files
498
outside the file storage directory using disk space and causing a
499
mismatch in the values.
500

    
501
Example::
502

    
503
    node1# gnt-node list-storage node2
504
    Node  Type   Name        Size Used   Free Allocatable
505
    node2 lvm-pv /dev/sda7 673.8G 1.5G 672.3G Y
506
    node2 lvm-pv /dev/sdb1 698.6G   0M 698.6G Y
507

    
508

    
509
MODIFY-STORAGE
510
~~~~~~~~~~~~~~
511

    
512
| **modify-storage** [\--allocatable={yes|no}] [\--submit]
513
| {*node*} {*storage-type*} {*volume-name*}
514

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

    
518
Example::
519

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

    
522

    
523
REPAIR-STORAGE
524
~~~~~~~~~~~~~~
525

    
526
| **repair-storage** [\--ignore-consistency] ]\--submit]
527
| {*node*} {*storage-type*} {*volume-name*}
528

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

    
532
On LVM volume groups, **repair-storage** runs ``vgreduce
533
--removemissing``.
534

    
535

    
536

    
537
**Caution:** Running this command can lead to data loss. Use it with
538
care.
539

    
540
The ``--ignore-consistency`` option will ignore any inconsistent
541
disks (on the nodes paired with this one). Use of this option is
542
most likely to lead to data-loss.
543

    
544
Example::
545

    
546
    # gnt-node repair-storage node5.example.com lvm-vg xenvg
547

    
548

    
549
POWERCYCLE
550
~~~~~~~~~~
551

    
552
**powercycle** [\--yes] [\--force] [\--submit] {*node*}
553

    
554
This command (tries to) forcefully reboot a node. It is a command
555
that can be used if the node environment is broken, such that the
556
admin can no longer login over SSH, but the Ganeti node daemon is
557
still working.
558

    
559
Note that this command is not guaranteed to work; it depends on the
560
hypervisor how effective is the reboot attempt. For Linux, this
561
command requires the kernel option ``CONFIG_MAGIC_SYSRQ`` to be
562
enabled.
563

    
564
The ``--yes`` option can be used to skip confirmation, while the
565
``--force`` option is needed if the target node is the master
566
node.
567

    
568
See **ganeti(7)** for a description of ``--submit`` and other common
569
options.
570

    
571
POWER
572
~~~~~
573

    
574
**power** [``--force``] [``--ignore-status``] [``--all``]
575
[``--power-delay``] on|off|cycle|status [*nodes*]
576

    
577
This command calls out to out-of-band management to change the power
578
state of given node. With ``status`` you get the power status as reported
579
by the out-of-band management script.
580

    
581
Note that this command will only work if the out-of-band functionality
582
is configured and enabled on the cluster. If this is not the case,
583
please use the **powercycle** command above.
584

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

    
591
Providing ``--ignore-status`` will ignore the offline=N state of a node
592
and continue with power off.
593

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

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

    
602

    
603
HEALTH
604
~~~~~~
605

    
606
**health** [*nodes*]
607

    
608
This command calls out to out-of-band management to ask for the health status
609
of all or given nodes. The health contains the node name and then the items
610
element with their status in a ``item=status`` manner. Where ``item`` is script
611
specific and ``status`` can be one of ``OK``, ``WARNING``, ``CRITICAL`` or
612
``UNKNOWN``. Items with status ``WARNING`` or ``CRITICAL`` are logged and
613
annotated in the command line output.
614

    
615

    
616
RESTRICTED-COMMAND
617
~~~~~~~~~~~~~~~~~~
618

    
619
| **restricted-command** [-M] [--sync]
620
| { -g *group* *command* | *command* *nodes*... }
621

    
622
Executes a restricted command on the specified nodes. Restricted commands are
623
not arbitrary, but must reside in
624
``@SYSCONFDIR@/ganeti/remote-commands`` on a node, either as a regular
625
file or as a symlink. The directory must be owned by root and not be
626
world- or group-writable. If a command fails verification or otherwise
627
fails to start, the node daemon log must be consulted for more detailed
628
information.
629

    
630
Example for running a command on two nodes::
631

    
632
    # gnt-node restricted-command mycommand \
633
      node1.example.com node2.example.com
634

    
635
The ``-g`` option can be used to run a command only on a specific node
636
group, e.g.::
637

    
638
    # gnt-node restricted-command -g default mycommand
639

    
640
The ``-M`` option can be used to prepend the node name to all command
641
output lines. ``--sync`` forces the opcode to acquire the node lock(s)
642
in exclusive mode.
643

    
644
.. vim: set textwidth=72 :
645
.. Local Variables:
646
.. mode: rst
647
.. fill-column: 72
648
.. End: