Statistics
| Branch: | Tag: | Revision:

root / man / gnt-instance.rst @ 1a182390

History | View | Annotate | Download (74.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 \| rbd}}
31
| {\--disk=*N*: {size=*VAL*[,spindles=*VAL*] \| adopt=*LV*}[,options...]
32
|  \| {size=*VAL*,provider=*PROVIDER*}[,param=*value*... ][,options...]
33
|  \| {-s|\--os-size} *SIZE*}
34
| [\--no-ip-check] [\--no-name-check] [\--no-conflicts-check]
35
| [\--no-start] [\--no-install]
36
| [\--net=*N* [:options...] \| \--no-nics]
37
| [{-B|\--backend-parameters} *BEPARAMS*]
38
| [{-H|\--hypervisor-parameters} *HYPERVISOR* [: option=*value*... ]]
39
| [{-O|\--os-parameters} *param*=*value*... ]
40
| [\--file-storage-dir *dir\_path*] [\--file-driver {loop \| blktap \| blktap2}]
41
| {{-n|\--node} *node[:secondary-node]* \| {-I|\--iallocator} *name*}
42
| {{-o|\--os-type} *os-type*}
43
| [\--submit] [\--print-job-id]
44
| [\--ignore-ipolicy]
45
| [\--no-wait-for-sync]
46
| [{-c|\--communication=yes|no}]
47
| {*instance*}
48

    
49
Creates a new instance on the specified host. The *instance* argument
50
must be in DNS, but depending on the bridge/routing setup, need not be
51
in the same network as the nodes in the cluster.
52

    
53
The ``disk`` option specifies the parameters for the disks of the
54
instance. The numbering of disks starts at zero, and at least one disk
55
needs to be passed. For each disk, either the size or the adoption
56
source needs to be given. The size is interpreted (when no unit is
57
given) in mebibytes. You can also use one of the suffixes *m*, *g* or
58
*t* to specify the exact the units used; these suffixes map to
59
mebibytes, gibibytes and tebibytes. Each disk can also take these
60
parameters (all optional):
61

    
62
spindles
63
  How many spindles (physical disks on the node) the disk should span.
64

    
65
mode
66
  The access mode. Either ``ro`` (read-only) or the default ``rw``
67
  (read-write).
68

    
69
name
70
   This option specifies a name for the disk, which can be used as a disk
71
   identifier. An instance can not have two disks with the same name.
72

    
73
vg
74
   The LVM volume group. This works only for LVM and DRBD devices.
75

    
76
metavg
77
   This options specifies a different VG for the metadata device. This
78
   works only for DRBD devices
