Statistics
| Branch: | Tag: | Revision:

root / man / gnt-instance.rst @ 90bb3fe1

History | View | Annotate | Download (55.4 kB)

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

    
4
Name
5
----
6

    
7
gnt-instance - Ganeti instance administration
8

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

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

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

    
17
The **gnt-instance** command is used for instance administration in
18
the Ganeti system.
19

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

    
23
Creation/removal/querying
24
~~~~~~~~~~~~~~~~~~~~~~~~~
25

    
26
ADD
27
^^^
28

    
29
| **add**
30
| {-t|--disk-template {diskless | file \| plain \| drbd}}
31
| {--disk=*N*: {size=*VAL* \| adopt=*LV*}[,vg=*VG*][,metavg=*VG*][,mode=*ro\|rw*]
32
|  \| {-s|--os-size} *SIZE*}
33
| [--no-ip-check] [--no-name-check] [--no-start] [--no-install]
34
| [--net=*N* [:options...] \| --no-nics]
35
| [{-B|--backend-parameters} *BEPARAMS*]
36
| [{-H|--hypervisor-parameters} *HYPERVISOR* [: option=*value*... ]]
37
| [{-O|--os-parameters} *param*=*value*... ]
38
| [--file-storage-dir *dir\_path*] [--file-driver {loop \| blktap}]
39
| {{-n|--node} *node[:secondary-node]* \| {-I|--iallocator} *name*}
40
| {{-o|--os-type} *os-type*}
41
| [--submit]
42
| {*instance*}
43

    
44
Creates a new instance on the specified host. The *instance* argument
45
must be in DNS, but depending on the bridge/routing setup, need not be
46
in the same network as the nodes in the cluster.
47

    
48
The ``disk`` option specifies the parameters for the disks of the
49
instance. The numbering of disks starts at zero, and at least one disk
50
needs to be passed. For each disk, either the size or the adoption
51
source needs to be given, and optionally the access mode (read-only or
52
the default of read-write) and the LVM volume group can also be
53
specified (via the ``vg`` key). For DRBD devices, a different VG can
54
be specified for the metadata device using the ``metavg`` key.  The
55
size is interpreted (when no unit is given) in mebibytes. You can also
56
use one of the suffixes *m*, *g* or *t* to specify the exact the units
57
used; these suffixes map to mebibytes, gibibytes and tebibytes.
58

    
59
When using the ``adopt`` key in the disk definition, Ganeti will
60
reuse those volumes (instead of creating new ones) as the
61
instance's disks. Ganeti will rename these volumes to the standard
62
format, and (without installing the OS) will use them as-is for the
63
instance. This allows migrating instances from non-managed mode
64
(e.q. plain KVM with LVM) to being managed via Ganeti. Note that
65
this works only for the \`plain' disk template (see below for
66
template details).
67

    
68
Alternatively, a single-disk instance can be created via the ``-s``
69
option which takes a single argument, the size of the disk. This is
70
similar to the Ganeti 1.2 version (but will only create one disk).
71

    
72
The minimum disk specification is therefore ``--disk 0:size=20G`` (or
73
``-s 20G`` when using the ``-s`` option), and a three-disk instance
74
can be specified as ``--disk 0:size=20G --disk 1:size=4G --disk
75
2:size=100G``.
76

    
77
The ``--no-ip-check`` skips the checks that are done to see if the
78
instance's IP is not already alive (i.e. reachable from the master
79
node).
80

    
81
The ``--no-name-check`` skips the check for the instance name via
82
the resolver (e.g. in DNS or /etc/hosts, depending on your setup).
83
Since the name check is used to compute the IP address, if you pass
84
this option you must also pass the ``--no-ip-check`` option.
85

    
86
If you don't wat the instance to automatically start after
87
creation, this is possible via the ``--no-start`` option. This will
88
leave the instance down until a subsequent **gnt-instance start**
89
command.
90

    
91
The NICs of the instances can be specified via the ``--net``
92
option. By default, one NIC is created for the instance, with a
93
random MAC, and set up according the the cluster level nic
94
parameters. Each NIC can take these parameters (all optional):
95

    
96
mac
97
    either a value or 'generate' to generate a new unique MAC
98

    
99
ip
100
    specifies the IP address assigned to the instance from the Ganeti
101
    side (this is not necessarily what the instance will use, but what
102
    the node expects the instance to use)
103

    
104
mode
105
    specifies the connection mode for this nic: routed or bridged.
106

    
107
link
108
    in bridged mode specifies the bridge to attach this NIC to, in
109
    routed mode it's intended to differentiate between different
110
    routing tables/instance groups (but the meaning is dependent on
111
    the network script, see gnt-cluster(8) for more details)
112

    
113

    
114
Of these "mode" and "link" are nic parameters, and inherit their
115
default at cluster level.  Alternatively, if no network is desired for
116
the instance, you can prevent the default of one NIC with the
117
``--no-nics`` option.
118

    
119
The ``-o (--os-type)`` option specifies the operating system to be
120
installed.  The available operating systems can be listed with
121
**gnt-os list**.  Passing ``--no-install`` will however skip the OS
122
installation, allowing a manual import if so desired. Note that the
123
no-installation mode will automatically disable the start-up of the
124
instance (without an OS, it most likely won't be able to start-up
125
successfully).
126

    
127
The ``-B (--backend-parameters)`` option specifies the backend
128
parameters for the instance. If no such parameters are specified, the
129
values are inherited from the cluster. Possible parameters are:
130

    
131
maxmem
132
    the maximum memory size of the instance; as usual, suffixes can be
133
    used to denote the unit, otherwise the value is taken in mebibites
134

    
135
minmem
136
    the minimum memory size of the instance; as usual, suffixes can be
137
    used to denote the unit, otherwise the value is taken in mebibites
138

    
139
vcpus
140
    the number of VCPUs to assign to the instance (if this value makes
141
    sense for the hypervisor)
142

    
143
auto\_balance
144
    whether the instance is considered in the N+1 cluster checks
145
    (enough redundancy in the cluster to survive a node failure)
146

    
147
Note that before 2.6 Ganeti had a ``memory`` parameter, which was the
148
only value of memory an instance could have. With the
149
``maxmem``/``minmem`` change Ganeti guarantees that at least the minimum
150
memory is always available for an instance, but allows more memory to be
151
used (up to the maximum memory) should it be free.
152

    
153
The ``-H (--hypervisor-parameters)`` option specified the hypervisor
154
to use for the instance (must be one of the enabled hypervisors on the
155
cluster) and optionally custom parameters for this instance. If not
156
other options are used (i.e. the invocation is just -H *NAME*) the
157
instance will inherit the cluster options. The defaults below show the
158
cluster defaults at cluster creation time.
159

    
160
The possible hypervisor options are as follows:
161

    
162
boot\_order
163
    Valid for the Xen HVM and KVM hypervisors.
164

    
165
    A string value denoting the boot order. This has different meaning
166
    for the Xen HVM hypervisor and for the KVM one.
167

    
168
    For Xen HVM, The boot order is a string of letters listing the boot
169
    devices, with valid device letters being:
170

    
171
    a
172
        floppy drive
173

    
174
    c
175
        hard disk
176

    
177
    d
178
        CDROM drive
179

    
180
    n
181
        network boot (PXE)
182

    
183
    The default is not to set an HVM boot order which is interpreted
184
    as 'dc'.
185

    
186
    For KVM the boot order is either "floppy", "cdrom", "disk" or
187
    "network".  Please note that older versions of KVM couldn't
188
    netboot from virtio interfaces. This has been fixed in more recent
189
    versions and is confirmed to work at least with qemu-kvm 0.11.1.
190

    
191
blockdev\_prefix
192
    Valid for the Xen HVM and PVM hypervisors.
193

    
194
    Relevant to non-pvops guest kernels, in which the disk device names
195
    are given by the host.  Allows one to specify 'xvd', which helps run
196
    Red Hat based installers, driven by anaconda.
197

    
198
floppy\_image\_path
199
    Valid for the KVM hypervisor.
200

    
201
    The path to a floppy disk image to attach to the instance.  This
202
    is useful to install Windows operating systems on Virt/IO disks
203
    because you can specify here the floppy for the drivers at
204
    installation time.
205

    
206
cdrom\_image\_path
207
    Valid for the Xen HVM and KVM hypervisors.
208

    
209
    The path to a CDROM image to attach to the instance.
210

    
211
cdrom2\_image\_path
212
    Valid for the KVM hypervisor.
213

    
214
    The path to a second CDROM image to attach to the instance.
215
    **NOTE**: This image can't be used to boot the system. To do that
216
    you have to use the 'cdrom\_image\_path' option.
217

    
218
nic\_type
219
    Valid for the Xen HVM and KVM hypervisors.
220

    
221
    This parameter determines the way the network cards are presented
222
    to the instance. The possible options are:
223

    
224
    - rtl8139 (default for Xen HVM) (HVM & KVM)
225
    - ne2k\_isa (HVM & KVM)
226
    - ne2k\_pci (HVM & KVM)
227
    - i82551 (KVM)
228
    - i82557b (KVM)
229
    - i82559er (KVM)
230
    - pcnet (KVM)
231
    - e1000 (KVM)
232
    - paravirtual (default for KVM) (HVM & KVM)
233

    
234
disk\_type
235
    Valid for the Xen HVM and KVM hypervisors.
236

    
237
    This parameter determines the way the disks are presented to the
238
    instance. The possible options are:
239

    
240
    - ioemu [default] (HVM & KVM)
241
    - ide (HVM & KVM)
242
    - scsi (KVM)
243
    - sd (KVM)
244
    - mtd (KVM)
245
    - pflash (KVM)
246

    
247

    
248
cdrom\_disk\_type
249
    Valid for the KVM hypervisor.
250

    
251
    This parameter determines the way the cdroms disks are presented
252
    to the instance. The default behavior is to get the same value of
253
    the eariler parameter (disk_type). The possible options are:
254

    
255
    - paravirtual
256
    - ide
257
    - scsi
258
    - sd
259
    - mtd
260
    - pflash
261

    
262

    
263
vnc\_bind\_address
264
    Valid for the Xen HVM and KVM hypervisors.
265

    
266
    Specifies the address that the VNC listener for this instance
267
    should bind to. Valid values are IPv4 addresses. Use the address
268
    0.0.0.0 to bind to all available interfaces (this is the default)
269
    or specify the address of one of the interfaces on the node to
270
    restrict listening to that interface.
271

    
272
vnc\_tls
273
    Valid for the KVM hypervisor.
274

    
275
    A boolean option that controls whether the VNC connection is
276
    secured with TLS.
277

    
278
vnc\_x509\_path
279
    Valid for the KVM hypervisor.
280

    
281
    If ``vnc_tls`` is enabled, this options specifies the path to the
282
    x509 certificate to use.
283

    
284
vnc\_x509\_verify
285
    Valid for the KVM hypervisor.
286

    
287
spice\_bind
288
    Valid for the KVM hypervisor.
289

    
290
    Specifies the address or interface on which the SPICE server will
291
    listen. Valid values are:
292

    
293
    - IPv4 addresses, including 0.0.0.0 and 127.0.0.1
294
    - IPv6 addresses, including :: and ::1
295
    - names of network interfaces
296

    
297
    If a network interface is specified, the SPICE server will be bound
298
    to one of the addresses of that interface.
299

    
300
spice\_ip\_version
301
    Valid for the KVM hypervisor.
302

    
303
    Specifies which version of the IP protocol should be used by the
304
    SPICE server.
305

    
306
    It is mainly intended to be used for specifying what kind of IP
307
    addresses should be used if a network interface with both IPv4 and
308
    IPv6 addresses is specified via the ``spice_bind`` parameter. In
309
    this case, if the ``spice_ip_version`` parameter is not used, the
310
    default IP version of the cluster will be used.
311

    
312
spice\_password\_file
313
    Valid for the KVM hypervisor.
314

    
315
    Specifies a file containing the password that must be used when
316
    connecting via the SPICE protocol. If the option is not specified,
317
    passwordless connections are allowed.
318

    
319
spice\_image\_compression
320
    Valid for the KVM hypervisor.
321

    
322
    Configures the SPICE lossless image compression. Valid values are:
323

    
324
    - auto_glz
325
    - auto_lz
326
    - quic
327
    - glz
328
    - lz
329
    - off
330

    
331
spice\_jpeg\_wan\_compression
332
    Valid for the KVM hypervisor.
333

    
334
    Configures how SPICE should use the jpeg algorithm for lossy image
335
    compression on slow links. Valid values are:
336

    
337
    - auto
338
    - never
339
    - always
340

    
341
spice\_zlib\_glz\_wan\_compression
342
    Valid for the KVM hypervisor.
343

    
344
    Configures how SPICE should use the zlib-glz algorithm for lossy image
345
    compression on slow links. Valid values are:
346

    
347
    - auto
348
    - never
349
    - always
350

    
351
spice\_streaming\_video
352
    Valid for the KVM hypervisor.
353

    
354
    Configures how SPICE should detect video streams. Valid values are:
355

    
356
    - off
357
    - all
358
    - filter
359

    
360
spice\_playback\_compression
361
    Valid for the KVM hypervisor.
362

    
363
    Configures whether SPICE should compress audio streams or not.
364

    
365
spice\_use\_tls
366
    Valid for the KVM hypervisor.
367

    
368
    Specifies that the SPICE server must use TLS to encrypt all the
369
    traffic with the client.
370

    
371
spice\_tls\_ciphers
372
    Valid for the KVM hypervisor.
373

    
374
    Specifies a list of comma-separated ciphers that SPICE should use
375
    for TLS connections. For the format, see man cipher(1).
376

    
377
spice\_use\_vdagent
378
    Valid for the KVM hypervisor.
379

    
380
    Enables or disables passing mouse events via SPICE vdagent.
381

    
382
acpi
383
    Valid for the Xen HVM and KVM hypervisors.
384

    
385
    A boolean option that specifies if the hypervisor should enable
386
    ACPI support for this instance. By default, ACPI is disabled.
387

    
388
pae
389
    Valid for the Xen HVM and KVM hypervisors.
390

    
391
    A boolean option that specifies if the hypervisor should enabled
392
    PAE support for this instance. The default is false, disabling PAE
393
    support.
394

    
395
use\_localtime
396
    Valid for the Xen HVM and KVM hypervisors.
397

    
398
    A boolean option that specifies if the instance should be started
399
    with its clock set to the localtime of the machine (when true) or
400
    to the UTC (When false). The default is false, which is useful for
401
    Linux/Unix machines; for Windows OSes, it is recommended to enable
402
    this parameter.
403

    
404
kernel\_path
405
    Valid for the Xen PVM and KVM hypervisors.
406

    
407
    This option specifies the path (on the node) to the kernel to boot
408
    the instance with. Xen PVM instances always require this, while
409
    for KVM if this option is empty, it will cause the machine to load
410
    the kernel from its disks.
411

    
412
kernel\_args
413
    Valid for the Xen PVM and KVM hypervisors.
414

    
415
    This options specifies extra arguments to the kernel that will be
416
    loaded. device. This is always used for Xen PVM, while for KVM it
417
    is only used if the ``kernel_path`` option is also specified.
418

    
419
    The default setting for this value is simply ``"ro"``, which
420
    mounts the root disk (initially) in read-only one. For example,
421
    setting this to single will cause the instance to start in
422
    single-user mode.
423

    
424
initrd\_path
425
    Valid for the Xen PVM and KVM hypervisors.
426

    
427
    This option specifies the path (on the node) to the initrd to boot
428
    the instance with. Xen PVM instances can use this always, while
429
    for KVM if this option is only used if the ``kernel_path`` option
430
    is also specified. You can pass here either an absolute filename
431
    (the path to the initrd) if you want to use an initrd, or use the
432
    format no\_initrd\_path for no initrd.
433

    
434
root\_path
435
    Valid for the Xen PVM and KVM hypervisors.
436

    
437
    This options specifies the name of the root device. This is always
438
    needed for Xen PVM, while for KVM it is only used if the
439
    ``kernel_path`` option is also specified.
440

    
441
    Please note, that if this setting is an empty string and the
442
    hypervisor is Xen it will not be written to the Xen configuration
443
    file
444

    
445
serial\_console
446
    Valid for the KVM hypervisor.
447

    
448
    This boolean option specifies whether to emulate a serial console
449
    for the instance.
450

    
451
disk\_cache
452
    Valid for the KVM hypervisor.
453

    
454
    The disk cache mode. It can be either default to not pass any
455
    cache option to KVM, or one of the KVM cache modes: none (for
456
    direct I/O), writethrough (to use the host cache but report
457
    completion to the guest only when the host has committed the
458
    changes to disk) or writeback (to use the host cache and report
459
    completion as soon as the data is in the host cache). Note that
460
    there are special considerations for the cache mode depending on
461
    version of KVM used and disk type (always raw file under Ganeti),
462
    please refer to the KVM documentation for more details.
463

    
464
security\_model
465
    Valid for the KVM hypervisor.
466

    
467
    The security model for kvm. Currently one of *none*, *user* or
468
    *pool*. Under *none*, the default, nothing is done and instances
469
    are run as the Ganeti daemon user (normally root).
470

    
471
    Under *user* kvm will drop privileges and become the user
472
    specified by the security\_domain parameter.
473

    
474
    Under *pool* a global cluster pool of users will be used, making
475
    sure no two instances share the same user on the same node. (this
476
    mode is not implemented yet)
477

    
478
security\_domain
479
    Valid for the KVM hypervisor.
480

    
481
    Under security model *user* the username to run the instance
482
    under.  It must be a valid username existing on the host.
483

    
484
    Cannot be set under security model *none* or *pool*.
485

    
486
kvm\_flag
487
    Valid for the KVM hypervisor.
488

    
489
    If *enabled* the -enable-kvm flag is passed to kvm. If *disabled*
490
    -disable-kvm is passed. If unset no flag is passed, and the
491
    default running mode for your kvm binary will be used.
492

    
493
mem\_path
494
    Valid for the KVM hypervisor.
495

    
496
    This option passes the -mem-path argument to kvm with the path (on
497
    the node) to the mount point of the hugetlbfs file system, along
498
    with the -mem-prealloc argument too.
499

    
500
use\_chroot
501
    Valid for the KVM hypervisor.
502

    
503
    This boolean option determines wether to run the KVM instance in a
504
    chroot directory.
505

    
506
    If it is set to ``true``, an empty directory is created before
507
    starting the instance and its path is passed via the -chroot flag
508
    to kvm. The directory is removed when the instance is stopped.
509

    
510
    It is set to ``false`` by default.
511

    
512
migration\_downtime
513
    Valid for the KVM hypervisor.
514

    
515
    The maximum amount of time (in ms) a KVM instance is allowed to be
516
    frozen during a live migration, in order to copy dirty memory
517
    pages. Default value is 30ms, but you may need to increase this
518
    value for busy instances.
519

    
520
    This option is only effective with kvm versions >= 87 and qemu-kvm
521
    versions >= 0.11.0.
522

    
523
cpu\_mask
524
    Valid for the LXC hypervisor.
525

    
526
    The processes belonging to the given instance are only scheduled
527
    on the specified CPUs.
528

    
529
    The parameter format is a comma-separated list of CPU IDs or CPU
530
    ID ranges. The ranges are defined by a lower and higher boundary,
531
    separated by a dash. The boundaries are inclusive.
532

    
533
usb\_mouse
534
    Valid for the KVM hypervisor.
535

    
536
    This option specifies the usb mouse type to be used. It can be
537
    "mouse" or "tablet". When using VNC it's recommended to set it to
538
    "tablet".
539

    
540
keymap
541
    Valid for the KVM hypervisor.
542

    
543
    This option specifies the keyboard mapping to be used. It is only
544
    needed when using the VNC console. For example: "fr" or "en-gb".
545

    
546
reboot\_behavior
547
    Valid for Xen PVM, Xen HVM and KVM hypervisors.
548

    
549
    Normally if an instance reboots, the hypervisor will restart it. If
550
    this option is set to ``exit``, the hypervisor will treat a reboot
551
    as a shutdown instead.
552

    
553
    It is set to ``reboot`` by default.
554

    
555

    
556
The ``-O (--os-parameters)`` option allows customisation of the OS
557
parameters. The actual parameter names and values depends on the OS
558
being used, but the syntax is the same key=value. For example, setting
559
a hypothetical ``dhcp`` parameter to yes can be achieved by::
560

    
561
    gnt-instance add -O dhcp=yes ...
562

    
563
The ``-I (--iallocator)`` option specifies the instance allocator
564
plugin to use. If you pass in this option the allocator will select
565
nodes for this instance automatically, so you don't need to pass them
566
with the ``-n`` option. For more information please refer to the
567
instance allocator documentation.
568

    
569
The ``-t (--disk-template)`` options specifies the disk layout type
570
for the instance.  The available choices are:
571

    
572
diskless
573
    This creates an instance with no disks. Its useful for testing only
574
    (or other special cases).
575

    
576
file
577
    Disk devices will be regular files.
578

    
579
plain
580
    Disk devices will be logical volumes.
581

    
582
drbd
583
    Disk devices will be drbd (version 8.x) on top of lvm volumes.
584

    
585

    
586
The optional second value of the ``-n (--node)`` is used for the drbd
587
template type and specifies the remote node.
588

    
589
If you do not want gnt-instance to wait for the disk mirror to be
590
synced, use the ``--no-wait-for-sync`` option.
591

    
592
The ``--file-storage-dir`` specifies the relative path under the
593
cluster-wide file storage directory to store file-based disks. It is
594
useful for having different subdirectories for different
595
instances. The full path of the directory where the disk files are
596
stored will consist of cluster-wide file storage directory + optional
597
subdirectory + instance name. Example:
598
``@RPL_FILE_STORAGE_DIR@``*/mysubdir/instance1.example.com*. This
599
option is only relevant for instances using the file storage backend.
600

    
601
The ``--file-driver`` specifies the driver to use for file-based
602
disks. Note that currently these drivers work with the xen hypervisor
603
only. This option is only relevant for instances using the file
604
storage backend. The available choices are:
605

    
606
loop
607
    Kernel loopback driver. This driver uses loopback devices to
608
    access the filesystem within the file. However, running I/O
609
    intensive applications in your instance using the loop driver
610
    might result in slowdowns. Furthermore, if you use the loopback
611
    driver consider increasing the maximum amount of loopback devices
612
    (on most systems it's 8) using the max\_loop param.
613

    
614
blktap
615
    The blktap driver (for Xen hypervisors). In order to be able to
616
    use the blktap driver you should check if the 'blktapctrl' user
617
    space disk agent is running (usually automatically started via
618
    xend).  This user-level disk I/O interface has the advantage of
619
    better performance. Especially if you use a network file system
620
    (e.g. NFS) to store your instances this is the recommended choice.
621

    
622

    
623
The ``--submit`` option is used to send the job to the master daemon
624
but not wait for its completion. The job ID will be shown so that it
625
can be examined via **gnt-job info**.
626

    
627
Example::
628

    
629
    # gnt-instance add -t file --disk 0:size=30g -B maxmem=512 -o debian-etch \
630
      -n node1.example.com --file-storage-dir=mysubdir instance1.example.com
631
    # gnt-instance add -t plain --disk 0:size=30g -B maxmem=1024,minmem=512 \
632
      -o debian-etch -n node1.example.com instance1.example.com
633
    # gnt-instance add -t plain --disk 0:size=30g --disk 1:size=100g,vg=san \
634
      -B maxmem=512 -o debian-etch -n node1.example.com instance1.example.com
635
    # gnt-instance add -t drbd --disk 0:size=30g -B maxmem=512 -o debian-etch \
636
      -n node1.example.com:node2.example.com instance2.example.com
637

    
638

    
639
BATCH-CREATE
640
^^^^^^^^^^^^
641

    
642
**batch-create** {instances\_file.json}
643

    
644
This command (similar to the Ganeti 1.2 **batcher** tool) submits
645
multiple instance creation jobs based on a definition file. The
646
instance configurations do not encompass all the possible options for
647
the **add** command, but only a subset.
648

    
649
The instance file should be a valid-formed JSON file, containing a
650
dictionary with instance name and instance parameters. The accepted
651
parameters are:
652

    
653
disk\_size
654
    The size of the disks of the instance.
655

    
656
disk\_template
657
    The disk template to use for the instance, the same as in the
658
    **add** command.
659

    
660
backend
661
    A dictionary of backend parameters.
662

    
663
hypervisor
664
    A dictionary with a single key (the hypervisor name), and as value
665
    the hypervisor options. If not passed, the default hypervisor and
666
    hypervisor options will be inherited.
667

    
668
mac, ip, mode, link
669
    Specifications for the one NIC that will be created for the
670
    instance. 'bridge' is also accepted as a backwards compatibile
671
    key.
672

    
673
nics
674
    List of nics that will be created for the instance. Each entry
675
    should be a dict, with mac, ip, mode and link as possible keys.
676
    Please don't provide the "mac, ip, mode, link" parent keys if you
677
    use this method for specifying nics.
678

    
679
primary\_node, secondary\_node
680
    The primary and optionally the secondary node to use for the
681
    instance (in case an iallocator script is not used).
682

    
683
iallocator
684
    Instead of specifying the nodes, an iallocator script can be used
685
    to automatically compute them.
686

    
687
start
688
    whether to start the instance
689

    
690
ip\_check
691
    Skip the check for already-in-use instance; see the description in
692
    the **add** command for details.
693

    
694
name\_check
695
    Skip the name check for instances; see the description in the
696
    **add** command for details.
697

    
698
file\_storage\_dir, file\_driver
699
    Configuration for the file disk type, see the **add** command for
700
    details.
701

    
702

    
703
A simple definition for one instance can be (with most of the
704
parameters taken from the cluster defaults)::
705

    
706
    {
707
      "instance3": {
708
        "template": "drbd",
709
        "os": "debootstrap",
710
        "disk_size": ["25G"],
711
        "iallocator": "dumb"
712
      },
713
      "instance5": {
714
        "template": "drbd",
715
        "os": "debootstrap",
716
        "disk_size": ["25G"],
717
        "iallocator": "dumb",
718
        "hypervisor": "xen-hvm",
719
        "hvparams": {"acpi": true},
720
        "backend": {"maxmem": 512, "minmem": 256}
721
      }
722
    }
723

    
724
The command will display the job id for each submitted instance, as
725
follows::
726

    
727
    # gnt-instance batch-create instances.json
728
    instance3: 11224
729
    instance5: 11225
730

    
731
REMOVE
732
^^^^^^
733

    
734
**remove** [--ignore-failures] [--shutdown-timeout=*N*] [--submit]
735
[--force] {*instance*}
736

    
737
Remove an instance. This will remove all data from the instance and
738
there is *no way back*. If you are not sure if you use an instance
739
again, use **shutdown** first and leave it in the shutdown state for a
740
while.
741

    
742
The ``--ignore-failures`` option will cause the removal to proceed
743
even in the presence of errors during the removal of the instance
744
(e.g. during the shutdown or the disk removal). If this option is not
745
given, the command will stop at the first error.
746

    
747
The ``--shutdown-timeout`` is used to specify how much time to wait
748
before forcing the shutdown (e.g. ``xm destroy`` in Xen, killing the
749
kvm process for KVM, etc.). By default two minutes are given to each
750
instance to stop.
751

    
752
The ``--submit`` option is used to send the job to the master daemon
753
but not wait for its completion. The job ID will be shown so that it
754
can be examined via **gnt-job info**.
755

    
756
The ``--force`` option is used to skip the interactive confirmation.
757

    
758
Example::
759

    
760
    # gnt-instance remove instance1.example.com
761

    
762

    
763
LIST
764
^^^^
765

    
766
| **list**
767
| [--no-headers] [--separator=*SEPARATOR*] [--units=*UNITS*] [-v]
768
| [{-o|--output} *[+]FIELD,...*] [--filter] [instance...]
769

    
770
Shows the currently configured instances with memory usage, disk
771
usage, the node they are running on, and their run status.
772

    
773
The ``--no-headers`` option will skip the initial header line. The
774
``--separator`` option takes an argument which denotes what will be
775
used between the output fields. Both these options are to help
776
scripting.
777

    
778
The units used to display the numeric values in the output varies,
779
depending on the options given. By default, the values will be
780
formatted in the most appropriate unit. If the ``--separator`` option
781
is given, then the values are shown in mebibytes to allow parsing by
782
scripts. In both cases, the ``--units`` option can be used to enforce
783
a given output unit.
784

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

    
788
The ``-o (--output)`` option takes a comma-separated list of output
789
fields. The available fields and their meaning are:
790

    
791
@QUERY_FIELDS_INSTANCE@
792

    
793
If the value of the option starts with the character ``+``, the new
794
field(s) will be added to the default list. This allows one to quickly
795
see the default list plus a few other fields, instead of retyping the
796
entire list of fields.
797

    
798
There is a subtle grouping about the available output fields: all
799
fields except for ``oper_state``, ``oper_ram``, ``oper_vcpus`` and
800
``status`` are configuration value and not run-time values. So if you
801
don't select any of the these fields, the query will be satisfied
802
instantly from the cluster configuration, without having to ask the
803
remote nodes for the data. This can be helpful for big clusters when
804
you only want some data and it makes sense to specify a reduced set of
805
output fields.
806

    
807
If exactly one argument is given and it appears to be a query filter
808
(see **ganeti(7)**), the query result is filtered accordingly. For
809
ambiguous cases (e.g. a single field name as a filter) the ``--filter``
810
(``-F``) option forces the argument to be treated as a filter (e.g.
811
``gnt-instance list -F admin_state``).
812

    
813
The default output field list is: ``name``, ``os``, ``pnode``,
814
``admin_state``, ``oper_state``, ``oper_ram``.
815

    
816

    
817
LIST-FIELDS
818
~~~~~~~~~~~
819

    
820
**list-fields** [field...]
821

    
822
Lists available fields for instances.
823

    
824

    
825
INFO
826
^^^^
827

    
828
**info** [-s \| --static] [--roman] {--all \| *instance*}
829

    
830
Show detailed information about the given instance(s). This is
831
different from **list** as it shows detailed data about the instance's
832
disks (especially useful for the drbd disk template).
833

    
834
If the option ``-s`` is used, only information available in the
835
configuration file is returned, without querying nodes, making the
836
operation faster.
837

    
838
Use the ``--all`` to get info about all instances, rather than
839
explicitly passing the ones you're interested in.
840

    
841
The ``--roman`` option can be used to cause envy among people who like
842
ancient cultures, but are stuck with non-latin-friendly cluster
843
virtualization technologies.
844

    
845
MODIFY
846
^^^^^^
847

    
848
| **modify**
849
| [{-H|--hypervisor-parameters} *HYPERVISOR\_PARAMETERS*]
850
| [{-B|--backend-parameters} *BACKEND\_PARAMETERS*]
851
| [--net add*[:options]* \| --net remove \| --net *N:options*]
852
| [--disk add:size=*SIZE*[,vg=*VG*][,metavg=*VG*] \| --disk remove \|
853
|  --disk *N*:mode=*MODE*]
854
| [{-t|--disk-template} plain | {-t|--disk-template} drbd -n *new_secondary*] [--no-wait-for-sync]
855
| [--os-type=*OS* [--force-variant]]
856
| [{-O|--os-parameters} *param*=*value*... ]
857
| [--offline \| --online]
858
| [--submit]
859
| {*instance*}
860

    
861
Modifies the memory size, number of vcpus, ip address, MAC address
862
and/or nic parameters for an instance. It can also add and remove
863
disks and NICs to/from the instance. Note that you need to give at
864
least one of the arguments, otherwise the command complains.
865

    
866
The ``-H (--hypervisor-parameters)``, ``-B (--backend-parameters)``
867
and ``-O (--os-parameters)`` options specifies hypervisor, backend and
868
OS parameter options in the form of name=value[,...]. For details
869
which options can be specified, see the **add** command.
870

    
871
The ``-t (--disk-template)`` option will change the disk template of
872
the instance.  Currently only conversions between the plain and drbd
873
disk templates are supported, and the instance must be stopped before
874
attempting the conversion. When changing from the plain to the drbd
875
disk template, a new secondary node must be specified via the ``-n``
876
option. The option ``--no-wait-for-sync`` can be used when converting
877
to the ``drbd`` template in order to make the instance available for
878
startup before DRBD has finished resyncing.
879

    
880
The ``--disk add:size=``*SIZE* option adds a disk to the instance. The
881
optional ``vg=``*VG* option specifies LVM volume group other than
882
default vg to create the disk on. For DRBD disks, the ``metavg=``*VG*
883
option specifies the volume group for the metadata device. The
884
``--disk remove`` option will remove the last disk of the
885
instance. The ``--disk`` *N*``:mode=``*MODE* option will change the
886
mode of the Nth disk of the instance between read-only (``ro``) and
887
read-write (``rw``).
888

    
889
The ``--net add:``*options* option will add a new NIC to the
890
instance. The available options are the same as in the **add** command
891
(mac, ip, link, mode). The ``--net remove`` will remove the last NIC
892
of the instance, while the ``--net`` *N*:*options* option will change
893
the parameters of the Nth instance NIC.
894

    
895
The option ``-o (--os-type)`` will change the OS name for the instance
896
(without reinstallation). In case an OS variant is specified that is
897
not found, then by default the modification is refused, unless
898
``--force-variant`` is passed. An invalid OS will also be refused,
899
unless the ``--force`` option is given.
900

    
901
The ``--online`` and ``--offline`` options are used to transition an
902
instance into and out of the ``offline`` state. An instance can be
903
turned offline only if it was previously down. The ``--online`` option
904
fails if the instance was not in the ``offline`` state, otherwise it
905
changes instance's state to ``down``. These modifications take effect
906
immediately.
907

    
908
The ``--submit`` option is used to send the job to the master daemon
909
but not wait for its completion. The job ID will be shown so that it
910
can be examined via **gnt-job info**.
911

    
912
Most of the changes take effect at the next restart. If the instance is
913
running, there is no effect on the instance.
914

    
915
REINSTALL
916
^^^^^^^^^
917

    
918
| **reinstall** [{-o|--os-type} *os-type*] [--select-os] [-f *force*]
919
| [--force-multiple]
920
| [--instance \| --node \| --primary \| --secondary \| --all]
921
| [{-O|--os-parameters} *OS\_PARAMETERS*] [--submit] {*instance*...}
922

    
923
Reinstalls the operating system on the given instance(s). The
924
instance(s) must be stopped when running this command. If the ``-o
925
(--os-type)`` is specified, the operating system is changed.
926

    
927
The ``--select-os`` option switches to an interactive OS reinstall.
928
The user is prompted to select the OS template from the list of
929
available OS templates. OS parameters can be overridden using ``-O
930
(--os-parameters)`` (more documentation for this option under the
931
**add** command).
932

    
933
Since this is a potentially dangerous command, the user will be
934
required to confirm this action, unless the ``-f`` flag is passed.
935
When multiple instances are selected (either by passing multiple
936
arguments or by using the ``--node``, ``--primary``, ``--secondary``
937
or ``--all`` options), the user must pass the ``--force-multiple``
938
options to skip the interactive confirmation.
939

    
940
The ``--submit`` option is used to send the job to the master daemon
941
but not wait for its completion. The job ID will be shown so that it
942
can be examined via **gnt-job info**.
943

    
944
RENAME
945
^^^^^^
946

    
947
| **rename** [--no-ip-check] [--no-name-check] [--submit]
948
| {*instance*} {*new\_name*}
949

    
950
Renames the given instance. The instance must be stopped when running
951
this command. The requirements for the new name are the same as for
952
adding an instance: the new name must be resolvable and the IP it
953
resolves to must not be reachable (in order to prevent duplicate IPs
954
the next time the instance is started). The IP test can be skipped if
955
the ``--no-ip-check`` option is passed.
956

    
957
The ``--no-name-check`` skips the check for the new instance name via
958
the resolver (e.g. in DNS or /etc/hosts, depending on your setup) and
959
that the resolved name matches the provided name. Since the name check
960
is used to compute the IP address, if you pass this option you must also
961
pass the ``--no-ip-check`` option.
962

    
963
The ``--submit`` option is used to send the job to the master daemon
964
but not wait for its completion. The job ID will be shown so that it
965
can be examined via **gnt-job info**.
966

    
967
Starting/stopping/connecting to console
968
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
969

    
970
STARTUP
971
^^^^^^^
972

    
973
| **startup**
974
| [--force] [--ignore-offline]
975
| [--force-multiple] [--no-remember]
976
| [--instance \| --node \| --primary \| --secondary \| --all \|
977
| --tags \| --node-tags \| --pri-node-tags \| --sec-node-tags]
978
| [{-H|--hypervisor-parameters} ``key=value...``]
979
| [{-B|--backend-parameters} ``key=value...``]
980
| [--submit] [--paused]
981
| {*name*...}
982

    
983
Starts one or more instances, depending on the following options.  The
984
four available modes are:
985

    
986
--instance
987
    will start the instances given as arguments (at least one argument
988
    required); this is the default selection
989

    
990
--node
991
    will start the instances who have the given node as either primary
992
    or secondary
993

    
994
--primary
995
    will start all instances whose primary node is in the list of nodes
996
    passed as arguments (at least one node required)
997

    
998
--secondary
999
    will start all instances whose secondary node is in the list of
1000
    nodes passed as arguments (at least one node required)
1001

    
1002
--all
1003
    will start all instances in the cluster (no arguments accepted)
1004

    
1005
--tags
1006
    will start all instances in the cluster with the tags given as
1007
    arguments
1008

    
1009
--node-tags
1010
    will start all instances in the cluster on nodes with the tags
1011
    given as arguments
1012

    
1013
--pri-node-tags
1014
    will start all instances in the cluster on primary nodes with the
1015
    tags given as arguments
1016

    
1017
--sec-node-tags
1018
    will start all instances in the cluster on secondary nodes with the
1019
    tags given as arguments
1020

    
1021
Note that although you can pass more than one selection option, the
1022
last one wins, so in order to guarantee the desired result, don't pass
1023
more than one such option.
1024

    
1025
Use ``--force`` to start even if secondary disks are failing.
1026
``--ignore-offline`` can be used to ignore offline primary nodes and
1027
mark the instance as started even if the primary is not available.
1028

    
1029
The ``--force-multiple`` will skip the interactive confirmation in the
1030
case the more than one instance will be affected.
1031

    
1032
The ``--no-remember`` option will perform the startup but not change
1033
the state of the instance in the configuration file (if it was stopped
1034
before, Ganeti will still thinks it needs to be stopped). This can be
1035
used for testing, or for a one shot-start where you don't want the
1036
watcher to restart the instance if it crashes.
1037

    
1038
The ``-H (--hypervisor-parameters)`` and ``-B (--backend-parameters)``
1039
options specify temporary hypervisor and backend parameters that can
1040
be used to start an instance with modified parameters. They can be
1041
useful for quick testing without having to modify an instance back and
1042
forth, e.g.::
1043

    
1044
    # gnt-instance start -H kernel_args="single" instance1
1045
    # gnt-instance start -B maxmem=2048 instance2
1046

    
1047

    
1048
The first form will start the instance instance1 in single-user mode,
1049
and the instance instance2 with 2GB of RAM (this time only, unless
1050
that is the actual instance memory size already). Note that the values
1051
override the instance parameters (and not extend them): an instance
1052
with "kernel\_args=ro" when started with -H kernel\_args=single will
1053
result in "single", not "ro single".  The ``--submit`` option is used
1054
to send the job to the master daemon but not wait for its
1055
completion. The job ID will be shown so that it can be examined via
1056
**gnt-job info**.
1057

    
1058
The ``--paused`` option is only valid for Xen and kvm hypervisors.  This
1059
pauses the instance at the start of bootup, awaiting ``gnt-instance
1060
console`` to unpause it, allowing the entire boot process to be
1061
monitored for debugging.
1062

    
1063
Example::
1064

    
1065
    # gnt-instance start instance1.example.com
1066
    # gnt-instance start --node node1.example.com node2.example.com
1067
    # gnt-instance start --all
1068

    
1069

    
1070
SHUTDOWN
1071
^^^^^^^^
1072

    
1073
| **shutdown**
1074
| [--timeout=*N*]
1075
| [--force-multiple] [--ignore-offline] [--no-remember]
1076
| [--instance \| --node \| --primary \| --secondary \| --all \|
1077
| --tags \| --node-tags \| --pri-node-tags \| --sec-node-tags]
1078
| [--submit]
1079
| {*name*...}
1080

    
1081
Stops one or more instances. If the instance cannot be cleanly stopped
1082
during a hardcoded interval (currently 2 minutes), it will forcibly
1083
stop the instance (equivalent to switching off the power on a physical
1084
machine).
1085

    
1086
The ``--timeout`` is used to specify how much time to wait before
1087
forcing the shutdown (e.g. ``xm destroy`` in Xen, killing the kvm
1088
process for KVM, etc.). By default two minutes are given to each
1089
instance to stop.
1090

    
1091
The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1092
``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1093
``--sec-node-tags`` options are similar as for the **startup** command
1094
and they influence the actual instances being shutdown.
1095

    
1096
The ``--submit`` option is used to send the job to the master daemon
1097
but not wait for its completion. The job ID will be shown so that it
1098
can be examined via **gnt-job info**.
1099

    
1100
``--ignore-offline`` can be used to ignore offline primary nodes and
1101
force the instance to be marked as stopped. This option should be used
1102
with care as it can lead to an inconsistent cluster state.
1103

    
1104
The ``--no-remember`` option will perform the shutdown but not change
1105
the state of the instance in the configuration file (if it was running
1106
before, Ganeti will still thinks it needs to be running). This can be
1107
useful for a cluster-wide shutdown, where some instances are marked as
1108
up and some as down, and you don't want to change the running state:
1109
you just need to disable the watcher, shutdown all instances with
1110
``--no-remember``, and when the watcher is activated again it will
1111
restore the correct runtime state for all instances.
1112

    
1113
Example::
1114

    
1115
    # gnt-instance shutdown instance1.example.com
1116
    # gnt-instance shutdown --all
1117

    
1118

    
1119
REBOOT
1120
^^^^^^
1121

    
1122
| **reboot**
1123
| [{-t|--type} *REBOOT-TYPE*]
1124
| [--ignore-secondaries]
1125
| [--shutdown-timeout=*N*]
1126
| [--force-multiple]
1127
| [--instance \| --node \| --primary \| --secondary \| --all \|
1128
| --tags \| --node-tags \| --pri-node-tags \| --sec-node-tags]
1129
| [--submit]
1130
| [*name*...]
1131

    
1132
Reboots one or more instances. The type of reboot depends on the value
1133
of ``-t (--type)``. A soft reboot does a hypervisor reboot, a hard reboot
1134
does a instance stop, recreates the hypervisor config for the instance
1135
and starts the instance. A full reboot does the equivalent of
1136
**gnt-instance shutdown && gnt-instance startup**.  The default is
1137
hard reboot.
1138

    
1139
For the hard reboot the option ``--ignore-secondaries`` ignores errors
1140
for the secondary node while re-assembling the instance disks.
1141

    
1142
The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1143
``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1144
``--sec-node-tags`` options are similar as for the **startup** command
1145
and they influence the actual instances being rebooted.
1146

    
1147
The ``--shutdown-timeout`` is used to specify how much time to wait
1148
before forcing the shutdown (xm destroy in xen, killing the kvm
1149
process, for kvm). By default two minutes are given to each instance
1150
to stop.
1151

    
1152
The ``--force-multiple`` will skip the interactive confirmation in the
1153
case the more than one instance will be affected.
1154

    
1155
Example::
1156

    
1157
    # gnt-instance reboot instance1.example.com
1158
    # gnt-instance reboot --type=full instance1.example.com
1159

    
1160

    
1161
CONSOLE
1162
^^^^^^^
1163

    
1164
**console** [--show-cmd] {*instance*}
1165

    
1166
Connects to the console of the given instance. If the instance is not
1167
up, an error is returned. Use the ``--show-cmd`` option to display the
1168
command instead of executing it.
1169

    
1170
For HVM instances, this will attempt to connect to the serial console
1171
of the instance. To connect to the virtualized "physical" console of a
1172
HVM instance, use a VNC client with the connection info from the
1173
**info** command.
1174

    
1175
For Xen/kvm instances, if the instance is paused, this attempts to
1176
unpause the instance after waiting a few seconds for the connection to
1177
the console to be made.
1178

    
1179
Example::
1180

    
1181
    # gnt-instance console instance1.example.com
1182

    
1183

    
1184
Disk management
1185
~~~~~~~~~~~~~~~
1186

    
1187
REPLACE-DISKS
1188
^^^^^^^^^^^^^
1189

    
1190
**replace-disks** [--submit] [--early-release] {-p} [--disks *idx*]
1191
{*instance*}
1192

    
1193
**replace-disks** [--submit] [--early-release] {-s} [--disks *idx*]
1194
{*instance*}
1195

    
1196
**replace-disks** [--submit] [--early-release] {--iallocator *name*
1197
\| --new-secondary *NODE*} {*instance*}
1198

    
1199
**replace-disks** [--submit] [--early-release] {--auto}
1200
{*instance*}
1201

    
1202
This command is a generalized form for replacing disks. It is
1203
currently only valid for the mirrored (DRBD) disk template.
1204

    
1205
The first form (when passing the ``-p`` option) will replace the disks
1206
on the primary, while the second form (when passing the ``-s`` option
1207
will replace the disks on the secondary node. For these two cases (as
1208
the node doesn't change), it is possible to only run the replace for a
1209
subset of the disks, using the option ``--disks`` which takes a list
1210
of comma-delimited disk indices (zero-based), e.g. 0,2 to replace only
1211
the first and third disks.
1212

    
1213
The third form (when passing either the ``--iallocator`` or the
1214
``--new-secondary`` option) is designed to change secondary node of
1215
the instance. Specifying ``--iallocator`` makes the new secondary be
1216
selected automatically by the specified allocator plugin, otherwise
1217
the new secondary node will be the one chosen manually via the
1218
``--new-secondary`` option.
1219

    
1220
The fourth form (when using ``--auto``) will automatically determine
1221
which disks of an instance are faulty and replace them within the same
1222
node. The ``--auto`` option works only when an instance has only
1223
faulty disks on either the primary or secondary node; it doesn't work
1224
when both sides have faulty disks.
1225

    
1226
The ``--submit`` option is used to send the job to the master daemon
1227
but not wait for its completion. The job ID will be shown so that it
1228
can be examined via **gnt-job info**.
1229

    
1230
The ``--early-release`` changes the code so that the old storage on
1231
secondary node(s) is removed early (before the resync is completed)
1232
and the internal Ganeti locks for the current (and new, if any)
1233
secondary node are also released, thus allowing more parallelism in
1234
the cluster operation. This should be used only when recovering from a
1235
disk failure on the current secondary (thus the old storage is already
1236
broken) or when the storage on the primary node is known to be fine
1237
(thus we won't need the old storage for potential recovery).
1238

    
1239
Note that it is not possible to select an offline or drained node as a
1240
new secondary.
1241

    
1242
ACTIVATE-DISKS
1243
^^^^^^^^^^^^^^
1244

    
1245
**activate-disks** [--submit] [--ignore-size] {*instance*}
1246

    
1247
Activates the block devices of the given instance. If successful, the
1248
command will show the location and name of the block devices::
1249

    
1250
    node1.example.com:disk/0:/dev/drbd0
1251
    node1.example.com:disk/1:/dev/drbd1
1252

    
1253

    
1254
In this example, *node1.example.com* is the name of the node on which
1255
the devices have been activated. The *disk/0* and *disk/1* are the
1256
Ganeti-names of the instance disks; how they are visible inside the
1257
instance is hypervisor-specific. */dev/drbd0* and */dev/drbd1* are the
1258
actual block devices as visible on the node.  The ``--submit`` option
1259
is used to send the job to the master daemon but not wait for its
1260
completion. The job ID will be shown so that it can be examined via
1261
**gnt-job info**.
1262

    
1263
The ``--ignore-size`` option can be used to activate disks ignoring
1264
the currently configured size in Ganeti. This can be used in cases
1265
where the configuration has gotten out of sync with the real-world
1266
(e.g. after a partially-failed grow-disk operation or due to rounding
1267
in LVM devices). This should not be used in normal cases, but only
1268
when activate-disks fails without it.
1269

    
1270
Note that it is safe to run this command while the instance is already
1271
running.
1272

    
1273
DEACTIVATE-DISKS
1274
^^^^^^^^^^^^^^^^
1275

    
1276
**deactivate-disks** [-f] [--submit] {*instance*}
1277

    
1278
De-activates the block devices of the given instance. Note that if you
1279
run this command for an instance with a drbd disk template, while it
1280
is running, it will not be able to shutdown the block devices on the
1281
primary node, but it will shutdown the block devices on the secondary
1282
nodes, thus breaking the replication.
1283

    
1284
The ``-f``/``--force`` option will skip checks that the instance is
1285
down; in case the hypervisor is confused and we can't talk to it,
1286
normally Ganeti will refuse to deactivate the disks, but with this
1287
option passed it will skip this check and directly try to deactivate
1288
the disks. This can still fail due to the instance actually running or
1289
other issues.
1290

    
1291
The ``--submit`` option is used to send the job to the master daemon
1292
but not wait for its completion. The job ID will be shown so that it
1293
can be examined via **gnt-job info**.
1294

    
1295
GROW-DISK
1296
^^^^^^^^^
1297

    
1298
**grow-disk** [--no-wait-for-sync] [--submit] {*instance*} {*disk*}
1299
{*amount*}
1300

    
1301
Grows an instance's disk. This is only possible for instances having a
1302
plain or drbd disk template.
1303

    
1304
Note that this command only change the block device size; it will not
1305
grow the actual filesystems, partitions, etc. that live on that
1306
disk. Usually, you will need to:
1307

    
1308
#. use **gnt-instance grow-disk**
1309

    
1310
#. reboot the instance (later, at a convenient time)
1311

    
1312
#. use a filesystem resizer, such as ext2online(8) or
1313
   xfs\_growfs(8) to resize the filesystem, or use fdisk(8) to change
1314
   the partition table on the disk
1315

    
1316
The *disk* argument is the index of the instance disk to grow. The
1317
*amount* argument is given either as a number (and it represents the
1318
amount to increase the disk with in mebibytes) or can be given similar
1319
to the arguments in the create instance operation, with a suffix
1320
denoting the unit.
1321

    
1322
Note that the disk grow operation might complete on one node but fail
1323
on the other; this will leave the instance with different-sized LVs on
1324
the two nodes, but this will not create problems (except for unused
1325
space).
1326

    
1327
If you do not want gnt-instance to wait for the new disk region to be
1328
synced, use the ``--no-wait-for-sync`` option.
1329

    
1330
The ``--submit`` option is used to send the job to the master daemon
1331
but not wait for its completion. The job ID will be shown so that it
1332
can be examined via **gnt-job info**.
1333

    
1334
Example (increase the first disk for instance1 by 16GiB)::
1335

    
1336
    # gnt-instance grow-disk instance1.example.com 0 16g
1337

    
1338

    
1339
Also note that disk shrinking is not supported; use **gnt-backup
1340
export** and then **gnt-backup import** to reduce the disk size of an
1341
instance.
1342

    
1343
RECREATE-DISKS
1344
^^^^^^^^^^^^^^
1345

    
1346
**recreate-disks** [--submit] [--disks=``indices``] [-n node1:[node2]]
1347
  {*instance*}
1348

    
1349
Recreates the disks of the given instance, or only a subset of the
1350
disks (if the option ``disks`` is passed, which must be a
1351
comma-separated list of disk indices, starting from zero).
1352

    
1353
Note that this functionality should only be used for missing disks; if
1354
any of the given disks already exists, the operation will fail.  While
1355
this is suboptimal, recreate-disks should hopefully not be needed in
1356
normal operation and as such the impact of this is low.
1357

    
1358
Optionally the instance's disks can be recreated on different
1359
nodes. This can be useful if, for example, the original nodes of the
1360
instance have gone down (and are marked offline), so we can't recreate
1361
on the same nodes. To do this, pass the new node(s) via ``-n`` option,
1362
with a syntax similar to the **add** command. The number of nodes
1363
passed must equal the number of nodes that the instance currently
1364
has. Note that changing nodes is only allowed for 'all disk'
1365
replacement (when ``--disks`` is not passed).
1366

    
1367
The ``--submit`` option is used to send the job to the master daemon
1368
but not wait for its completion. The job ID will be shown so that it
1369
can be examined via **gnt-job info**.
1370

    
1371
Recovery
1372
~~~~~~~~
1373

    
1374
FAILOVER
1375
^^^^^^^^
1376

    
1377
**failover** [-f] [--ignore-consistency] [--shutdown-timeout=*N*]
1378
[--submit] {*instance*}
1379

    
1380
Failover will stop the instance (if running), change its primary node,
1381
and if it was originally running it will start it again (on the new
1382
primary). This only works for instances with drbd template (in which
1383
case you can only fail to the secondary node) and for externally
1384
mirrored templates (shared storage) (which can change to any other
1385
node).
1386

    
1387
Normally the failover will check the consistency of the disks before
1388
failing over the instance. If you are trying to migrate instances off
1389
a dead node, this will fail. Use the ``--ignore-consistency`` option
1390
for this purpose. Note that this option can be dangerous as errors in
1391
shutting down the instance will be ignored, resulting in possibly
1392
having the instance running on two machines in parallel (on
1393
disconnected DRBD drives).
1394

    
1395
The ``--shutdown-timeout`` is used to specify how much time to wait
1396
before forcing the shutdown (xm destroy in xen, killing the kvm
1397
process, for kvm). By default two minutes are given to each instance
1398
to stop.
1399

    
1400
The ``--submit`` option is used to send the job to the master daemon
1401
but not wait for its completion. The job ID will be shown so that it
1402
can be examined via **gnt-job info**.
1403

    
1404
Example::
1405

    
1406
    # gnt-instance failover instance1.example.com
1407

    
1408

    
1409
MIGRATE
1410
^^^^^^^
1411

    
1412
**migrate** [-f] {--cleanup} {*instance*}
1413

    
1414
**migrate** [-f] [--allow-failover] [--non-live]
1415
[--migration-mode=live\|non-live] {*instance*}
1416

    
1417
Migrate will move the instance to its secondary node without
1418
shutdown. It only works for instances having the drbd8 disk template
1419
type.
1420

    
1421
The migration command needs a perfectly healthy instance, as we rely
1422
on the dual-master capability of drbd8 and the disks of the instance
1423
are not allowed to be degraded.
1424

    
1425
The ``--non-live`` and ``--migration-mode=non-live`` options will
1426
switch (for the hypervisors that support it) between a "fully live"
1427
(i.e. the interruption is as minimal as possible) migration and one in
1428
which the instance is frozen, its state saved and transported to the
1429
remote node, and then resumed there. This all depends on the
1430
hypervisor support for two different methods. In any case, it is not
1431
an error to pass this parameter (it will just be ignored if the
1432
hypervisor doesn't support it). The option ``--migration-mode=live``
1433
option will request a fully-live migration. The default, when neither
1434
option is passed, depends on the hypervisor parameters (and can be
1435
viewed with the **gnt-cluster info** command).
1436

    
1437
If the ``--cleanup`` option is passed, the operation changes from
1438
migration to attempting recovery from a failed previous migration.  In
1439
this mode, Ganeti checks if the instance runs on the correct node (and
1440
updates its configuration if not) and ensures the instances's disks
1441
are configured correctly. In this mode, the ``--non-live`` option is
1442
ignored.
1443

    
1444
The option ``-f`` will skip the prompting for confirmation.
1445

    
1446
If ``--allow-failover`` is specified it tries to fallback to failover if
1447
it already can determine that a migration wont work (i.e. if the
1448
instance is shutdown). Please note that the fallback will not happen
1449
during execution. If a migration fails during execution it still fails.
1450

    
1451
Example (and expected output)::
1452

    
1453
    # gnt-instance migrate instance1
1454
    Migrate will happen to the instance instance1. Note that migration is
1455
    **experimental** in this version. This might impact the instance if
1456
    anything goes wrong. Continue?
1457
    y/[n]/?: y
1458
    * checking disk consistency between source and target
1459
    * ensuring the target is in secondary mode
1460
    * changing disks into dual-master mode
1461
     - INFO: Waiting for instance instance1 to sync disks.
1462
     - INFO: Instance instance1's disks are in sync.
1463
    * migrating instance to node2.example.com
1464
    * changing the instance's disks on source node to secondary
1465
     - INFO: Waiting for instance instance1 to sync disks.
1466
     - INFO: Instance instance1's disks are in sync.
1467
    * changing the instance's disks to single-master
1468
    #
1469

    
1470

    
1471
MOVE
1472
^^^^
1473

    
1474
**move** [-f] [--ignore-consistency]
1475
[-n *node*] [--shutdown-timeout=*N*] [--submit]
1476
{*instance*}
1477

    
1478
Move will move the instance to an arbitrary node in the cluster.  This
1479
works only for instances having a plain or file disk template.
1480

    
1481
Note that since this operation is done via data copy, it will take a
1482
long time for big disks (similar to replace-disks for a drbd
1483
instance).
1484

    
1485
The ``--shutdown-timeout`` is used to specify how much time to wait
1486
before forcing the shutdown (e.g. ``xm destroy`` in XEN, killing the
1487
kvm process for KVM, etc.). By default two minutes are given to each
1488
instance to stop.
1489

    
1490
The ``--ignore-consistency`` option will make Ganeti ignore any errors
1491
in trying to shutdown the instance on its node; useful if the
1492
hypervisor is broken and you want to recuperate the data.
1493

    
1494
The ``--submit`` option is used to send the job to the master daemon
1495
but not wait for its completion. The job ID will be shown so that it
1496
can be examined via **gnt-job info**.
1497

    
1498
Example::
1499

    
1500
    # gnt-instance move -n node3.example.com instance1.example.com
1501

    
1502

    
1503
CHANGE-GROUP
1504
~~~~~~~~~~~~
1505

    
1506
**change-group** [--iallocator *NAME*] [--to *GROUP*...] {*instance*}
1507

    
1508
This command moves an instance to another node group. The move is
1509
calculated by an iallocator, either given on the command line or as a
1510
cluster default.
1511

    
1512
If no specific destination groups are specified using ``--to``, all
1513
groups except the one containing the instance are considered.
1514

    
1515
Example::
1516

    
1517
    # gnt-instance change-group -I hail --to rack2 inst1.example.com
1518

    
1519

    
1520
TAGS
1521
~~~~
1522

    
1523
ADD-TAGS
1524
^^^^^^^^
1525

    
1526
**add-tags** [--from *file*] {*instancename*} {*tag*...}
1527

    
1528
Add tags to the given instance. If any of the tags contains invalid
1529
characters, the entire operation will abort.
1530

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

    
1537
LIST-TAGS
1538
^^^^^^^^^
1539

    
1540
**list-tags** {*instancename*}
1541

    
1542
List the tags of the given instance.
1543

    
1544
REMOVE-TAGS
1545
^^^^^^^^^^^
1546

    
1547
**remove-tags** [--from *file*] {*instancename*} {*tag*...}
1548

    
1549
Remove tags from the given instance. If any of the tags are not
1550
existing on the node, the entire operation will abort.
1551

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

    
1558
.. vim: set textwidth=72 :
1559
.. Local Variables:
1560
.. mode: rst
1561
.. fill-column: 72
1562
.. End: