Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (74.3 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
| [\--offline \| \--online]
1177
| [\--submit] [\--print-job-id]
1178
| [\--ignore-ipolicy]
1179
| [\--hotplug]
1180
| [\--hotplug-if-possible]
1181
| {*instance*}
1182

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1279
REINSTALL
1280
^^^^^^^^^
1281

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

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

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

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

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

    
1308
RENAME
1309
^^^^^^
1310

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

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

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

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

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

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

    
1337
STARTUP
1338
^^^^^^^
1339

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1414

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

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

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

    
1430
Example::
1431

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

    
1436

    
1437
SHUTDOWN
1438
^^^^^^^^
1439

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

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

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

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

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

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

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

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

    
1483
Example::
1484

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

    
1488

    
1489
REBOOT
1490
^^^^^^
1491

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

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

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

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

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

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

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

    
1528
Example::
1529

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

    
1533

    
1534
CONSOLE
1535
^^^^^^^
1536

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

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

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

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

    
1552
Example::
1553

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

    
1556

    
1557
Disk management
1558
~~~~~~~~~~~~~~~
1559

    
1560
REPLACE-DISKS
1561
^^^^^^^^^^^^^
1562

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

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

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

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

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

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

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

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

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

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

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

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

    
1619
ACTIVATE-DISKS
1620
^^^^^^^^^^^^^^
1621

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

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

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

    
1631

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

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

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

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

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

    
1658
DEACTIVATE-DISKS
1659
^^^^^^^^^^^^^^^^
1660

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

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

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

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

    
1679
GROW-DISK
1680
^^^^^^^^^
1681

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1738
RECREATE-DISKS
1739
^^^^^^^^^^^^^^
1740

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

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

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

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

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

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

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

    
1776
Recovery/moving
1777
~~~~~~~~~~~~~~~
1778

    
1779
FAILOVER
1780
^^^^^^^^
1781

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

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

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

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

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

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

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

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

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

    
1832
Example::
1833

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

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

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

    
1840

    
1841
MIGRATE
1842
^^^^^^^
1843

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1911
Example (and expected output)::
1912

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

    
1934

    
1935
MOVE
1936
^^^^
1937

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

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

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

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

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

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

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

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

    
1969
Example::
1970

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

    
1973

    
1974
CHANGE-GROUP
1975
^^^^^^^^^^^^
1976

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

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

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

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

    
1992
Example::
1993

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

    
1996

    
1997
Tags
1998
~~~~
1999

    
2000
ADD-TAGS
2001
^^^^^^^^
2002

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

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

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

    
2014
LIST-TAGS
2015
^^^^^^^^^
2016

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

    
2019
List the tags of the given instance.
2020

    
2021
REMOVE-TAGS
2022
^^^^^^^^^^^
2023

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

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

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

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