79

    
80
When creating ExtStorage disks, also arbitrary parameters can be passed,
81
to the ExtStorage provider. Those parameters are passed as additional
82
comma separated options. Therefore, an ExtStorage disk provided by
83
provider ``pvdr1`` with parameters ``param1``, ``param2`` would be
84
passed as ``--disk 0:size=10G,provider=pvdr1,param1=val1,param2=val2``.
85

    
86
When using the ``adopt`` key in the disk definition, Ganeti will
87
reuse those volumes (instead of creating new ones) as the
88
instance's disks. Ganeti will rename these volumes to the standard
89
format, and (without installing the OS) will use them as-is for the
90
instance. This allows migrating instances from non-managed mode
91
(e.g. plain KVM with LVM) to being managed via Ganeti. Please note that
92
this works only for the \`plain' disk template (see below for
93
template details).
94

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

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

    
104
The minimum information needed to specify an ExtStorage disk are the
105
``size`` and the ``provider``. For example:
106
``--disk 0:size=20G,provider=pvdr1``.
107

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

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

    
117
If you don't want the instance to automatically start after
118
creation, this is possible via the ``--no-start`` option. This will
119
leave the instance down until a subsequent **gnt-instance start**
120
command.
121

    
122
The NICs of the instances can be specified via the ``--net``
123
option. By default, one NIC is created for the instance, with a
124
random MAC, and set up according the the cluster level NIC
125
parameters. Each NIC can take these parameters (all optional):
126

    
127
mac
128
    either a value or 'generate' to generate a new unique MAC
129

    
130
ip
131
    specifies the IP address assigned to the instance from the Ganeti
132
    side (this is not necessarily what the instance will use, but what
133
    the node expects the instance to use). Note that if an IP in the
134
    range of a network configured with **gnt-network**\(8) is used,
135
    and the NIC is not already connected to it, this network has to be
136
    passed in the **network** parameter if this NIC is meant to be
137
    connected to the said network. ``--no-conflicts-check`` can be used
138
    to override this check. The special value **pool** causes Ganeti to
139
    select an IP from the the network the NIC is or will be connected to.
140
    One can pick an externally reserved IP of a network along with
141
    ``--no-conflict-check``. Note that this IP cannot be assigned to
142
    any other instance until it gets released.
143

    
144
mode
145
    specifies the connection mode for this NIC: routed, bridged or
146
    openvswitch.
147

    
148
link
149
    in bridged or openvswitch mode specifies the interface to attach
150
    this NIC to, in routed mode it's intended to differentiate between
151
    different routing tables/instance groups (but the meaning is
152
    dependent on the network script, see **gnt-cluster**\(8) for more
153
    details). Note that openvswitch support is also hypervisor
154
    dependent.
155

    
156
network
157
    derives the mode and the link from the settings of the network
158
    which is identified by its name. If the network option is chosen,
159
    link and mode must not be specified. Note that the mode and link
160
    depend on the network-to-nodegroup connection, thus allowing
161
    different nodegroups to be connected to the same network in
162
    different ways.
163

    
164
name
165
   this option specifies a name for the NIC, which can be used as a NIC
166
   identifier. An instance can not have two NICs with the same name.
167

    
168
vlan
169
   in openvswitch mode specifies the VLANs that the NIC will be
170
   connected to. To connect as an access port use ``n`` or ``.n`` with
171
   **n** being the VLAN ID. To connect as an trunk port use ``:n[:n]``.
172
   A hybrid port can be created with ``.n:n[:n]``
173

    
174
Of these "mode" and "link" are NIC parameters, and inherit their
175
default at cluster level.  Alternatively, if no network is desired for
176
the instance, you can prevent the default of one NIC with the
177
``--no-nics`` option.
178

    
179
The ``-o (--os-type)`` option specifies the operating system to be
180
installed.  The available operating systems can be listed with
181
**gnt-os list**.  Passing ``--no-install`` will however skip the OS
182
installation, allowing a manual import if so desired. Note that the
183
no-installation mode will automatically disable the start-up of the
184
instance (without an OS, it most likely won't be able to start-up
185
successfully).
186

    
187
The ``-B (--backend-parameters)`` option specifies the backend
188
parameters for the instance. If no such parameters are specified, the
189
values are inherited from the cluster. Possible parameters are:
190

    
191
maxmem
192
    the maximum memory size of the instance; as usual, suffixes can be
193
    used to denote the unit, otherwise the value is taken in mebibytes
194

    
195
minmem
196
    the minimum memory size of the instance; as usual, suffixes can be
197
    used to denote the unit, otherwise the value is taken in mebibytes
198

    
199
vcpus
200
    the number of VCPUs to assign to the instance (if this value makes
201
    sense for the hypervisor)
202

    
203
auto\_balance
204
    whether the instance is considered in the N+1 cluster checks
205
    (enough redundancy in the cluster to survive a node failure)
206

    
207
always\_failover
208
    ``True`` or ``False``, whether the instance must be failed over
209
    (shut down and rebooted) always or it may be migrated (briefly
210
    suspended)
211

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

    
218
The ``-H (--hypervisor-parameters)`` option specified the hypervisor
219
to use for the instance (must be one of the enabled hypervisors on the
220
cluster) and optionally custom parameters for this instance. If not
221
other options are used (i.e. the invocation is just -H *NAME*) the
222
instance will inherit the cluster options. The defaults below show the
223
cluster defaults at cluster creation time.
224

    
225
The possible hypervisor options are as follows:
226

    
227
boot\_order
228
    Valid for the Xen HVM and KVM hypervisors.
229

    
230
    A string value denoting the boot order. This has different meaning
231
    for the Xen HVM hypervisor and for the KVM one.
232

    
233
    For Xen HVM, The boot order is a string of letters listing the boot
234
    devices, with valid device letters being:
235

    
236
    a
237
        floppy drive
238

    
239
    c
240
        hard disk
241

    
242
    d
243
        CDROM drive
244

    
245
    n
246
        network boot (PXE)
247

    
248
    The default is not to set an HVM boot order, which is interpreted
249
    as 'dc'.
250

    
251
    For KVM the boot order is either "floppy", "cdrom", "disk" or
252
    "network".  Please note that older versions of KVM couldn't netboot
253
    from virtio interfaces. This has been fixed in more recent versions
254
    and is confirmed to work at least with qemu-kvm 0.11.1. Also note
255
    that if you have set the ``kernel_path`` option, that will be used
256
    for booting, and this setting will be silently ignored.
257

    
258
blockdev\_prefix
259
    Valid for the Xen HVM and PVM hypervisors.
260

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

    
265
floppy\_image\_path
266
    Valid for the KVM hypervisor.
267

    
268
    The path to a floppy disk image to attach to the instance.  This
269
    is useful to install Windows operating systems on Virt/IO disks
270
    because you can specify here the floppy for the drivers at
271
    installation time.
272

    
273
cdrom\_image\_path
274
    Valid for the Xen HVM and KVM hypervisors.
275

    
276
    The path to a CDROM image to attach to the instance.
277

    
278
cdrom2\_image\_path
279
    Valid for the KVM hypervisor.
280

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

    
285
nic\_type
286
    Valid for the Xen HVM and KVM hypervisors.
287

    
288
    This parameter determines the way the network cards are presented
289
    to the instance. The possible options are:
290

    
291
    - rtl8139 (default for Xen HVM) (HVM & KVM)
292
    - ne2k\_isa (HVM & KVM)
293
    - ne2k\_pci (HVM & KVM)
294
    - i82551 (KVM)
295
    - i82557b (KVM)
296
    - i82559er (KVM)
297
    - pcnet (KVM)
298
    - e1000 (KVM)
299
    - paravirtual (default for KVM) (HVM & KVM)
300

    
301
vif\_type
302
    Valid for the Xen HVM hypervisor.
303

    
304
    This parameter specifies the vif type of the nic configuration
305
    of the instance. Unsetting the value leads to no type being specified
306
    in the configuration. Note that this parameter only takes effect when
307
    the 'nic_type' is not set. The possible options are:
308

    
309
    - ioemu
310
    - vif
311

    
312
disk\_type
313
    Valid for the Xen HVM and KVM hypervisors.
314

    
315
    This parameter determines the way the disks are presented to the
316
    instance. The possible options are:
317

    
318
    - ioemu [default] (HVM & KVM)
319
    - paravirtual (HVM & KVM)
320
    - ide (KVM)
321
    - scsi (KVM)
322
    - sd (KVM)
323
    - mtd (KVM)
324
    - pflash (KVM)
325

    
326

    
327
cdrom\_disk\_type
328
    Valid for the KVM hypervisor.
329

    
330
    This parameter determines the way the cdroms disks are presented
331
    to the instance. The default behavior is to get the same value of
332
    the earlier parameter (disk_type). The possible options are:
333

    
334
    - paravirtual
335
    - ide
336
    - scsi
337
    - sd
338
    - mtd
339
    - pflash
340

    
341

    
342
vnc\_bind\_address
343
    Valid for the Xen HVM and KVM hypervisors.
344

    
345
    Specifies the address that the VNC listener for this instance
346
    should bind to. Valid values are IPv4 addresses. Use the address
347
    0.0.0.0 to bind to all available interfaces (this is the default)
348
    or specify the address of one of the interfaces on the node to
349
    restrict listening to that interface.
350

    
351
vnc\_password\_file
352
    Valid for the Xen HVM and KVM hypervisors.
353

    
354
    Specifies the location of the file containing the password for
355
    connections using VNC. The default is a file named
356
    vnc-cluster-password which can be found in the configuration
357
    directory.
358

    
359
vnc\_tls
360
    Valid for the KVM hypervisor.
361

    
362
    A boolean option that controls whether the VNC connection is
363
    secured with TLS.
364

    
365
vnc\_x509\_path
366
    Valid for the KVM hypervisor.
367

    
368
    If ``vnc_tls`` is enabled, this options specifies the path to the
369
    x509 certificate to use.
370

    
371
vnc\_x509\_verify
372
    Valid for the KVM hypervisor.
373

    
374
spice\_bind
375
    Valid for the KVM hypervisor.
376

    
377
    Specifies the address or interface on which the SPICE server will
378
    listen. Valid values are:
379

    
380
    - IPv4 addresses, including 0.0.0.0 and 127.0.0.1
381
    - IPv6 addresses, including :: and ::1
382
    - names of network interfaces
383

    
384
    If a network interface is specified, the SPICE server will be bound
385
    to one of the addresses of that interface.
386

    
387
spice\_ip\_version
388
    Valid for the KVM hypervisor.
389

    
390
    Specifies which version of the IP protocol should be used by the
391
    SPICE server.
392

    
393
    It is mainly intended to be used for specifying what kind of IP
394
    addresses should be used if a network interface with both IPv4 and
395
    IPv6 addresses is specified via the ``spice_bind`` parameter. In
396
    this case, if the ``spice_ip_version`` parameter is not used, the
397
    default IP version of the cluster will be used.
398

    
399
spice\_password\_file
400
    Valid for the KVM hypervisor.
401

    
402
    Specifies a file containing the password that must be used when
403
    connecting via the SPICE protocol. If the option is not specified,
404
    passwordless connections are allowed.
405

    
406
spice\_image\_compression
407
    Valid for the KVM hypervisor.
408

    
409
    Configures the SPICE lossless image compression. Valid values are:
410

    
411
    - auto_glz
412
    - auto_lz
413
    - quic
414
    - glz
415
    - lz
416
    - off
417

    
418
spice\_jpeg\_wan\_compression
419
    Valid for the KVM hypervisor.
420

    
421
    Configures how SPICE should use the jpeg algorithm for lossy image
422
    compression on slow links. Valid values are:
423

    
424
    - auto
425
    - never
426
    - always
427

    
428
spice\_zlib\_glz\_wan\_compression
429
    Valid for the KVM hypervisor.
430

    
431
    Configures how SPICE should use the zlib-glz algorithm for lossy image
432
    compression on slow links. Valid values are:
433

    
434
    - auto
435
    - never
436
    - always
437

    
438
spice\_streaming\_video
439
    Valid for the KVM hypervisor.
440

    
441
    Configures how SPICE should detect video streams. Valid values are:
442

    
443
    - off
444
    - all
445
    - filter
446

    
447
spice\_playback\_compression
448
    Valid for the KVM hypervisor.
449

    
450
    Configures whether SPICE should compress audio streams or not.
451

    
452
spice\_use\_tls
453
    Valid for the KVM hypervisor.
454

    
455
    Specifies that the SPICE server must use TLS to encrypt all the
456
    traffic with the client.
457

    
458
spice\_tls\_ciphers
459
    Valid for the KVM hypervisor.
460

    
461
    Specifies a list of comma-separated ciphers that SPICE should use
462
    for TLS connections. For the format, see man **cipher**\(1).
463

    
464
spice\_use\_vdagent
465
    Valid for the KVM hypervisor.
466

    
467
    Enables or disables passing mouse events via SPICE vdagent.
468

    
469
cpu\_type
470
    Valid for the KVM hypervisor.
471

    
472
    This parameter determines the emulated cpu for the instance. If this
473
    parameter is empty (which is the default configuration), it will not
474
    be passed to KVM.
475

    
476
    Be aware of setting this parameter to ``"host"`` if you have nodes
477
    with different CPUs from each other. Live migration may stop working
478
    in this situation.
479

    
480
    For more information please refer to the KVM manual.
481

    
482
acpi
483
    Valid for the Xen HVM and KVM hypervisors.
484

    
485
    A boolean option that specifies if the hypervisor should enable
486
    ACPI support for this instance. By default, ACPI is disabled.
487

    
488
    ACPI should be enabled for user shutdown detection.  See
489
    ``user_shutdown``.
490

    
491
pae
492
    Valid for the Xen HVM and KVM hypervisors.
493

    
494
    A boolean option that specifies if the hypervisor should enable
495
    PAE support for this instance. The default is false, disabling PAE
496
    support.
497

    
498
viridian
499
    Valid for the Xen HVM hypervisor.
500

    
501
    A boolean option that specifies if the hypervisor should enable
502
    viridian (Hyper-V) for this instance. The default is false,
503
    disabling viridian support.
504

    
505
use\_localtime
506
    Valid for the Xen HVM and KVM hypervisors.
507

    
508
    A boolean option that specifies if the instance should be started
509
    with its clock set to the localtime of the machine (when true) or
510
    to the UTC (When false). The default is false, which is useful for
511
    Linux/Unix machines; for Windows OSes, it is recommended to enable
512
    this parameter.
513

    
514
kernel\_path
515
    Valid for the Xen PVM and KVM hypervisors.
516

    
517
    This option specifies the path (on the node) to the kernel to boot
518
    the instance with. Xen PVM instances always require this, while for
519
    KVM if this option is empty, it will cause the machine to load the
520
    kernel from its disks (and the boot will be done accordingly to
521
    ``boot_order``).
522

    
523
kernel\_args
524
    Valid for the Xen PVM and KVM hypervisors.
525

    
526
    This options specifies extra arguments to the kernel that will be
527
    loaded. device. This is always used for Xen PVM, while for KVM it
528
    is only used if the ``kernel_path`` option is also specified.
529

    
530
    The default setting for this value is simply ``"ro"``, which
531
    mounts the root disk (initially) in read-only one. For example,
532
    setting this to single will cause the instance to start in
533
    single-user mode.
534

    
535
initrd\_path
536
    Valid for the Xen PVM and KVM hypervisors.
537

    
538
    This option specifies the path (on the node) to the initrd to boot
539
    the instance with. Xen PVM instances can use this always, while
540
    for KVM if this option is only used if the ``kernel_path`` option
541
    is also specified. You can pass here either an absolute filename
542
    (the path to the initrd) if you want to use an initrd, or use the
543
    format no\_initrd\_path for no initrd.
544

    
545
root\_path
546
    Valid for the Xen PVM and KVM hypervisors.
547

    
548
    This options specifies the name of the root device. This is always
549
    needed for Xen PVM, while for KVM it is only used if the
550
    ``kernel_path`` option is also specified.
551

    
552
    Please note, that if this setting is an empty string and the
553
    hypervisor is Xen it will not be written to the Xen configuration
554
    file
555

    
556
serial\_console
557
    Valid for the KVM hypervisor.
558

    
559
    This boolean option specifies whether to emulate a serial console
560
    for the instance. Note that some versions of KVM have a bug that
561
    will make an instance hang when configured to use the serial console
562
    unless a connection is made to it within about 2 seconds of the
563
    instance's startup. For such case it's recommended to disable this
564
    option, which is enabled by default.
565

    
566
serial\_speed
567
    Valid for the KVM hypervisor.
568

    
569
    This integer option specifies the speed of the serial console.
570
    Common values are 9600, 19200, 38400, 57600 and 115200: choose the
571
    one which works on your system. (The default is 38400 for historical
572
    reasons, but newer versions of kvm/qemu work with 115200)
573

    
574
disk\_cache
575
    Valid for the KVM hypervisor.
576

    
577
    The disk cache mode. It can be either default to not pass any
578
    cache option to KVM, or one of the KVM cache modes: none (for
579
    direct I/O), writethrough (to use the host cache but report
580
    completion to the guest only when the host has committed the
581
    changes to disk) or writeback (to use the host cache and report
582
    completion as soon as the data is in the host cache). Note that
583
    there are special considerations for the cache mode depending on
584
    version of KVM used and disk type (always raw file under Ganeti),
585
    please refer to the KVM documentation for more details.
586

    
587
security\_model
588
    Valid for the KVM hypervisor.
589

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

    
594
    Under *user* kvm will drop privileges and become the user
595
    specified by the security\_domain parameter.
596

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

    
601
security\_domain
602
    Valid for the KVM hypervisor.
603

    
604
    Under security model *user* the username to run the instance
605
    under.  It must be a valid username existing on the host.
606

    
607
    Cannot be set under security model *none* or *pool*.
608

    
609
kvm\_flag
610
    Valid for the KVM hypervisor.
611

    
612
    If *enabled* the -enable-kvm flag is passed to kvm. If *disabled*
613
    -disable-kvm is passed. If unset no flag is passed, and the
614
    default running mode for your kvm binary will be used.
615

    
616
mem\_path
617
    Valid for the KVM hypervisor.
618

    
619
    This option passes the -mem-path argument to kvm with the path (on
620
    the node) to the mount point of the hugetlbfs file system, along
621
    with the -mem-prealloc argument too.
622

    
623
use\_chroot
624
    Valid for the KVM hypervisor.
625

    
626
    This boolean option determines whether to run the KVM instance in a
627
    chroot directory.
628

    
629
    If it is set to ``true``, an empty directory is created before
630
    starting the instance and its path is passed via the -chroot flag
631
    to kvm. The directory is removed when the instance is stopped.
632

    
633
    It is set to ``false`` by default.
634

    
635
user\_shutdown
636
    Valid for the KVM hypervisor.
637

    
638
    This boolean option determines whether the KVM instance suports user
639
    shutdown detection.  This option does not necessarily require ACPI
640
    enabled, but ACPI must be enabled for users to poweroff their KVM
641
    instances.
642

    
643
    If it is set to ``true``, the user can shutdown this KVM instance
644
    and its status is reported as ``USER_down``.
645

    
646
    It is set to ``false`` by default.
647

    
648
migration\_downtime
649
    Valid for the KVM hypervisor.
650

    
651
    The maximum amount of time (in ms) a KVM instance is allowed to be
652
    frozen during a live migration, in order to copy dirty memory
653
    pages. Default value is 30ms, but you may need to increase this
654
    value for busy instances.
655

    
656
    This option is only effective with kvm versions >= 87 and qemu-kvm
657
    versions >= 0.11.0.
658

    
659
cpu\_mask
660
    Valid for the Xen, KVM and LXC hypervisors.
661

    
662
    The processes belonging to the given instance are only scheduled
663
    on the specified CPUs.
664

    
665
    The format of the mask can be given in three forms. First, the word
666
    "all", which signifies the common case where all VCPUs can live on
667
    any CPU, based on the hypervisor's decisions.
668

    
669
    Second, a comma-separated list of CPU IDs or CPU ID ranges. The
670
    ranges are defined by a lower and higher boundary, separated by a
671
    dash, and the boundaries are inclusive. In this form, all VCPUs of
672
    the instance will be mapped on the selected list of CPUs. Example:
673
    ``0-2,5``, mapping all VCPUs (no matter how many) onto physical CPUs
674
    0, 1, 2 and 5.
675

    
676
    The last form is used for explicit control of VCPU-CPU pinnings. In
677
    this form, the list of VCPU mappings is given as a colon (:)
678
    separated list, whose elements are the possible values for the
679
    second or first form above. In this form, the number of elements in
680
    the colon-separated list _must_ equal the number of VCPUs of the
681
    instance.
682

    
683
    Example:
684

    
685
    .. code-block:: bash
686

    
687
      # Map the entire instance to CPUs 0-2
688
      gnt-instance modify -H cpu_mask=0-2 my-inst
689

    
690
      # Map vCPU 0 to physical CPU 1 and vCPU 1 to CPU 3 (assuming 2 vCPUs)
691
      gnt-instance modify -H cpu_mask=1:3 my-inst
692

    
693
      # Pin vCPU 0 to CPUs 1 or 2, and vCPU 1 to any CPU
694
      gnt-instance modify -H cpu_mask=1-2:all my-inst
695

    
696
      # Pin vCPU 0 to any CPU, vCPU 1 to CPUs 1, 3, 4 or 5, and CPU 2 to
697
      # CPU 0 (backslashes for escaping the comma)
698
      gnt-instance modify -H cpu_mask=all:1\\,3-5:0 my-inst
699

    
700
      # Pin entire VM to CPU 0
701
      gnt-instance modify -H cpu_mask=0 my-inst
702

    
703
      # Turn off CPU pinning (default setting)
704
      gnt-instance modify -H cpu_mask=all my-inst
705

    
706
cpu\_cap
707
    Valid for the Xen hypervisor.
708

    
709
    Set the maximum amount of cpu usage by the VM. The value is a percentage
710
    between 0 and (100 * number of VCPUs). Default cap is 0: unlimited.
711

    
712
cpu\_weight
713
    Valid for the Xen hypervisor.
714

    
715
    Set the cpu time ratio to be allocated to the VM. Valid values are
716
    between 1 and 65535. Default weight is 256.
717

    
718
usb\_mouse
719
    Valid for the KVM hypervisor.
720

    
721
    This option specifies the usb mouse type to be used. It can be
722
    "mouse" or "tablet". When using VNC it's recommended to set it to
723
    "tablet".
724

    
725
keymap
726
    Valid for the KVM hypervisor.
727

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

    
731
reboot\_behavior
732
    Valid for Xen PVM, Xen HVM and KVM hypervisors.
733

    
734
    Normally if an instance reboots, the hypervisor will restart it. If
735
    this option is set to ``exit``, the hypervisor will treat a reboot
736
    as a shutdown instead.
737

    
738
    It is set to ``reboot`` by default.
739

    
740
cpu\_cores
741
    Valid for the KVM hypervisor.
742

    
743
    Number of emulated CPU cores.
744

    
745
cpu\_threads
746
    Valid for the KVM hypervisor.
747

    
748
    Number of emulated CPU threads.
749

    
750
cpu\_sockets
751
    Valid for the KVM hypervisor.
752

    
753
    Number of emulated CPU sockets.
754

    
755
soundhw
756
    Valid for the KVM and XEN hypervisors.
757

    
758
    Comma separated list of emulated sounds cards, or "all" to enable
759
    all the available ones.
760

    
761
cpuid
762
    Valid for the XEN hypervisor.
763

    
764
    Modify the values returned by CPUID_ instructions run within instances.
765

    
766
    This allows you to enable migration between nodes with different CPU
767
    attributes like cores, threads, hyperthreading or SS4 support by hiding
768
    the extra features where needed.
769

    
770
    See the XEN documentation for syntax and more information.
771

    
772
.. _CPUID: http://en.wikipedia.org/wiki/CPUID
773

    
774
usb\_devices
775
    Valid for the KVM hypervisor.
776

    
777
    Space separated list of usb devices. These can be emulated devices
778
    or passthrough ones, and each one gets passed to kvm with its own
779
    ``-usbdevice`` option. See the **qemu**\(1) manpage for the syntax
780
    of the possible components. Note that values set with this
781
    parameter are split on a space character and currently don't support
782
    quoting. For backwards compatibility reasons, the RAPI interface keeps
783
    accepting comma separated lists too.
784

    
785
vga
786
    Valid for the KVM hypervisor.
787

    
788
    Emulated vga mode, passed the the kvm -vga option.
789

    
790
kvm\_extra
791
    Valid for the KVM hypervisor.
792

    
793
    Any other option to the KVM hypervisor, useful tweaking anything
794
    that Ganeti doesn't support. Note that values set with this
795
    parameter are split on a space character and currently don't support
796
    quoting.
797

    
798
machine\_version
799
    Valid for the KVM hypervisor.
800

    
801
    Use in case an instance must be booted with an exact type of
802
    machine version (due to e.g. outdated drivers). In case it's not set
803
    the default version supported by your version of kvm is used.
804

    
805
kvm\_path
806
    Valid for the KVM hypervisor.
807

    
808
    Path to the userspace KVM (or qemu) program.
809

    
810
vnet\_hdr
811
    Valid for the KVM hypervisor.
812

    
813
    This boolean option determines whether the tap devices used by the
814
    KVM paravirtual nics (virtio-net) will get created with VNET_HDR
815
    (IFF_VNET_HDR) support.
816

    
817
    If set to false, it effectively disables offloading on the virio-net
818
    interfaces, which prevents host kernel tainting and log flooding,
819
    when dealing with broken or malicious virtio-net drivers.
820

    
821
    It is set to ``true`` by default.
822

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

    
828
    gnt-instance add -O dhcp=yes ...
829

    
830
The ``-I (--iallocator)`` option specifies the instance allocator plugin
831
to use (``.`` means the default allocator). If you pass in this option
832
the allocator will select nodes for this instance automatically, so you
833
don't need to pass them with the ``-n`` option. For more information
834
please refer to the instance allocator documentation.
835

    
836
The ``-t (--disk-template)`` options specifies the disk layout type
837
for the instance. If no disk template is specified, the default disk
838
template is used. The default disk template is the first in the list
839
of enabled disk templates, which can be adjusted cluster-wide with
840
``gnt-cluster modify``. The available choices for disk templates are:
841

    
842
diskless
843
    This creates an instance with no disks. Its useful for testing only
844
    (or other special cases).
845

    
846
file
847
    Disk devices will be regular files.
848

    
849
sharedfile
850
    Disk devices will be regulare files on a shared directory.
851

    
852
plain
853
    Disk devices will be logical volumes.
854

    
855
drbd
856
    Disk devices will be drbd (version 8.x) on top of lvm volumes.
857

    
858
rbd
859
    Disk devices will be rbd volumes residing inside a RADOS cluster.
860

    
861
blockdev
862
    Disk devices will be adopted pre-existent block devices.
863

    
864
ext
865
    Disk devices will be provided by external shared storage,
866
    through the ExtStorage Interface using ExtStorage providers.
867

    
868
The optional second value of the ``-n (--node)`` is used for the drbd
869
template type and specifies the remote node.
870

    
871
If you do not want gnt-instance to wait for the disk mirror to be
872
synced, use the ``--no-wait-for-sync`` option.
873

    
874
The ``--file-storage-dir`` specifies the relative path under the
875
cluster-wide file storage directory to store file-based disks. It is
876
useful for having different subdirectories for different
877
instances. The full path of the directory where the disk files are
878
stored will consist of cluster-wide file storage directory + optional
879
subdirectory + instance name. This option is only relevant for
880
instances using the file storage backend.
881

    
882
The ``--file-driver`` specifies the driver to use for file-based
883
disks. Note that currently these drivers work with the xen hypervisor
884
only. This option is only relevant for instances using the file
885
storage backend. The available choices are:
886

    
887
loop
888
    Kernel loopback driver. This driver uses loopback devices to
889
    access the filesystem within the file. However, running I/O
890
    intensive applications in your instance using the loop driver
891
    might result in slowdowns. Furthermore, if you use the loopback
892
    driver consider increasing the maximum amount of loopback devices
893
    (on most systems it's 8) using the max\_loop param.
894

    
895
blktap
896
    The blktap driver (for Xen hypervisors). In order to be able to
897
    use the blktap driver you should check if the 'blktapctrl' user
898
    space disk agent is running (usually automatically started via
899
    xend).  This user-level disk I/O interface has the advantage of
900
    better performance. Especially if you use a network file system
901
    (e.g. NFS) to store your instances this is the recommended choice.
902

    
903
blktap2
904
    Analogous to the blktap driver, but used by newer versions of Xen.
905

    
906
If ``--ignore-ipolicy`` is given any instance policy violations occuring
907
during this operation are ignored.
908

    
909
The ``-c`` and ``--communication`` specify whether to enable/disable
910
instance communication, which is a communication mechanism between the
911
instance and the host.
912

    
913
See **ganeti**\(7) for a description of ``--submit`` and other common
914
options.
915

    
916
Example::
917

    
918
    # gnt-instance add -t file --disk 0:size=30g -B maxmem=512 -o debian-etch \
919
      -n node1.example.com --file-storage-dir=mysubdir instance1.example.com
920
    # gnt-instance add -t plain --disk 0:size=30g -B maxmem=1024,minmem=512 \
921
      -o debian-etch -n node1.example.com instance1.example.com
922
    # gnt-instance add -t plain --disk 0:size=30g --disk 1:size=100g,vg=san \
923
      -B maxmem=512 -o debian-etch -n node1.example.com instance1.example.com
924
    # gnt-instance add -t drbd --disk 0:size=30g -B maxmem=512 -o debian-etch \
925
      -n node1.example.com:node2.example.com instance2.example.com
926
    # gnt-instance add -t rbd --disk 0:size=30g -B maxmem=512 -o debian-etch \
927
      -n node1.example.com instance1.example.com
928
    # gnt-instance add -t ext --disk 0:size=30g,provider=pvdr1 -B maxmem=512 \
929
      -o debian-etch -n node1.example.com instance1.example.com
930
    # gnt-instance add -t ext --disk 0:size=30g,provider=pvdr1,param1=val1 \
931
      --disk 1:size=40g,provider=pvdr2,param2=val2,param3=val3 -B maxmem=512 \
932
      -o debian-etch -n node1.example.com instance1.example.com
933

    
934

    
935
BATCH-CREATE
936
^^^^^^^^^^^^
937

    
938
| **batch-create**
939
| [{-I|\--iallocator} *instance allocator*]
940
| {instances\_file.json}
941

    
942
This command (similar to the Ganeti 1.2 **batcher** tool) submits
943
multiple instance creation jobs based on a definition file. This
944
file can contain all options which are valid when adding an instance
945
with the exception of the ``iallocator`` field. The IAllocator is,
946
for optimization purposes, only allowed to be set for the whole batch
947
operation using the ``--iallocator`` parameter.
948

    
949
The instance file must be a valid-formed JSON file, containing an
950
array of dictionaries with instance creation parameters. All parameters
951
(except ``iallocator``) which are valid for the instance creation
952
OP code are allowed. The most important ones are:
953

    
954
instance\_name
955
    The FQDN of the new instance.
956

    
957
disk\_template
958
    The disk template to use for the instance, the same as in the
959
    **add** command.
960

    
961
disks
962
    Array of disk specifications. Each entry describes one disk as a
963
    dictionary of disk parameters.
964

    
965
beparams
966
    A dictionary of backend parameters.
967

    
968
hypervisor
969
    The hypervisor for the instance.
970

    
971
hvparams
972
    A dictionary with the hypervisor options. If not passed, the default
973
    hypervisor options will be inherited.
974

    
975
nics
976
    List of NICs that will be created for the instance. Each entry
977
    should be a dict, with mac, ip, mode and link as possible keys.
978
    Please don't provide the "mac, ip, mode, link" parent keys if you
979
    use this method for specifying NICs.
980

    
981
pnode, snode
982
    The primary and optionally the secondary node to use for the
983
    instance (in case an iallocator script is not used). If those
984
    parameters are given, they have to be given consistently for all
985
    instances in the batch operation.
986

    
987
start
988
    whether to start the instance
989

    
990
ip\_check
991
    Skip the check for already-in-use instance; see the description in
992
    the **add** command for details.
993

    
994
name\_check
995
    Skip the name check for instances; see the description in the
996
    **add** command for details.
997

    
998
file\_storage\_dir, file\_driver
999
    Configuration for the file disk type, see the **add** command for
1000
    details.
1001

    
1002

    
1003
A simple definition for one instance can be (with most of the
1004
parameters taken from the cluster defaults)::
1005

    
1006
    [
1007
      {
1008
        "mode": "create",
1009
        "instance_name": "instance1.example.com",
1010
        "disk_template": "drbd",
1011
        "os_type": "debootstrap",
1012
        "disks": [{"size":"1024"}],
1013
        "nics": [{}],
1014
        "hypervisor": "xen-pvm"
1015
      },
1016
      {
1017
        "mode": "create",
1018
        "instance_name": "instance2.example.com",
1019
        "disk_template": "drbd",
1020
        "os_type": "debootstrap",
1021
        "disks": [{"size":"4096", "mode": "rw", "vg": "xenvg"}],
1022
        "nics": [{}],
1023
        "hypervisor": "xen-hvm",
1024
        "hvparams": {"acpi": true},
1025
        "beparams": {"maxmem": 512, "minmem": 256}
1026
      }
1027
    ]
1028

    
1029
The command will display the job id for each submitted instance, as
1030
follows::
1031

    
1032
    # gnt-instance batch-create instances.json
1033
    Submitted jobs 37, 38
1034

    
1035

    
1036
Note: If the allocator is used for computing suitable nodes for the
1037
instances, it will only take into account disk information for the
1038
default disk template. That means, even if other disk templates are
1039
specified for the instances, storage space information of these disk
1040
templates will not be considered in the allocation computation.
1041

    
1042

    
1043
REMOVE
1044
^^^^^^
1045

    
1046
| **remove** [\--ignore-failures] [\--shutdown-timeout=*N*] [\--submit]
1047
| [\--print-job-id] [\--force] {*instance*}
1048

    
1049
Remove an instance. This will remove all data from the instance and
1050
there is *no way back*. If you are not sure if you use an instance
1051
again, use **shutdown** first and leave it in the shutdown state for a
1052
while.
1053

    
1054
The ``--ignore-failures`` option will cause the removal to proceed
1055
even in the presence of errors during the removal of the instance
1056
(e.g. during the shutdown or the disk removal). If this option is not
1057
given, the command will stop at the first error.
1058

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

    
1064
The ``--force`` option is used to skip the interactive confirmation.
1065

    
1066
See **ganeti**\(7) for a description of ``--submit`` and other common
1067
options.
1068

    
1069
Example::
1070

    
1071
    # gnt-instance remove instance1.example.com
1072

    
1073

    
1074
LIST
1075
^^^^
1076

    
1077
| **list**
1078
| [\--no-headers] [\--separator=*SEPARATOR*] [\--units=*UNITS*] [-v]
1079
| [{-o|\--output} *[+]FIELD,...*] [\--filter] [instance...]
1080

    
1081
Shows the currently configured instances with memory usage, disk
1082
usage, the node they are running on, and their run status.
1083

    
1084
The ``--no-headers`` option will skip the initial header line. The
1085
``--separator`` option takes an argument which denotes what will be
1086
used between the output fields. Both these options are to help
1087
scripting.
1088

    
1089
The units used to display the numeric values in the output varies,
1090
depending on the options given. By default, the values will be
1091
formatted in the most appropriate unit. If the ``--separator`` option
1092
is given, then the values are shown in mebibytes to allow parsing by
1093
scripts. In both cases, the ``--units`` option can be used to enforce
1094
a given output unit.
1095

    
1096
The ``-v`` option activates verbose mode, which changes the display of
1097
special field states (see **ganeti**\(7)).
1098

    
1099
The ``-o (--output)`` option takes a comma-separated list of output
1100
fields. The available fields and their meaning are:
1101

    
1102
@QUERY_FIELDS_INSTANCE@
1103

    
1104
If the value of the option starts with the character ``+``, the new
1105
field(s) will be added to the default list. This allows one to quickly
1106
see the default list plus a few other fields, instead of retyping the
1107
entire list of fields.
1108

    
1109
There is a subtle grouping about the available output fields: all
1110
fields except for ``oper_state``, ``oper_ram``, ``oper_vcpus`` and
1111
``status`` are configuration value and not run-time values. So if you
1112
don't select any of the these fields, the query will be satisfied
1113
instantly from the cluster configuration, without having to ask the
1114
remote nodes for the data. This can be helpful for big clusters when
1115
you only want some data and it makes sense to specify a reduced set of
1116
output fields.
1117

    
1118
If exactly one argument is given and it appears to be a query filter
1119
(see **ganeti**\(7)), the query result is filtered accordingly. For
1120
ambiguous cases (e.g. a single field name as a filter) the ``--filter``
1121
(``-F``) option forces the argument to be treated as a filter (e.g.
1122
``gnt-instance list -F admin_state``).
1123

    
1124
The default output field list is: ``name``, ``os``, ``pnode``,
1125
``admin_state``, ``oper_state``, ``oper_ram``.
1126

    
1127

    
1128
LIST-FIELDS
1129
^^^^^^^^^^^
1130

    
1131
**list-fields** [field...]
1132

    
1133
Lists available fields for instances.
1134

    
1135

    
1136
INFO
1137
^^^^
1138

    
1139
**info** [-s \| \--static] [\--roman] {\--all \| *instance*}
1140

    
1141
Show detailed information about the given instance(s). This is
1142
different from **list** as it shows detailed data about the instance's
1143
disks (especially useful for the drbd disk template).
1144

    
1145
If the option ``-s`` is used, only information available in the
1146
configuration file is returned, without querying nodes, making the
1147
operation faster.
1148

    
1149
Use the ``--all`` to get info about all instances, rather than
1150
explicitly passing the ones you're interested in.
1151

    
1152
The ``--roman`` option can be used to cause envy among people who like
1153
ancient cultures, but are stuck with non-latin-friendly cluster
1154
virtualization technologies.
1155

    
1156
MODIFY
1157
^^^^^^
1158

    
1159
| **modify**
1160
| [{-H|\--hypervisor-parameters} *HYPERVISOR\_PARAMETERS*]
1161
| [{-B|\--backend-parameters} *BACKEND\_PARAMETERS*]
1162
| [{-m|\--runtime-memory} *SIZE*]
1163
| [\--net add[:options...] \|
1164
|  \--net [*N*:]add[,options...] \|
1165
|  \--net [*ID*:]remove \|
1166
|  \--net *ID*:modify[,options...]]
1167
| [\--disk add:size=*SIZE*[,options...] \|
1168
|  \--disk *N*:add,size=*SIZE*[,options...] \|
1169
|  \--disk *N*:add,size=*SIZE*,provider=*PROVIDER*[,options...][,param=*value*... ] \|
1170
|  \--disk *ID*:modify[,options...]
1171
|  \--disk [*ID*:]remove]
1172
| [{-t|\--disk-template} plain \| {-t|\--disk-template} drbd -n *new_secondary*] [\--no-wait-for-sync]
1173
| [\--new-primary=*node*]
1174
| [\--os-type=*OS* [\--force-variant]]
1175
| [{-O|\--os-parameters} *param*=*value*... ]
1176
| [--os-parameters-private *param*=*value*... ]
1177
| [\--offline \| \--online]
1178
| [\--submit] [\--print-job-id]
1179
| [\--ignore-ipolicy]
1180
| [\--hotplug]
1181
| [\--hotplug-if-possible]
1182
| {*instance*}
1183

    
1184
Modifies the memory size, number of vcpus, ip address, MAC address
1185
and/or NIC parameters for an instance. It can also add and remove
1186
disks and NICs to/from the instance. Note that you need to give at
1187
least one of the arguments, otherwise the command complains.
1188

    
1189
The ``-H (--hypervisor-parameters)``, ``-B (--backend-parameters)``
1190
and ``-O (--os-parameters)`` options specifies hypervisor, backend and
1191
OS parameter options in the form of name=value[,...]. For details
1192
which options can be specified, see the **add** command.
1193

    
1194
The ``-t (--disk-template)`` option will change the disk template of
1195
the instance.  Currently only conversions between the plain and drbd
1196
disk templates are supported, and the instance must be stopped before
1197
attempting the conversion. When changing from the plain to the drbd
1198
disk template, a new secondary node must be specified via the ``-n``
1199
option. The option ``--no-wait-for-sync`` can be used when converting
1200
to the ``drbd`` template in order to make the instance available for
1201
startup before DRBD has finished resyncing.
1202

    
1203
The ``-m (--runtime-memory)`` option will change an instance's runtime
1204
memory to the given size (in MB if a different suffix is not specified),
1205
by ballooning it up or down to the new value.
1206

    
1207
The ``--disk add:size=*SIZE*,[options..]`` option adds a disk to the
1208
instance, and ``--disk *N*:add:size=*SIZE*,[options..]`` will add a disk
1209
to the the instance at a specific index. The available options are the
1210
same as in the **add** command(``spindles``, ``mode``, ``name``, ``vg``,
1211
``metavg``). Per default, gnt-instance waits for the disk mirror to sync.
1212
If you do not want this behavior, use the ``--no-wait-for-sync`` option.
1213
When adding an ExtStorage disk, the ``provider=*PROVIDER*`` option is
1214
also mandatory and specifies the ExtStorage provider. Also, for
1215
ExtStorage disks arbitrary parameters can be passed as additional comma
1216
separated options, same as in the **add** command. The ``--disk remove``
1217
option will remove the last disk of the instance. Use
1218
``--disk `` *ID*``:remove`` to remove a disk by its identifier. *ID*
1219
can be the index of the disk, the disks's name or the disks's UUID. The
1220
``--disk *ID*:modify[,options...]`` will change the options of the disk.
1221
Available options are:
1222

    
1223
mode
1224
  The access mode. Either ``ro`` (read-only) or the default ``rw`` (read-write).
1225

    
1226
name
1227
   This option specifies a name for the disk, which can be used as a disk
1228
   identifier. An instance can not have two disks with the same name.
1229

    
1230
The ``--net *N*:add[,options..]`` will add a new network interface to
1231
the instance. The available options are the same as in the **add**
1232
command (``mac``, ``ip``, ``link``, ``mode``, ``network``). The
1233
``--net *ID*,remove`` will remove the intances' NIC with *ID* identifier,
1234
which can be the index of the NIC, the NIC's name or the NIC's UUID.
1235
The ``--net *ID*:modify[,options..]`` option will change the parameters of
1236
the instance network interface with the *ID* identifier.
1237

    
1238
The option ``-o (--os-type)`` will change the OS name for the instance
1239
(without reinstallation). In case an OS variant is specified that is
1240
not found, then by default the modification is refused, unless
1241
``--force-variant`` is passed. An invalid OS will also be refused,
1242
unless the ``--force`` option is given.
1243

    
1244
The option ``--new-primary`` will set the new primary node of an instance
1245
assuming the disks have already been moved manually. Unless the ``--force``
1246
option is given, it is verified that the instance is no longer running
1247
on its current primary node.
1248

    
1249
The ``--online`` and ``--offline`` options are used to transition an
1250
instance into and out of the ``offline`` state. An instance can be
1251
turned offline only if it was previously down. The ``--online`` option
1252
fails if the instance was not in the ``offline`` state, otherwise it
1253
changes instance's state to ``down``. These modifications take effect
1254
immediately.
1255

    
1256
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1257
during this operation are ignored.
1258

    
1259
If ``--hotplug`` is given any disk and NIC modifications will take
1260
effect without the need of actual reboot. Please note that this feature
1261
is currently supported only for KVM hypervisor and there are some
1262
restrictions: a) KVM versions >= 1.0 support it b) instances with chroot
1263
or uid pool security model do not support disk hotplug c) RBD disks with
1264
userspace access mode can not be hotplugged (yet) d) if hotplug fails
1265
(for any reason) a warning is printed but execution is continued e)
1266
for existing NIC modification interactive verification is needed unless
1267
``--force`` option is passed.
1268

    
1269
If ``--hotplug-if-possible`` is given then ganeti won't abort in case
1270
hotplug is not supported. It will continue execution and modification
1271
will take place after reboot. This covers use cases where instances are
1272
not running or hypervisor is not KVM.
1273

    
1274
See **ganeti**\(7) for a description of ``--submit`` and other common
1275
options.
1276

    
1277
Most of the changes take effect at the next restart. If the instance is
1278
running, there is no effect on the instance.
1279

    
1280
REINSTALL
1281
^^^^^^^^^
1282

    
1283
| **reinstall** [{-o|\--os-type} *os-type*] [\--select-os] [-f *force*]
1284
| [\--force-multiple]
1285
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all]
1286
| [{-O|\--os-parameters} *OS\_PARAMETERS*] [\--submit] [\--print-job-id]
1287
| {*instance*...}
1288

    
1289
Reinstalls the operating system on the given instance(s). The
1290
instance(s) must be stopped when running this command. If the ``-o
1291
(--os-type)`` is specified, the operating system is changed.
1292

    
1293
The ``--select-os`` option switches to an interactive OS reinstall.
1294
The user is prompted to select the OS template from the list of
1295
available OS templates. OS parameters can be overridden using ``-O
1296
(--os-parameters)`` (more documentation for this option under the
1297
**add** command).
1298

    
1299
Since this is a potentially dangerous command, the user will be
1300
required to confirm this action, unless the ``-f`` flag is passed.
1301
When multiple instances are selected (either by passing multiple
1302
arguments or by using the ``--node``, ``--primary``, ``--secondary``
1303
or ``--all`` options), the user must pass the ``--force-multiple``
1304
options to skip the interactive confirmation.
1305

    
1306
See **ganeti**\(7) for a description of ``--submit`` and other common
1307
options.
1308

    
1309
RENAME
1310
^^^^^^
1311

    
1312
| **rename** [\--no-ip-check] [\--no-name-check] [\--submit] [\--print-job-id]
1313
| {*instance*} {*new\_name*}
1314

    
1315
Renames the given instance. The instance must be stopped when running
1316
this command. The requirements for the new name are the same as for
1317
adding an instance: the new name must be resolvable and the IP it
1318
resolves to must not be reachable (in order to prevent duplicate IPs
1319
the next time the instance is started). The IP test can be skipped if
1320
the ``--no-ip-check`` option is passed.
1321

    
1322
Note that you can rename an instance to its same name, to force
1323
re-executing the os-specific rename script for that instance, if
1324
needed.
1325

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

    
1332
See **ganeti**\(7) for a description of ``--submit`` and other common
1333
options.
1334

    
1335
Starting/stopping/connecting to console
1336
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1337

    
1338
STARTUP
1339
^^^^^^^
1340

    
1341
| **startup**
1342
| [\--force] [\--ignore-offline]
1343
| [\--force-multiple] [\--no-remember]
1344
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1345
| \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1346
| [{-H|\--hypervisor-parameters} ``key=value...``]
1347
| [{-B|\--backend-parameters} ``key=value...``]
1348
| [\--submit] [\--print-job-id] [\--paused]
1349
| {*name*...}
1350

    
1351
Starts one or more instances, depending on the following options.  The
1352
four available modes are:
1353

    
1354
\--instance
1355
    will start the instances given as arguments (at least one argument
1356
    required); this is the default selection
1357

    
1358
\--node
1359
    will start the instances who have the given node as either primary
1360
    or secondary
1361

    
1362
\--primary
1363
    will start all instances whose primary node is in the list of nodes
1364
    passed as arguments (at least one node required)
1365

    
1366
\--secondary
1367
    will start all instances whose secondary node is in the list of
1368
    nodes passed as arguments (at least one node required)
1369

    
1370
\--all
1371
    will start all instances in the cluster (no arguments accepted)
1372

    
1373
\--tags
1374
    will start all instances in the cluster with the tags given as
1375
    arguments
1376

    
1377
\--node-tags
1378
    will start all instances in the cluster on nodes with the tags
1379
    given as arguments
1380

    
1381
\--pri-node-tags
1382
    will start all instances in the cluster on primary nodes with the
1383
    tags given as arguments
1384

    
1385
\--sec-node-tags
1386
    will start all instances in the cluster on secondary nodes with the
1387
    tags given as arguments
1388

    
1389
Note that although you can pass more than one selection option, the
1390
last one wins, so in order to guarantee the desired result, don't pass
1391
more than one such option.
1392

    
1393
Use ``--force`` to start even if secondary disks are failing.
1394
``--ignore-offline`` can be used to ignore offline primary nodes and
1395
mark the instance as started even if the primary is not available.
1396

    
1397
The ``--force-multiple`` will skip the interactive confirmation in the
1398
case the more than one instance will be affected.
1399

    
1400
The ``--no-remember`` option will perform the startup but not change
1401
the state of the instance in the configuration file (if it was stopped
1402
before, Ganeti will still think it needs to be stopped). This can be
1403
used for testing, or for a one shot-start where you don't want the
1404
watcher to restart the instance if it crashes.
1405

    
1406
The ``-H (--hypervisor-parameters)`` and ``-B (--backend-parameters)``
1407
options specify temporary hypervisor and backend parameters that can
1408
be used to start an instance with modified parameters. They can be
1409
useful for quick testing without having to modify an instance back and
1410
forth, e.g.::
1411

    
1412
    # gnt-instance start -H kernel_args="single" instance1
1413
    # gnt-instance start -B maxmem=2048 instance2
1414

    
1415

    
1416
The first form will start the instance instance1 in single-user mode,
1417
and the instance instance2 with 2GB of RAM (this time only, unless
1418
that is the actual instance memory size already). Note that the values
1419
override the instance parameters (and not extend them): an instance
1420
with "kernel\_args=ro" when started with -H kernel\_args=single will
1421
result in "single", not "ro single".
1422

    
1423
The ``--paused`` option is only valid for Xen and kvm hypervisors.  This
1424
pauses the instance at the start of bootup, awaiting ``gnt-instance
1425
console`` to unpause it, allowing the entire boot process to be
1426
monitored for debugging.
1427

    
1428
See **ganeti**\(7) for a description of ``--submit`` and other common
1429
options.
1430

    
1431
Example::
1432

    
1433
    # gnt-instance start instance1.example.com
1434
    # gnt-instance start --node node1.example.com node2.example.com
1435
    # gnt-instance start --all
1436

    
1437

    
1438
SHUTDOWN
1439
^^^^^^^^
1440

    
1441
| **shutdown**
1442
| [\--timeout=*N*]
1443
| [\--force] [\--force-multiple] [\--ignore-offline] [\--no-remember]
1444
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1445
| \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1446
| [\--submit] [\--print-job-id]
1447
| {*name*...}
1448

    
1449
Stops one or more instances. If the instance cannot be cleanly stopped
1450
during a hardcoded interval (currently 2 minutes), it will forcibly
1451
stop the instance (equivalent to switching off the power on a physical
1452
machine).
1453

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

    
1459
The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1460
``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1461
``--sec-node-tags`` options are similar as for the **startup** command
1462
and they influence the actual instances being shutdown.
1463

    
1464
``--ignore-offline`` can be used to ignore offline primary nodes and
1465
force the instance to be marked as stopped. This option should be used
1466
with care as it can lead to an inconsistent cluster state.
1467

    
1468
Use ``--force`` to be able to shutdown an instance even when it's marked
1469
as offline. This is useful is an offline instance ends up in the
1470
``ERROR_up`` state, for example.
1471

    
1472
The ``--no-remember`` option will perform the shutdown but not change
1473
the state of the instance in the configuration file (if it was running
1474
before, Ganeti will still thinks it needs to be running). This can be
1475
useful for a cluster-wide shutdown, where some instances are marked as
1476
up and some as down, and you don't want to change the running state:
1477
you just need to disable the watcher, shutdown all instances with
1478
``--no-remember``, and when the watcher is activated again it will
1479
restore the correct runtime state for all instances.
1480

    
1481
See **ganeti**\(7) for a description of ``--submit`` and other common
1482
options.
1483

    
1484
Example::
1485

    
1486
    # gnt-instance shutdown instance1.example.com
1487
    # gnt-instance shutdown --all
1488

    
1489

    
1490
REBOOT
1491
^^^^^^
1492

    
1493
| **reboot**
1494
| [{-t|\--type} *REBOOT-TYPE*]
1495
| [\--ignore-secondaries]
1496
| [\--shutdown-timeout=*N*]
1497
| [\--force-multiple]
1498
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1499
| \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1500
| [\--submit] [\--print-job-id]
1501
| [*name*...]
1502

    
1503
Reboots one or more instances. The type of reboot depends on the value
1504
of ``-t (--type)``. A soft reboot does a hypervisor reboot, a hard reboot
1505
does a instance stop, recreates the hypervisor config for the instance
1506
and starts the instance. A full reboot does the equivalent of
1507
**gnt-instance shutdown && gnt-instance startup**.  The default is
1508
hard reboot.
1509

    
1510
For the hard reboot the option ``--ignore-secondaries`` ignores errors
1511
for the secondary node while re-assembling the instance disks.
1512

    
1513
The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1514
``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1515
``--sec-node-tags`` options are similar as for the **startup** command
1516
and they influence the actual instances being rebooted.
1517

    
1518
The ``--shutdown-timeout`` is used to specify how much time to wait
1519
before forcing the shutdown (xm destroy in xen, killing the kvm
1520
process, for kvm). By default two minutes are given to each instance
1521
to stop.
1522

    
1523
The ``--force-multiple`` will skip the interactive confirmation in the
1524
case the more than one instance will be affected.
1525

    
1526
See **ganeti**\(7) for a description of ``--submit`` and other common
1527
options.
1528

    
1529
Example::
1530

    
1531
    # gnt-instance reboot instance1.example.com
1532
    # gnt-instance reboot --type=full instance1.example.com
1533

    
1534

    
1535
CONSOLE
1536
^^^^^^^
1537

    
1538
**console** [\--show-cmd] {*instance*}
1539

    
1540
Connects to the console of the given instance. If the instance is not
1541
up, an error is returned. Use the ``--show-cmd`` option to display the
1542
command instead of executing it.
1543

    
1544
For HVM instances, this will attempt to connect to the serial console
1545
of the instance. To connect to the virtualized "physical" console of a
1546
HVM instance, use a VNC client with the connection info from the
1547
**info** command.
1548

    
1549
For Xen/kvm instances, if the instance is paused, this attempts to
1550
unpause the instance after waiting a few seconds for the connection to
1551
the console to be made.
1552

    
1553
Example::
1554

    
1555
    # gnt-instance console instance1.example.com
1556

    
1557

    
1558
Disk management
1559
~~~~~~~~~~~~~~~
1560

    
1561
REPLACE-DISKS
1562
^^^^^^^^^^^^^
1563

    
1564
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1565
| [\--ignore-ipolicy] {-p} [\--disks *idx*] {*instance*}
1566

    
1567
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1568
| [\--ignore-ipolicy] {-s} [\--disks *idx*] {*instance*}
1569

    
1570
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1571
| [\--ignore-ipolicy]
1572
| {{-I\|\--iallocator} *name* \| {{-n|\--new-secondary} *node* } {*instance*}
1573

    
1574
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1575
| [\--ignore-ipolicy] {-a\|\--auto} {*instance*}
1576

    
1577
This command is a generalized form for replacing disks. It is
1578
currently only valid for the mirrored (DRBD) disk template.
1579

    
1580
The first form (when passing the ``-p`` option) will replace the disks
1581
on the primary, while the second form (when passing the ``-s`` option
1582
will replace the disks on the secondary node. For these two cases (as
1583
the node doesn't change), it is possible to only run the replace for a
1584
subset of the disks, using the option ``--disks`` which takes a list
1585
of comma-delimited disk indices (zero-based), e.g. 0,2 to replace only
1586
the first and third disks.
1587

    
1588
The third form (when passing either the ``--iallocator`` or the
1589
``--new-secondary`` option) is designed to change secondary node of the
1590
instance. Specifying ``--iallocator`` makes the new secondary be
1591
selected automatically by the specified allocator plugin (use ``.`` to
1592
indicate the default allocator), otherwise the new secondary node will
1593
be the one chosen manually via the ``--new-secondary`` option.
1594

    
1595
Note that it is not possible to select an offline or drained node as a
1596
new secondary.
1597

    
1598
The fourth form (when using ``--auto``) will automatically determine
1599
which disks of an instance are faulty and replace them within the same
1600
node. The ``--auto`` option works only when an instance has only
1601
faulty disks on either the primary or secondary node; it doesn't work
1602
when both sides have faulty disks.
1603

    
1604
The ``--early-release`` changes the code so that the old storage on
1605
secondary node(s) is removed early (before the resync is completed)
1606
and the internal Ganeti locks for the current (and new, if any)
1607
secondary node are also released, thus allowing more parallelism in
1608
the cluster operation. This should be used only when recovering from a
1609
disk failure on the current secondary (thus the old storage is already
1610
broken) or when the storage on the primary node is known to be fine
1611
(thus we won't need the old storage for potential recovery).
1612

    
1613
The ``--ignore-ipolicy`` let the command ignore instance policy
1614
violations if replace-disks changes groups and the instance would
1615
violate the new groups instance policy.
1616

    
1617
See **ganeti**\(7) for a description of ``--submit`` and other common
1618
options.
1619

    
1620
ACTIVATE-DISKS
1621
^^^^^^^^^^^^^^
1622

    
1623
| **activate-disks** [\--submit] [\--print-job-id] [\--ignore-size]
1624
| [\--wait-for-sync] {*instance*}
1625

    
1626
Activates the block devices of the given instance. If successful, the
1627
command will show the location and name of the block devices::
1628

    
1629
    node1.example.com:disk/0:/dev/drbd0
1630
    node1.example.com:disk/1:/dev/drbd1
1631

    
1632

    
1633
In this example, *node1.example.com* is the name of the node on which
1634
the devices have been activated. The *disk/0* and *disk/1* are the
1635
Ganeti-names of the instance disks; how they are visible inside the
1636
instance is hypervisor-specific. */dev/drbd0* and */dev/drbd1* are the
1637
actual block devices as visible on the node.
1638

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

    
1646
The ``--wait-for-sync`` option will ensure that the command returns only
1647
after the instance's disks are synchronised (mostly for DRBD); this can
1648
be useful to ensure consistency, as otherwise there are no commands that
1649
can wait until synchronisation is done. However when passing this
1650
option, the command will have additional output, making it harder to
1651
parse the disk information.
1652

    
1653
Note that it is safe to run this command while the instance is already
1654
running.
1655

    
1656
See **ganeti**\(7) for a description of ``--submit`` and other common
1657
options.
1658

    
1659
DEACTIVATE-DISKS
1660
^^^^^^^^^^^^^^^^
1661

    
1662
**deactivate-disks** [-f] [\--submit] [\--print-job-id] {*instance*}
1663

    
1664
De-activates the block devices of the given instance. Note that if you
1665
run this command for an instance with a drbd disk template, while it
1666
is running, it will not be able to shutdown the block devices on the
1667
primary node, but it will shutdown the block devices on the secondary
1668
nodes, thus breaking the replication.
1669

    
1670
The ``-f``/``--force`` option will skip checks that the instance is
1671
down; in case the hypervisor is confused and we can't talk to it,
1672
normally Ganeti will refuse to deactivate the disks, but with this
1673
option passed it will skip this check and directly try to deactivate
1674
the disks. This can still fail due to the instance actually running or
1675
other issues.
1676

    
1677
See **ganeti**\(7) for a description of ``--submit`` and other common
1678
options.
1679

    
1680
GROW-DISK
1681
^^^^^^^^^
1682

    
1683
| **grow-disk** [\--no-wait-for-sync] [\--submit] [\--print-job-id]
1684
| [\--absolute]
1685
| {*instance*} {*disk*} {*amount*}
1686

    
1687
Grows an instance's disk. This is only possible for instances having a
1688
plain, drbd, file, sharedfile, rbd or ext disk template. For the ext
1689
template to work, the ExtStorage provider should also support growing.
1690
This means having a ``grow`` script that actually grows the volume of
1691
the external shared storage.
1692

    
1693
Note that this command only change the block device size; it will not
1694
grow the actual filesystems, partitions, etc. that live on that
1695
disk. Usually, you will need to:
1696

    
1697
#. use **gnt-instance grow-disk**
1698

    
1699
#. reboot the instance (later, at a convenient time)
1700

    
1701
#. use a filesystem resizer, such as **ext2online**\(8) or
1702
   **xfs\_growfs**\(8) to resize the filesystem, or use **fdisk**\(8) to
1703
   change the partition table on the disk
1704

    
1705
The *disk* argument is the index of the instance disk to grow. The
1706
*amount* argument is given as a number which can have a suffix (like the
1707
disk size in instance create); if the suffix is missing, the value will
1708
be interpreted as mebibytes.
1709

    
1710
By default, the *amount* value represents the desired increase in the
1711
disk size (e.g. an amount of 1G will take a disk of size 3G to 4G). If
1712
the optional ``--absolute`` parameter is passed, then the *amount*
1713
argument doesn't represent the delta, but instead the desired final disk
1714
size (e.g. an amount of 8G will take a disk of size 4G to 8G).
1715

    
1716
For instances with a drbd template, note that the disk grow operation
1717
might complete on one node but fail on the other; this will leave the
1718
instance with different-sized LVs on the two nodes, but this will not
1719
create problems (except for unused space).
1720

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

    
1724
See **ganeti**\(7) for a description of ``--submit`` and other common
1725
options.
1726

    
1727
Example (increase the first disk for instance1 by 16GiB)::
1728

    
1729
    # gnt-instance grow-disk instance1.example.com 0 16g
1730

    
1731
Example for increasing the disk size to a certain size::
1732

    
1733
   # gnt-instance grow-disk --absolute instance1.example.com 0 32g
1734

    
1735
Also note that disk shrinking is not supported; use **gnt-backup
1736
export** and then **gnt-backup import** to reduce the disk size of an
1737
instance.
1738

    
1739
RECREATE-DISKS
1740
^^^^^^^^^^^^^^
1741

    
1742
| **recreate-disks** [\--submit] [\--print-job-id]
1743
| [{-n node1:[node2] \| {-I\|\--iallocator *name*}}]
1744
| [\--disk=*N*[:[size=*VAL*][,spindles=*VAL*][,mode=*ro\|rw*]]] {*instance*}
1745

    
1746
Recreates all or a subset of disks of the given instance.
1747

    
1748
Note that this functionality should only be used for missing disks; if
1749
any of the given disks already exists, the operation will fail.  While
1750
this is suboptimal, recreate-disks should hopefully not be needed in
1751
normal operation and as such the impact of this is low.
1752

    
1753
If only a subset should be recreated, any number of ``disk`` options can
1754
be specified. It expects a disk index and an optional list of disk
1755
parameters to change. Only ``size``, ``spindles``, and ``mode`` can be
1756
changed while recreating disks. To recreate all disks while changing
1757
parameters on a subset only, a ``--disk`` option must be given for every
1758
disk of the instance.
1759

    
1760
Optionally the instance's disks can be recreated on different
1761
nodes. This can be useful if, for example, the original nodes of the
1762
instance have gone down (and are marked offline), so we can't recreate
1763
on the same nodes. To do this, pass the new node(s) via ``-n`` option,
1764
with a syntax similar to the **add** command. The number of nodes
1765
passed must equal the number of nodes that the instance currently
1766
has. Note that changing nodes is only allowed when all disks are
1767
replaced, e.g. when no ``--disk`` option is passed.
1768

    
1769
Another method of choosing which nodes to place the instance on is by
1770
using the specified iallocator, passing the ``--iallocator`` option.
1771
The primary and secondary nodes will be chosen by the specified
1772
iallocator plugin, or by the default allocator if ``.`` is specified.
1773

    
1774
See **ganeti**\(7) for a description of ``--submit`` and other common
1775
options.
1776

    
1777
Recovery/moving
1778
~~~~~~~~~~~~~~~
1779

    
1780
FAILOVER
1781
^^^^^^^^
1782

    
1783
| **failover** [-f] [\--ignore-consistency] [\--ignore-ipolicy]
1784
| [\--shutdown-timeout=*N*]
1785
| [{-n|\--target-node} *node* \| {-I|\--iallocator} *name*]
1786
| [\--cleanup]
1787
| [\--submit] [\--print-job-id]
1788
| {*instance*}
1789

    
1790
Failover will stop the instance (if running), change its primary node,
1791
and if it was originally running it will start it again (on the new
1792
primary). This works for instances with drbd template (in which case you
1793
can only fail to the secondary node) and for externally mirrored
1794
templates (sharedfile, blockdev, rbd and ext) (in which case you can
1795
fail to any other node).
1796

    
1797
If the instance's disk template is of type sharedfile, blockdev, rbd or
1798
ext, then you can explicitly specify the target node (which can be any
1799
node) using the ``-n`` or ``--target-node`` option, or specify an
1800
iallocator plugin using the ``-I`` or ``--iallocator`` option. If you
1801
omit both, the default iallocator will be used to specify the target
1802
node.
1803

    
1804
If the instance's disk template is of type drbd, the target node is
1805
automatically selected as the drbd's secondary node. Changing the
1806
secondary node is possible with a replace-disks operation.
1807

    
1808
Normally the failover will check the consistency of the disks before
1809
failing over the instance. If you are trying to migrate instances off
1810
a dead node, this will fail. Use the ``--ignore-consistency`` option
1811
for this purpose. Note that this option can be dangerous as errors in
1812
shutting down the instance will be ignored, resulting in possibly
1813
having the instance running on two machines in parallel (on
1814
disconnected DRBD drives).
1815

    
1816
The ``--shutdown-timeout`` is used to specify how much time to wait
1817
before forcing the shutdown (xm destroy in xen, killing the kvm
1818
process, for kvm). By default two minutes are given to each instance
1819
to stop.
1820

    
1821
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1822
during this operation are ignored.
1823

    
1824
If the ``--cleanup`` option is passed, the operation changes from
1825
performin a failover to attempting recovery from a failed previous failover.
1826
In this mode, Ganeti checks if the instance runs on the correct node (and
1827
updates its configuration if not) and ensures the instances' disks
1828
are configured correctly.
1829

    
1830
See **ganeti**\(7) for a description of ``--submit`` and other common
1831
options.
1832

    
1833
Example::
1834

    
1835
    # gnt-instance failover instance1.example.com
1836

    
1837
For externally mirrored templates also ``-n`` is available::
1838

    
1839
    # gnt-instance failover -n node3.example.com instance1.example.com
1840

    
1841

    
1842
MIGRATE
1843
^^^^^^^
1844

    
1845
| **migrate** [-f] [\--allow-failover] [\--non-live]
1846
| [\--migration-mode=live\|non-live] [\--ignore-ipolicy]
1847
| [\--no-runtime-changes] [\--submit] [\--print-job-id]
1848
| [{-n|\--target-node} *node* \| {-I|\--iallocator} *name*] {*instance*}
1849

    
1850
| **migrate** [-f] \--cleanup [\--submit] [\--print-job-id] {*instance*}
1851

    
1852
Migrate will move the instance to its secondary node without shutdown.
1853
As with failover, it works for instances having the drbd disk template
1854
or an externally mirrored disk template type such as sharedfile,
1855
blockdev, rbd or ext.
1856

    
1857
If the instance's disk template is of type sharedfile, blockdev, rbd or
1858
ext, then you can explicitly specify the target node (which can be any
1859
node) using the ``-n`` or ``--target-node`` option, or specify an
1860
iallocator plugin using the ``-I`` or ``--iallocator`` option. If you
1861
omit both, the default iallocator will be used to specify the target
1862
node.  Alternatively, the default iallocator can be requested by
1863
specifying ``.`` as the name of the plugin.
1864

    
1865
If the instance's disk template is of type drbd, the target node is
1866
automatically selected as the drbd's secondary node. Changing the
1867
secondary node is possible with a replace-disks operation.
1868

    
1869
The migration command needs a perfectly healthy instance for drbd
1870
instances, as we rely on the dual-master capability of drbd8 and the
1871
disks of the instance are not allowed to be degraded.
1872

    
1873
The ``--non-live`` and ``--migration-mode=non-live`` options will
1874
switch (for the hypervisors that support it) between a "fully live"
1875
(i.e. the interruption is as minimal as possible) migration and one in
1876
which the instance is frozen, its state saved and transported to the
1877
remote node, and then resumed there. This all depends on the
1878
hypervisor support for two different methods. In any case, it is not
1879
an error to pass this parameter (it will just be ignored if the
1880
hypervisor doesn't support it). The option ``--migration-mode=live``
1881
option will request a fully-live migration. The default, when neither
1882
option is passed, depends on the hypervisor parameters (and can be
1883
viewed with the **gnt-cluster info** command).
1884

    
1885
If the ``--cleanup`` option is passed, the operation changes from
1886
migration to attempting recovery from a failed previous migration. In
1887
this mode, Ganeti checks if the instance runs on the correct node (and
1888
updates its configuration if not) and ensures the instances' disks
1889
are configured correctly. In this mode, the ``--non-live`` option is
1890
ignored.
1891

    
1892
The option ``-f`` will skip the prompting for confirmation.
1893

    
1894
If ``--allow-failover`` is specified it tries to fallback to failover if
1895
it already can determine that a migration won't work (e.g. if the
1896
instance is shut down). Please note that the fallback will not happen
1897
during execution. If a migration fails during execution it still fails.
1898

    
1899
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1900
during this operation are ignored.
1901

    
1902
The ``--no-runtime-changes`` option forbids migrate to alter an
1903
instance's runtime before migrating it (eg. ballooning an instance
1904
down because the target node doesn't have enough available memory).
1905

    
1906
If an instance has the backend parameter ``always_failover`` set to
1907
true, then the migration is automatically converted into a failover.
1908

    
1909
See **ganeti**\(7) for a description of ``--submit`` and other common
1910
options.
1911

    
1912
Example (and expected output)::
1913

    
1914
    # gnt-instance migrate instance1
1915
    Instance instance1 will be migrated. Note that migration
1916
    might impact the instance if anything goes wrong (e.g. due to bugs in
1917
    the hypervisor). Continue?
1918
    y/[n]/?: y
1919
    Migrating instance instance1.example.com
1920
    * checking disk consistency between source and target
1921
    * switching node node2.example.com to secondary mode
1922
    * changing into standalone mode
1923
    * changing disks into dual-master mode
1924
    * wait until resync is done
1925
    * preparing node2.example.com to accept the instance
1926
    * migrating instance to node2.example.com
1927
    * switching node node1.example.com to secondary mode
1928
    * wait until resync is done
1929
    * changing into standalone mode
1930
    * changing disks into single-master mode
1931
    * wait until resync is done
1932
    * done
1933
    #
1934

    
1935

    
1936
MOVE
1937
^^^^
1938

    
1939
| **move** [-f] [\--ignore-consistency]
1940
| [-n *node*] [\--compress=*compression-mode*] [\--shutdown-timeout=*N*]
1941
| [\--submit] [\--print-job-id] [\--ignore-ipolicy]
1942
| {*instance*}
1943

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

    
1947
Note that since this operation is done via data copy, it will take a
1948
long time for big disks (similar to replace-disks for a drbd
1949
instance).
1950

    
1951
The ``--compress`` option is used to specify which compression mode
1952
is used during the move. Valid values are 'none' (the default) and
1953
'gzip'.
1954

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

    
1960
The ``--ignore-consistency`` option will make Ganeti ignore any errors
1961
in trying to shutdown the instance on its node; useful if the
1962
hypervisor is broken and you want to recover the data.
1963

    
1964
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1965
during this operation are ignored.
1966

    
1967
See **ganeti**\(7) for a description of ``--submit`` and other common
1968
options.
1969

    
1970
Example::
1971

    
1972
    # gnt-instance move -n node3.example.com instance1.example.com
1973

    
1974

    
1975
CHANGE-GROUP
1976
^^^^^^^^^^^^
1977

    
1978
| **change-group** [\--submit] [\--print-job-id]
1979
| [\--iallocator *NAME*] [\--to *GROUP*...] {*instance*}
1980

    
1981
This command moves an instance to another node group. The move is
1982
calculated by an iallocator, either given on the command line or as a
1983
cluster default. Note that the iallocator does only consider disk
1984
information of the default disk template, even if the instances'
1985
disk templates differ from that.
1986

    
1987
If no specific destination groups are specified using ``--to``, all
1988
groups except the one containing the instance are considered.
1989

    
1990
See **ganeti**\(7) for a description of ``--submit`` and other common
1991
options.
1992

    
1993
Example::
1994

    
1995
    # gnt-instance change-group -I hail --to rack2 inst1.example.com
1996

    
1997

    
1998
Tags
1999
~~~~
2000

    
2001
ADD-TAGS
2002
^^^^^^^^
2003

    
2004
**add-tags** [\--from *file*] {*instancename*} {*tag*...}
2005

    
2006
Add tags to the given instance. If any of the tags contains invalid
2007
characters, the entire operation will abort.
2008

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

    
2015
LIST-TAGS
2016
^^^^^^^^^
2017

    
2018
**list-tags** {*instancename*}
2019

    
2020
List the tags of the given instance.
2021

    
2022
REMOVE-TAGS
2023
^^^^^^^^^^^
2024

    
2025
**remove-tags** [\--from *file*] {*instancename*} {*tag*...}
2026

    
2027
Remove tags from the given instance. If any of the tags are not
2028
existing on the node, the entire operation will abort.
2029

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

    
2036
.. vim: set textwidth=72 :
2037
.. Local Variables:
2038
.. mode: rst
2039
.. fill-column: 72
2040
.. End: