Statistics
| Branch: | Tag: | Revision:

root / man / gnt-instance.rst @ 2a60db50

History | View | Annotate | Download (73.5 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}]
41
| {{-n|\--node} *node[:secondary-node]* \| {-I|\--iallocator} *name*}
42
| {{-o|\--os-type} *os-type*}
43
| [\--submit] [\--print-job-id]
44
| [\--ignore-ipolicy]
45
| {*instance*}
46

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

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

    
60
spindles
61
  How many spindles (physical disks on the node) the disk should span.
62

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

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

    
71
vg
72
   The LVM volume group. This works only for LVM and DRBD devices.
73

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

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

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

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

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

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

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

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

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

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

    
125
mac
126
    either a value or 'generate' to generate a new unique MAC
127

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
223
The possible hypervisor options are as follows:
224

    
225
boot\_order
226
    Valid for the Xen HVM and KVM hypervisors.
227

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

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

    
234
    a
235
        floppy drive
236

    
237
    c
238
        hard disk
239

    
240
    d
241
        CDROM drive
242

    
243
    n
244
        network boot (PXE)
245

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

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

    
256
blockdev\_prefix
257
    Valid for the Xen HVM and PVM hypervisors.
258

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

    
263
floppy\_image\_path
264
    Valid for the KVM hypervisor.
265

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

    
271
cdrom\_image\_path
272
    Valid for the Xen HVM and KVM hypervisors.
273

    
274
    The path to a CDROM image to attach to the instance.
275

    
276
cdrom2\_image\_path
277
    Valid for the KVM hypervisor.
278

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

    
283
nic\_type
284
    Valid for the Xen HVM and KVM hypervisors.
285

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

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

    
299
vif\_type
300
    Valid for the Xen HVM hypervisor.
301

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

    
307
    - ioemu
308
    - vif
309

    
310
disk\_type
311
    Valid for the Xen HVM and KVM hypervisors.
312

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

    
316
    - ioemu [default] (HVM & KVM)
317
    - ide (HVM & KVM)
318
    - scsi (KVM)
319
    - sd (KVM)
320
    - mtd (KVM)
321
    - pflash (KVM)
322

    
323

    
324
cdrom\_disk\_type
325
    Valid for the KVM hypervisor.
326

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

    
331
    - paravirtual
332
    - ide
333
    - scsi
334
    - sd
335
    - mtd
336
    - pflash
337

    
338

    
339
vnc\_bind\_address
340
    Valid for the Xen HVM and KVM hypervisors.
341

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

    
348
vnc\_tls
349
    Valid for the KVM hypervisor.
350

    
351
    A boolean option that controls whether the VNC connection is
352
    secured with TLS.
353

    
354
vnc\_x509\_path
355
    Valid for the KVM hypervisor.
356

    
357
    If ``vnc_tls`` is enabled, this options specifies the path to the
358
    x509 certificate to use.
359

    
360
vnc\_x509\_verify
361
    Valid for the KVM hypervisor.
362

    
363
spice\_bind
364
    Valid for the KVM hypervisor.
365

    
366
    Specifies the address or interface on which the SPICE server will
367
    listen. Valid values are:
368

    
369
    - IPv4 addresses, including 0.0.0.0 and 127.0.0.1
370
    - IPv6 addresses, including :: and ::1
371
    - names of network interfaces
372

    
373
    If a network interface is specified, the SPICE server will be bound
374
    to one of the addresses of that interface.
375

    
376
spice\_ip\_version
377
    Valid for the KVM hypervisor.
378

    
379
    Specifies which version of the IP protocol should be used by the
380
    SPICE server.
381

    
382
    It is mainly intended to be used for specifying what kind of IP
383
    addresses should be used if a network interface with both IPv4 and
384
    IPv6 addresses is specified via the ``spice_bind`` parameter. In
385
    this case, if the ``spice_ip_version`` parameter is not used, the
386
    default IP version of the cluster will be used.
387

    
388
spice\_password\_file
389
    Valid for the KVM hypervisor.
390

    
391
    Specifies a file containing the password that must be used when
392
    connecting via the SPICE protocol. If the option is not specified,
393
    passwordless connections are allowed.
394

    
395
spice\_image\_compression
396
    Valid for the KVM hypervisor.
397

    
398
    Configures the SPICE lossless image compression. Valid values are:
399

    
400
    - auto_glz
401
    - auto_lz
402
    - quic
403
    - glz
404
    - lz
405
    - off
406

    
407
spice\_jpeg\_wan\_compression
408
    Valid for the KVM hypervisor.
409

    
410
    Configures how SPICE should use the jpeg algorithm for lossy image
411
    compression on slow links. Valid values are:
412

    
413
    - auto
414
    - never
415
    - always
416

    
417
spice\_zlib\_glz\_wan\_compression
418
    Valid for the KVM hypervisor.
419

    
420
    Configures how SPICE should use the zlib-glz algorithm for lossy image
421
    compression on slow links. Valid values are:
422

    
423
    - auto
424
    - never
425
    - always
426

    
427
spice\_streaming\_video
428
    Valid for the KVM hypervisor.
429

    
430
    Configures how SPICE should detect video streams. Valid values are:
431

    
432
    - off
433
    - all
434
    - filter
435

    
436
spice\_playback\_compression
437
    Valid for the KVM hypervisor.
438

    
439
    Configures whether SPICE should compress audio streams or not.
440

    
441
spice\_use\_tls
442
    Valid for the KVM hypervisor.
443

    
444
    Specifies that the SPICE server must use TLS to encrypt all the
445
    traffic with the client.
446

    
447
spice\_tls\_ciphers
448
    Valid for the KVM hypervisor.
449

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

    
453
spice\_use\_vdagent
454
    Valid for the KVM hypervisor.
455

    
456
    Enables or disables passing mouse events via SPICE vdagent.
457

    
458
cpu\_type
459
    Valid for the KVM hypervisor.
460

    
461
    This parameter determines the emulated cpu for the instance. If this
462
    parameter is empty (which is the default configuration), it will not
463
    be passed to KVM.
464

    
465
    Be aware of setting this parameter to ``"host"`` if you have nodes
466
    with different CPUs from each other. Live migration may stop working
467
    in this situation.
468

    
469
    For more information please refer to the KVM manual.
470

    
471
acpi
472
    Valid for the Xen HVM and KVM hypervisors.
473

    
474
    A boolean option that specifies if the hypervisor should enable
475
    ACPI support for this instance. By default, ACPI is disabled.
476

    
477
    ACPI should be enabled for user shutdown detection.  See
478
    ``user_shutdown``.
479

    
480
pae
481
    Valid for the Xen HVM and KVM hypervisors.
482

    
483
    A boolean option that specifies if the hypervisor should enable
484
    PAE support for this instance. The default is false, disabling PAE
485
    support.
486

    
487
viridian
488
    Valid for the Xen HVM hypervisor.
489

    
490
    A boolean option that specifies if the hypervisor should enable
491
    viridian (Hyper-V) for this instance. The default is false,
492
    disabling viridian support.
493

    
494
use\_localtime
495
    Valid for the Xen HVM and KVM hypervisors.
496

    
497
    A boolean option that specifies if the instance should be started
498
    with its clock set to the localtime of the machine (when true) or
499
    to the UTC (When false). The default is false, which is useful for
500
    Linux/Unix machines; for Windows OSes, it is recommended to enable
501
    this parameter.
502

    
503
kernel\_path
504
    Valid for the Xen PVM and KVM hypervisors.
505

    
506
    This option specifies the path (on the node) to the kernel to boot
507
    the instance with. Xen PVM instances always require this, while for
508
    KVM if this option is empty, it will cause the machine to load the
509
    kernel from its disks (and the boot will be done accordingly to
510
    ``boot_order``).
511

    
512
kernel\_args
513
    Valid for the Xen PVM and KVM hypervisors.
514

    
515
    This options specifies extra arguments to the kernel that will be
516
    loaded. device. This is always used for Xen PVM, while for KVM it
517
    is only used if the ``kernel_path`` option is also specified.
518

    
519
    The default setting for this value is simply ``"ro"``, which
520
    mounts the root disk (initially) in read-only one. For example,
521
    setting this to single will cause the instance to start in
522
    single-user mode.
523

    
524
initrd\_path
525
    Valid for the Xen PVM and KVM hypervisors.
526

    
527
    This option specifies the path (on the node) to the initrd to boot
528
    the instance with. Xen PVM instances can use this always, while
529
    for KVM if this option is only used if the ``kernel_path`` option
530
    is also specified. You can pass here either an absolute filename
531
    (the path to the initrd) if you want to use an initrd, or use the
532
    format no\_initrd\_path for no initrd.
533

    
534
root\_path
535
    Valid for the Xen PVM and KVM hypervisors.
536

    
537
    This options specifies the name of the root device. This is always
538
    needed for Xen PVM, while for KVM it is only used if the
539
    ``kernel_path`` option is also specified.
540

    
541
    Please note, that if this setting is an empty string and the
542
    hypervisor is Xen it will not be written to the Xen configuration
543
    file
544

    
545
serial\_console
546
    Valid for the KVM hypervisor.
547

    
548
    This boolean option specifies whether to emulate a serial console
549
    for the instance. Note that some versions of KVM have a bug that
550
    will make an instance hang when configured to use the serial console
551
    unless a connection is made to it within about 2 seconds of the
552
    instance's startup. For such case it's recommended to disable this
553
    option, which is enabled by default.
554

    
555
serial\_speed
556
    Valid for the KVM hypervisor.
557

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

    
563
disk\_cache
564
    Valid for the KVM hypervisor.
565

    
566
    The disk cache mode. It can be either default to not pass any
567
    cache option to KVM, or one of the KVM cache modes: none (for
568
    direct I/O), writethrough (to use the host cache but report
569
    completion to the guest only when the host has committed the
570
    changes to disk) or writeback (to use the host cache and report
571
    completion as soon as the data is in the host cache). Note that
572
    there are special considerations for the cache mode depending on
573
    version of KVM used and disk type (always raw file under Ganeti),
574
    please refer to the KVM documentation for more details.
575

    
576
security\_model
577
    Valid for the KVM hypervisor.
578

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

    
583
    Under *user* kvm will drop privileges and become the user
584
    specified by the security\_domain parameter.
585

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

    
590
security\_domain
591
    Valid for the KVM hypervisor.
592

    
593
    Under security model *user* the username to run the instance
594
    under.  It must be a valid username existing on the host.
595

    
596
    Cannot be set under security model *none* or *pool*.
597

    
598
kvm\_flag
599
    Valid for the KVM hypervisor.
600

    
601
    If *enabled* the -enable-kvm flag is passed to kvm. If *disabled*
602
    -disable-kvm is passed. If unset no flag is passed, and the
603
    default running mode for your kvm binary will be used.
604

    
605
mem\_path
606
    Valid for the KVM hypervisor.
607

    
608
    This option passes the -mem-path argument to kvm with the path (on
609
    the node) to the mount point of the hugetlbfs file system, along
610
    with the -mem-prealloc argument too.
611

    
612
use\_chroot
613
    Valid for the KVM hypervisor.
614

    
615
    This boolean option determines whether to run the KVM instance in a
616
    chroot directory.
617

    
618
    If it is set to ``true``, an empty directory is created before
619
    starting the instance and its path is passed via the -chroot flag
620
    to kvm. The directory is removed when the instance is stopped.
621

    
622
    It is set to ``false`` by default.
623

    
624
user\_shutdown
625
    Valid for the KVM hypervisor.
626

    
627
    This boolean option determines whether the KVM instance suports user
628
    shutdown detection.  This option does not necessarily require ACPI
629
    enabled, but ACPI must be enabled for users to poweroff their KVM
630
    instances.
631

    
632
    If it is set to ``true``, the user can shutdown this KVM instance
633
    and its status is reported as ``USER_down``.
634

    
635
    It is set to ``false`` by default.
636

    
637
migration\_downtime
638
    Valid for the KVM hypervisor.
639

    
640
    The maximum amount of time (in ms) a KVM instance is allowed to be
641
    frozen during a live migration, in order to copy dirty memory
642
    pages. Default value is 30ms, but you may need to increase this
643
    value for busy instances.
644

    
645
    This option is only effective with kvm versions >= 87 and qemu-kvm
646
    versions >= 0.11.0.
647

    
648
cpu\_mask
649
    Valid for the Xen, KVM and LXC hypervisors.
650

    
651
    The processes belonging to the given instance are only scheduled
652
    on the specified CPUs.
653

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

    
658
    Second, a comma-separated list of CPU IDs or CPU ID ranges. The
659
    ranges are defined by a lower and higher boundary, separated by a
660
    dash, and the boundaries are inclusive. In this form, all VCPUs of
661
    the instance will be mapped on the selected list of CPUs. Example:
662
    ``0-2,5``, mapping all VCPUs (no matter how many) onto physical CPUs
663
    0, 1, 2 and 5.
664

    
665
    The last form is used for explicit control of VCPU-CPU pinnings. In
666
    this form, the list of VCPU mappings is given as a colon (:)
667
    separated list, whose elements are the possible values for the
668
    second or first form above. In this form, the number of elements in
669
    the colon-separated list _must_ equal the number of VCPUs of the
670
    instance.
671

    
672
    Example:
673

    
674
    .. code-block:: bash
675

    
676
      # Map the entire instance to CPUs 0-2
677
      gnt-instance modify -H cpu_mask=0-2 my-inst
678

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

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

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

    
689
      # Pin entire VM to CPU 0
690
      gnt-instance modify -H cpu_mask=0 my-inst
691

    
692
      # Turn off CPU pinning (default setting)
693
      gnt-instance modify -H cpu_mask=all my-inst
694

    
695
cpu\_cap
696
    Valid for the Xen hypervisor.
697

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

    
701
cpu\_weight
702
    Valid for the Xen hypervisor.
703

    
704
    Set the cpu time ratio to be allocated to the VM. Valid values are
705
    between 1 and 65535. Default weight is 256.
706

    
707
usb\_mouse
708
    Valid for the KVM hypervisor.
709

    
710
    This option specifies the usb mouse type to be used. It can be
711
    "mouse" or "tablet". When using VNC it's recommended to set it to
712
    "tablet".
713

    
714
keymap
715
    Valid for the KVM hypervisor.
716

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

    
720
reboot\_behavior
721
    Valid for Xen PVM, Xen HVM and KVM hypervisors.
722

    
723
    Normally if an instance reboots, the hypervisor will restart it. If
724
    this option is set to ``exit``, the hypervisor will treat a reboot
725
    as a shutdown instead.
726

    
727
    It is set to ``reboot`` by default.
728

    
729
cpu\_cores
730
    Valid for the KVM hypervisor.
731

    
732
    Number of emulated CPU cores.
733

    
734
cpu\_threads
735
    Valid for the KVM hypervisor.
736

    
737
    Number of emulated CPU threads.
738

    
739
cpu\_sockets
740
    Valid for the KVM hypervisor.
741

    
742
    Number of emulated CPU sockets.
743

    
744
soundhw
745
    Valid for the KVM and XEN hypervisors.
746

    
747
    Comma separated list of emulated sounds cards, or "all" to enable
748
    all the available ones.
749

    
750
cpuid
751
    Valid for the XEN hypervisor.
752

    
753
    Modify the values returned by CPUID_ instructions run within instances.
754

    
755
    This allows you to enable migration between nodes with different CPU
756
    attributes like cores, threads, hyperthreading or SS4 support by hiding
757
    the extra features where needed.
758

    
759
    See the XEN documentation for syntax and more information.
760

    
761
.. _CPUID: http://en.wikipedia.org/wiki/CPUID
762

    
763
usb\_devices
764
    Valid for the KVM hypervisor.
765

    
766
    Comma separated list of usb devices. These can be emulated devices
767
    or passthrough ones, and each one gets passed to kvm with its own
768
    ``-usbdevice`` option. See the **qemu**\(1) manpage for the syntax
769
    of the possible components.
770

    
771
vga
772
    Valid for the KVM hypervisor.
773

    
774
    Emulated vga mode, passed the the kvm -vga option.
775

    
776
kvm\_extra
777
    Valid for the KVM hypervisor.
778

    
779
    Any other option to the KVM hypervisor, useful tweaking anything
780
    that Ganeti doesn't support. Note that values set with this
781
    parameter are split on a space character and currently don't support
782
    quoting.
783

    
784
machine\_version
785
    Valid for the KVM hypervisor.
786

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

    
791
kvm\_path
792
    Valid for the KVM hypervisor.
793

    
794
    Path to the userspace KVM (or qemu) program.
795

    
796
vnet\_hdr
797
    Valid for the KVM hypervisor.
798

    
799
    This boolean option determines whether the tap devices used by the
800
    KVM paravirtual nics (virtio-net) will get created with VNET_HDR
801
    (IFF_VNET_HDR) support.
802

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

    
807
    It is set to ``true`` by default.
808

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

    
814
    gnt-instance add -O dhcp=yes ...
815

    
816
The ``-I (--iallocator)`` option specifies the instance allocator plugin
817
to use (``.`` means the default allocator). If you pass in this option
818
the allocator will select nodes for this instance automatically, so you
819
don't need to pass them with the ``-n`` option. For more information
820
please refer to the instance allocator documentation.
821

    
822
The ``-t (--disk-template)`` options specifies the disk layout type
823
for the instance. If no disk template is specified, the default disk
824
template is used. The default disk template is the first in the list
825
of enabled disk templates, which can be adjusted cluster-wide with
826
``gnt-cluster modify``. The available choices for disk templates are:
827

    
828
diskless
829
    This creates an instance with no disks. Its useful for testing only
830
    (or other special cases).
831

    
832
file
833
    Disk devices will be regular files.
834

    
835
sharedfile
836
    Disk devices will be regulare files on a shared directory.
837

    
838
plain
839
    Disk devices will be logical volumes.
840

    
841
drbd
842
    Disk devices will be drbd (version 8.x) on top of lvm volumes.
843

    
844
rbd
845
    Disk devices will be rbd volumes residing inside a RADOS cluster.
846

    
847
blockdev
848
    Disk devices will be adopted pre-existent block devices.
849

    
850
ext
851
    Disk devices will be provided by external shared storage,
852
    through the ExtStorage Interface using ExtStorage providers.
853

    
854
The optional second value of the ``-n (--node)`` is used for the drbd
855
template type and specifies the remote node.
856

    
857
If you do not want gnt-instance to wait for the disk mirror to be
858
synced, use the ``--no-wait-for-sync`` option.
859

    
860
The ``--file-storage-dir`` specifies the relative path under the
861
cluster-wide file storage directory to store file-based disks. It is
862
useful for having different subdirectories for different
863
instances. The full path of the directory where the disk files are
864
stored will consist of cluster-wide file storage directory + optional
865
subdirectory + instance name. This option is only relevant for
866
instances using the file storage backend.
867

    
868
The ``--file-driver`` specifies the driver to use for file-based
869
disks. Note that currently these drivers work with the xen hypervisor
870
only. This option is only relevant for instances using the file
871
storage backend. The available choices are:
872

    
873
loop
874
    Kernel loopback driver. This driver uses loopback devices to
875
    access the filesystem within the file. However, running I/O
876
    intensive applications in your instance using the loop driver
877
    might result in slowdowns. Furthermore, if you use the loopback
878
    driver consider increasing the maximum amount of loopback devices
879
    (on most systems it's 8) using the max\_loop param.
880

    
881
blktap
882
    The blktap driver (for Xen hypervisors). In order to be able to
883
    use the blktap driver you should check if the 'blktapctrl' user
884
    space disk agent is running (usually automatically started via
885
    xend).  This user-level disk I/O interface has the advantage of
886
    better performance. Especially if you use a network file system
887
    (e.g. NFS) to store your instances this is the recommended choice.
888

    
889
If ``--ignore-ipolicy`` is given any instance policy violations occuring
890
during this operation are ignored.
891

    
892
See **ganeti**\(7) for a description of ``--submit`` and other common
893
options.
894

    
895
Example::
896

    
897
    # gnt-instance add -t file --disk 0:size=30g -B maxmem=512 -o debian-etch \
898
      -n node1.example.com --file-storage-dir=mysubdir instance1.example.com
899
    # gnt-instance add -t plain --disk 0:size=30g -B maxmem=1024,minmem=512 \
900
      -o debian-etch -n node1.example.com instance1.example.com
901
    # gnt-instance add -t plain --disk 0:size=30g --disk 1:size=100g,vg=san \
902
      -B maxmem=512 -o debian-etch -n node1.example.com instance1.example.com
903
    # gnt-instance add -t drbd --disk 0:size=30g -B maxmem=512 -o debian-etch \
904
      -n node1.example.com:node2.example.com instance2.example.com
905
    # gnt-instance add -t rbd --disk 0:size=30g -B maxmem=512 -o debian-etch \
906
      -n node1.example.com instance1.example.com
907
    # gnt-instance add -t ext --disk 0:size=30g,provider=pvdr1 -B maxmem=512 \
908
      -o debian-etch -n node1.example.com instance1.example.com
909
    # gnt-instance add -t ext --disk 0:size=30g,provider=pvdr1,param1=val1 \
910
      --disk 1:size=40g,provider=pvdr2,param2=val2,param3=val3 -B maxmem=512 \
911
      -o debian-etch -n node1.example.com instance1.example.com
912

    
913

    
914
BATCH-CREATE
915
^^^^^^^^^^^^
916

    
917
| **batch-create**
918
| [{-I|\--iallocator} *instance allocator*]
919
| {instances\_file.json}
920

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

    
928
The instance file must be a valid-formed JSON file, containing an
929
array of dictionaries with instance creation parameters. All parameters
930
(except ``iallocator``) which are valid for the instance creation
931
OP code are allowed. The most important ones are:
932

    
933
instance\_name
934
    The FQDN of the new instance.
935

    
936
disk\_template
937
    The disk template to use for the instance, the same as in the
938
    **add** command.
939

    
940
disks
941
    Array of disk specifications. Each entry describes one disk as a
942
    dictionary of disk parameters.
943

    
944
beparams
945
    A dictionary of backend parameters.
946

    
947
hypervisor
948
    The hypervisor for the instance.
949

    
950
hvparams
951
    A dictionary with the hypervisor options. If not passed, the default
952
    hypervisor options will be inherited.
953

    
954
nics
955
    List of NICs that will be created for the instance. Each entry
956
    should be a dict, with mac, ip, mode and link as possible keys.
957
    Please don't provide the "mac, ip, mode, link" parent keys if you
958
    use this method for specifying NICs.
959

    
960
pnode, snode
961
    The primary and optionally the secondary node to use for the
962
    instance (in case an iallocator script is not used). If those
963
    parameters are given, they have to be given consistently for all
964
    instances in the batch operation.
965

    
966
start
967
    whether to start the instance
968

    
969
ip\_check
970
    Skip the check for already-in-use instance; see the description in
971
    the **add** command for details.
972

    
973
name\_check
974
    Skip the name check for instances; see the description in the
975
    **add** command for details.
976

    
977
file\_storage\_dir, file\_driver
978
    Configuration for the file disk type, see the **add** command for
979
    details.
980

    
981

    
982
A simple definition for one instance can be (with most of the
983
parameters taken from the cluster defaults)::
984

    
985
    [
986
      {
987
        "mode": "create",
988
        "instance_name": "instance1.example.com",
989
        "disk_template": "drbd",
990
        "os_type": "debootstrap",
991
        "disks": [{"size":"1024"}],
992
        "nics": [{}],
993
        "hypervisor": "xen-pvm"
994
      },
995
      {
996
        "mode": "create",
997
        "instance_name": "instance2.example.com",
998
        "disk_template": "drbd",
999
        "os_type": "debootstrap",
1000
        "disks": [{"size":"4096", "mode": "rw", "vg": "xenvg"}],
1001
        "nics": [{}],
1002
        "hypervisor": "xen-hvm",
1003
        "hvparams": {"acpi": true},
1004
        "beparams": {"maxmem": 512, "minmem": 256}
1005
      }
1006
    ]
1007

    
1008
The command will display the job id for each submitted instance, as
1009
follows::
1010

    
1011
    # gnt-instance batch-create instances.json
1012
    Submitted jobs 37, 38
1013

    
1014

    
1015
Note: If the allocator is used for computing suitable nodes for the
1016
instances, it will only take into account disk information for the
1017
default disk template. That means, even if other disk templates are
1018
specified for the instances, storage space information of these disk
1019
templates will not be considered in the allocation computation.
1020

    
1021

    
1022
REMOVE
1023
^^^^^^
1024

    
1025
| **remove** [\--ignore-failures] [\--shutdown-timeout=*N*] [\--submit]
1026
| [\--print-job-id] [\--force] {*instance*}
1027

    
1028
Remove an instance. This will remove all data from the instance and
1029
there is *no way back*. If you are not sure if you use an instance
1030
again, use **shutdown** first and leave it in the shutdown state for a
1031
while.
1032

    
1033
The ``--ignore-failures`` option will cause the removal to proceed
1034
even in the presence of errors during the removal of the instance
1035
(e.g. during the shutdown or the disk removal). If this option is not
1036
given, the command will stop at the first error.
1037

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

    
1043
The ``--force`` option is used to skip the interactive confirmation.
1044

    
1045
See **ganeti**\(7) for a description of ``--submit`` and other common
1046
options.
1047

    
1048
Example::
1049

    
1050
    # gnt-instance remove instance1.example.com
1051

    
1052

    
1053
LIST
1054
^^^^
1055

    
1056
| **list**
1057
| [\--no-headers] [\--separator=*SEPARATOR*] [\--units=*UNITS*] [-v]
1058
| [{-o|\--output} *[+]FIELD,...*] [\--filter] [instance...]
1059

    
1060
Shows the currently configured instances with memory usage, disk
1061
usage, the node they are running on, and their run status.
1062

    
1063
The ``--no-headers`` option will skip the initial header line. The
1064
``--separator`` option takes an argument which denotes what will be
1065
used between the output fields. Both these options are to help
1066
scripting.
1067

    
1068
The units used to display the numeric values in the output varies,
1069
depending on the options given. By default, the values will be
1070
formatted in the most appropriate unit. If the ``--separator`` option
1071
is given, then the values are shown in mebibytes to allow parsing by
1072
scripts. In both cases, the ``--units`` option can be used to enforce
1073
a given output unit.
1074

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

    
1078
The ``-o (--output)`` option takes a comma-separated list of output
1079
fields. The available fields and their meaning are:
1080

    
1081
@QUERY_FIELDS_INSTANCE@
1082

    
1083
If the value of the option starts with the character ``+``, the new
1084
field(s) will be added to the default list. This allows one to quickly
1085
see the default list plus a few other fields, instead of retyping the
1086
entire list of fields.
1087

    
1088
There is a subtle grouping about the available output fields: all
1089
fields except for ``oper_state``, ``oper_ram``, ``oper_vcpus`` and
1090
``status`` are configuration value and not run-time values. So if you
1091
don't select any of the these fields, the query will be satisfied
1092
instantly from the cluster configuration, without having to ask the
1093
remote nodes for the data. This can be helpful for big clusters when
1094
you only want some data and it makes sense to specify a reduced set of
1095
output fields.
1096

    
1097
If exactly one argument is given and it appears to be a query filter
1098
(see **ganeti**\(7)), the query result is filtered accordingly. For
1099
ambiguous cases (e.g. a single field name as a filter) the ``--filter``
1100
(``-F``) option forces the argument to be treated as a filter (e.g.
1101
``gnt-instance list -F admin_state``).
1102

    
1103
The default output field list is: ``name``, ``os``, ``pnode``,
1104
``admin_state``, ``oper_state``, ``oper_ram``.
1105

    
1106

    
1107
LIST-FIELDS
1108
^^^^^^^^^^^
1109

    
1110
**list-fields** [field...]
1111

    
1112
Lists available fields for instances.
1113

    
1114

    
1115
INFO
1116
^^^^
1117

    
1118
**info** [-s \| \--static] [\--roman] {\--all \| *instance*}
1119

    
1120
Show detailed information about the given instance(s). This is
1121
different from **list** as it shows detailed data about the instance's
1122
disks (especially useful for the drbd disk template).
1123

    
1124
If the option ``-s`` is used, only information available in the
1125
configuration file is returned, without querying nodes, making the
1126
operation faster.
1127

    
1128
Use the ``--all`` to get info about all instances, rather than
1129
explicitly passing the ones you're interested in.
1130

    
1131
The ``--roman`` option can be used to cause envy among people who like
1132
ancient cultures, but are stuck with non-latin-friendly cluster
1133
virtualization technologies.
1134

    
1135
MODIFY
1136
^^^^^^
1137

    
1138
| **modify**
1139
| [{-H|\--hypervisor-parameters} *HYPERVISOR\_PARAMETERS*]
1140
| [{-B|\--backend-parameters} *BACKEND\_PARAMETERS*]
1141
| [{-m|\--runtime-memory} *SIZE*]
1142
| [\--net add[:options...] \|
1143
|  \--net [*N*:]add[,options...] \|
1144
|  \--net [*ID*:]remove \|
1145
|  \--net *ID*:modify[,options...]]
1146
| [\--disk add:size=*SIZE*[,options...] \|
1147
|  \--disk *N*:add,size=*SIZE*[,options...] \|
1148
|  \--disk *N*:add,size=*SIZE*,provider=*PROVIDER*[,options...][,param=*value*... ] \|
1149
|  \--disk *ID*:modify[,options...]
1150
|  \--disk [*ID*:]remove]
1151
| [{-t|\--disk-template} plain \| {-t|\--disk-template} drbd -n *new_secondary*] [\--no-wait-for-sync]
1152
| [\--new-primary=*node*]
1153
| [\--os-type=*OS* [\--force-variant]]
1154
| [{-O|\--os-parameters} *param*=*value*... ]
1155
| [\--offline \| \--online]
1156
| [\--submit] [\--print-job-id]
1157
| [\--ignore-ipolicy]
1158
| [\--hotplug]
1159
| [\--hotplug-if-possible]
1160
| {*instance*}
1161

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

    
1167
The ``-H (--hypervisor-parameters)``, ``-B (--backend-parameters)``
1168
and ``-O (--os-parameters)`` options specifies hypervisor, backend and
1169
OS parameter options in the form of name=value[,...]. For details
1170
which options can be specified, see the **add** command.
1171

    
1172
The ``-t (--disk-template)`` option will change the disk template of
1173
the instance.  Currently only conversions between the plain and drbd
1174
disk templates are supported, and the instance must be stopped before
1175
attempting the conversion. When changing from the plain to the drbd
1176
disk template, a new secondary node must be specified via the ``-n``
1177
option. The option ``--no-wait-for-sync`` can be used when converting
1178
to the ``drbd`` template in order to make the instance available for
1179
startup before DRBD has finished resyncing.
1180

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

    
1185
The ``--disk add:size=*SIZE*,[options..]`` option adds a disk to the
1186
instance, and ``--disk *N*:add:size=*SIZE*,[options..]`` will add a disk
1187
to the the instance at a specific index. The available options are the
1188
same as in the **add** command(``spindles``, ``mode``, ``name``, ``vg``,
1189
``metavg``). Per default, gnt-instance waits for the disk mirror to sync.
1190
If you do not want this behavior, use the ``--no-wait-for-sync`` option.
1191
When adding an ExtStorage disk, the ``provider=*PROVIDER*`` option is
1192
also mandatory and specifies the ExtStorage provider. Also, for
1193
ExtStorage disks arbitrary parameters can be passed as additional comma
1194
separated options, same as in the **add** command. The ``--disk remove``
1195
option will remove the last disk of the instance. Use
1196
``--disk `` *ID*``:remove`` to remove a disk by its identifier. *ID*
1197
can be the index of the disk, the disks's name or the disks's UUID. The
1198
``--disk *ID*:modify[,options...]`` will change the options of the disk.
1199
Available options are:
1200

    
1201
mode
1202
  The access mode. Either ``ro`` (read-only) or the default ``rw`` (read-write).
1203

    
1204
name
1205
   This option specifies a name for the disk, which can be used as a disk
1206
   identifier. An instance can not have two disks with the same name.
1207

    
1208
The ``--net *N*:add[,options..]`` will add a new network interface to
1209
the instance. The available options are the same as in the **add**
1210
command (``mac``, ``ip``, ``link``, ``mode``, ``network``). The
1211
``--net *ID*,remove`` will remove the intances' NIC with *ID* identifier,
1212
which can be the index of the NIC, the NIC's name or the NIC's UUID.
1213
The ``--net *ID*:modify[,options..]`` option will change the parameters of
1214
the instance network interface with the *ID* identifier.
1215

    
1216
The option ``-o (--os-type)`` will change the OS name for the instance
1217
(without reinstallation). In case an OS variant is specified that is
1218
not found, then by default the modification is refused, unless
1219
``--force-variant`` is passed. An invalid OS will also be refused,
1220
unless the ``--force`` option is given.
1221

    
1222
The option ``--new-primary`` will set the new primary node of an instance
1223
assuming the disks have already been moved manually. Unless the ``--force``
1224
option is given, it is verified that the instance is no longer running
1225
on its current primary node.
1226

    
1227
The ``--online`` and ``--offline`` options are used to transition an
1228
instance into and out of the ``offline`` state. An instance can be
1229
turned offline only if it was previously down. The ``--online`` option
1230
fails if the instance was not in the ``offline`` state, otherwise it
1231
changes instance's state to ``down``. These modifications take effect
1232
immediately.
1233

    
1234
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1235
during this operation are ignored.
1236

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

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

    
1252
See **ganeti**\(7) for a description of ``--submit`` and other common
1253
options.
1254

    
1255
Most of the changes take effect at the next restart. If the instance is
1256
running, there is no effect on the instance.
1257

    
1258
REINSTALL
1259
^^^^^^^^^
1260

    
1261
| **reinstall** [{-o|\--os-type} *os-type*] [\--select-os] [-f *force*]
1262
| [\--force-multiple]
1263
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all]
1264
| [{-O|\--os-parameters} *OS\_PARAMETERS*] [\--submit] [\--print-job-id]
1265
| {*instance*...}
1266

    
1267
Reinstalls the operating system on the given instance(s). The
1268
instance(s) must be stopped when running this command. If the ``-o
1269
(--os-type)`` is specified, the operating system is changed.
1270

    
1271
The ``--select-os`` option switches to an interactive OS reinstall.
1272
The user is prompted to select the OS template from the list of
1273
available OS templates. OS parameters can be overridden using ``-O
1274
(--os-parameters)`` (more documentation for this option under the
1275
**add** command).
1276

    
1277
Since this is a potentially dangerous command, the user will be
1278
required to confirm this action, unless the ``-f`` flag is passed.
1279
When multiple instances are selected (either by passing multiple
1280
arguments or by using the ``--node``, ``--primary``, ``--secondary``
1281
or ``--all`` options), the user must pass the ``--force-multiple``
1282
options to skip the interactive confirmation.
1283

    
1284
See **ganeti**\(7) for a description of ``--submit`` and other common
1285
options.
1286

    
1287
RENAME
1288
^^^^^^
1289

    
1290
| **rename** [\--no-ip-check] [\--no-name-check] [\--submit] [\--print-job-id]
1291
| {*instance*} {*new\_name*}
1292

    
1293
Renames the given instance. The instance must be stopped when running
1294
this command. The requirements for the new name are the same as for
1295
adding an instance: the new name must be resolvable and the IP it
1296
resolves to must not be reachable (in order to prevent duplicate IPs
1297
the next time the instance is started). The IP test can be skipped if
1298
the ``--no-ip-check`` option is passed.
1299

    
1300
Note that you can rename an instance to its same name, to force
1301
re-executing the os-specific rename script for that instance, if
1302
needed.
1303

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

    
1310
See **ganeti**\(7) for a description of ``--submit`` and other common
1311
options.
1312

    
1313
Starting/stopping/connecting to console
1314
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1315

    
1316
STARTUP
1317
^^^^^^^
1318

    
1319
| **startup**
1320
| [\--force] [\--ignore-offline]
1321
| [\--force-multiple] [\--no-remember]
1322
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1323
| \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1324
| [{-H|\--hypervisor-parameters} ``key=value...``]
1325
| [{-B|\--backend-parameters} ``key=value...``]
1326
| [\--submit] [\--print-job-id] [\--paused]
1327
| {*name*...}
1328

    
1329
Starts one or more instances, depending on the following options.  The
1330
four available modes are:
1331

    
1332
\--instance
1333
    will start the instances given as arguments (at least one argument
1334
    required); this is the default selection
1335

    
1336
\--node
1337
    will start the instances who have the given node as either primary
1338
    or secondary
1339

    
1340
\--primary
1341
    will start all instances whose primary node is in the list of nodes
1342
    passed as arguments (at least one node required)
1343

    
1344
\--secondary
1345
    will start all instances whose secondary node is in the list of
1346
    nodes passed as arguments (at least one node required)
1347

    
1348
\--all
1349
    will start all instances in the cluster (no arguments accepted)
1350

    
1351
\--tags
1352
    will start all instances in the cluster with the tags given as
1353
    arguments
1354

    
1355
\--node-tags
1356
    will start all instances in the cluster on nodes with the tags
1357
    given as arguments
1358

    
1359
\--pri-node-tags
1360
    will start all instances in the cluster on primary nodes with the
1361
    tags given as arguments
1362

    
1363
\--sec-node-tags
1364
    will start all instances in the cluster on secondary nodes with the
1365
    tags given as arguments
1366

    
1367
Note that although you can pass more than one selection option, the
1368
last one wins, so in order to guarantee the desired result, don't pass
1369
more than one such option.
1370

    
1371
Use ``--force`` to start even if secondary disks are failing.
1372
``--ignore-offline`` can be used to ignore offline primary nodes and
1373
mark the instance as started even if the primary is not available.
1374

    
1375
The ``--force-multiple`` will skip the interactive confirmation in the
1376
case the more than one instance will be affected.
1377

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

    
1384
The ``-H (--hypervisor-parameters)`` and ``-B (--backend-parameters)``
1385
options specify temporary hypervisor and backend parameters that can
1386
be used to start an instance with modified parameters. They can be
1387
useful for quick testing without having to modify an instance back and
1388
forth, e.g.::
1389

    
1390
    # gnt-instance start -H kernel_args="single" instance1
1391
    # gnt-instance start -B maxmem=2048 instance2
1392

    
1393

    
1394
The first form will start the instance instance1 in single-user mode,
1395
and the instance instance2 with 2GB of RAM (this time only, unless
1396
that is the actual instance memory size already). Note that the values
1397
override the instance parameters (and not extend them): an instance
1398
with "kernel\_args=ro" when started with -H kernel\_args=single will
1399
result in "single", not "ro single".
1400

    
1401
The ``--paused`` option is only valid for Xen and kvm hypervisors.  This
1402
pauses the instance at the start of bootup, awaiting ``gnt-instance
1403
console`` to unpause it, allowing the entire boot process to be
1404
monitored for debugging.
1405

    
1406
See **ganeti**\(7) for a description of ``--submit`` and other common
1407
options.
1408

    
1409
Example::
1410

    
1411
    # gnt-instance start instance1.example.com
1412
    # gnt-instance start --node node1.example.com node2.example.com
1413
    # gnt-instance start --all
1414

    
1415

    
1416
SHUTDOWN
1417
^^^^^^^^
1418

    
1419
| **shutdown**
1420
| [\--timeout=*N*]
1421
| [\--force] [\--force-multiple] [\--ignore-offline] [\--no-remember]
1422
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1423
| \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1424
| [\--submit] [\--print-job-id]
1425
| {*name*...}
1426

    
1427
Stops one or more instances. If the instance cannot be cleanly stopped
1428
during a hardcoded interval (currently 2 minutes), it will forcibly
1429
stop the instance (equivalent to switching off the power on a physical
1430
machine).
1431

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

    
1437
The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1438
``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1439
``--sec-node-tags`` options are similar as for the **startup** command
1440
and they influence the actual instances being shutdown.
1441

    
1442
``--ignore-offline`` can be used to ignore offline primary nodes and
1443
force the instance to be marked as stopped. This option should be used
1444
with care as it can lead to an inconsistent cluster state.
1445

    
1446
Use ``--force`` to be able to shutdown an instance even when it's marked
1447
as offline. This is useful is an offline instance ends up in the
1448
``ERROR_up`` state, for example.
1449

    
1450
The ``--no-remember`` option will perform the shutdown but not change
1451
the state of the instance in the configuration file (if it was running
1452
before, Ganeti will still thinks it needs to be running). This can be
1453
useful for a cluster-wide shutdown, where some instances are marked as
1454
up and some as down, and you don't want to change the running state:
1455
you just need to disable the watcher, shutdown all instances with
1456
``--no-remember``, and when the watcher is activated again it will
1457
restore the correct runtime state for all instances.
1458

    
1459
See **ganeti**\(7) for a description of ``--submit`` and other common
1460
options.
1461

    
1462
Example::
1463

    
1464
    # gnt-instance shutdown instance1.example.com
1465
    # gnt-instance shutdown --all
1466

    
1467

    
1468
REBOOT
1469
^^^^^^
1470

    
1471
| **reboot**
1472
| [{-t|\--type} *REBOOT-TYPE*]
1473
| [\--ignore-secondaries]
1474
| [\--shutdown-timeout=*N*]
1475
| [\--force-multiple]
1476
| [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1477
| \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1478
| [\--submit] [\--print-job-id]
1479
| [*name*...]
1480

    
1481
Reboots one or more instances. The type of reboot depends on the value
1482
of ``-t (--type)``. A soft reboot does a hypervisor reboot, a hard reboot
1483
does a instance stop, recreates the hypervisor config for the instance
1484
and starts the instance. A full reboot does the equivalent of
1485
**gnt-instance shutdown && gnt-instance startup**.  The default is
1486
hard reboot.
1487

    
1488
For the hard reboot the option ``--ignore-secondaries`` ignores errors
1489
for the secondary node while re-assembling the instance disks.
1490

    
1491
The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1492
``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1493
``--sec-node-tags`` options are similar as for the **startup** command
1494
and they influence the actual instances being rebooted.
1495

    
1496
The ``--shutdown-timeout`` is used to specify how much time to wait
1497
before forcing the shutdown (xm destroy in xen, killing the kvm
1498
process, for kvm). By default two minutes are given to each instance
1499
to stop.
1500

    
1501
The ``--force-multiple`` will skip the interactive confirmation in the
1502
case the more than one instance will be affected.
1503

    
1504
See **ganeti**\(7) for a description of ``--submit`` and other common
1505
options.
1506

    
1507
Example::
1508

    
1509
    # gnt-instance reboot instance1.example.com
1510
    # gnt-instance reboot --type=full instance1.example.com
1511

    
1512

    
1513
CONSOLE
1514
^^^^^^^
1515

    
1516
**console** [\--show-cmd] {*instance*}
1517

    
1518
Connects to the console of the given instance. If the instance is not
1519
up, an error is returned. Use the ``--show-cmd`` option to display the
1520
command instead of executing it.
1521

    
1522
For HVM instances, this will attempt to connect to the serial console
1523
of the instance. To connect to the virtualized "physical" console of a
1524
HVM instance, use a VNC client with the connection info from the
1525
**info** command.
1526

    
1527
For Xen/kvm instances, if the instance is paused, this attempts to
1528
unpause the instance after waiting a few seconds for the connection to
1529
the console to be made.
1530

    
1531
Example::
1532

    
1533
    # gnt-instance console instance1.example.com
1534

    
1535

    
1536
Disk management
1537
~~~~~~~~~~~~~~~
1538

    
1539
REPLACE-DISKS
1540
^^^^^^^^^^^^^
1541

    
1542
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1543
| [\--ignore-ipolicy] {-p} [\--disks *idx*] {*instance*}
1544

    
1545
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1546
| [\--ignore-ipolicy] {-s} [\--disks *idx*] {*instance*}
1547

    
1548
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1549
| [\--ignore-ipolicy]
1550
| {{-I\|\--iallocator} *name* \| {{-n|\--new-secondary} *node* } {*instance*}
1551

    
1552
| **replace-disks** [\--submit] [\--print-job-id] [\--early-release]
1553
| [\--ignore-ipolicy] {-a\|\--auto} {*instance*}
1554

    
1555
This command is a generalized form for replacing disks. It is
1556
currently only valid for the mirrored (DRBD) disk template.
1557

    
1558
The first form (when passing the ``-p`` option) will replace the disks
1559
on the primary, while the second form (when passing the ``-s`` option
1560
will replace the disks on the secondary node. For these two cases (as
1561
the node doesn't change), it is possible to only run the replace for a
1562
subset of the disks, using the option ``--disks`` which takes a list
1563
of comma-delimited disk indices (zero-based), e.g. 0,2 to replace only
1564
the first and third disks.
1565

    
1566
The third form (when passing either the ``--iallocator`` or the
1567
``--new-secondary`` option) is designed to change secondary node of the
1568
instance. Specifying ``--iallocator`` makes the new secondary be
1569
selected automatically by the specified allocator plugin (use ``.`` to
1570
indicate the default allocator), otherwise the new secondary node will
1571
be the one chosen manually via the ``--new-secondary`` option.
1572

    
1573
Note that it is not possible to select an offline or drained node as a
1574
new secondary.
1575

    
1576
The fourth form (when using ``--auto``) will automatically determine
1577
which disks of an instance are faulty and replace them within the same
1578
node. The ``--auto`` option works only when an instance has only
1579
faulty disks on either the primary or secondary node; it doesn't work
1580
when both sides have faulty disks.
1581

    
1582
The ``--early-release`` changes the code so that the old storage on
1583
secondary node(s) is removed early (before the resync is completed)
1584
and the internal Ganeti locks for the current (and new, if any)
1585
secondary node are also released, thus allowing more parallelism in
1586
the cluster operation. This should be used only when recovering from a
1587
disk failure on the current secondary (thus the old storage is already
1588
broken) or when the storage on the primary node is known to be fine
1589
(thus we won't need the old storage for potential recovery).
1590

    
1591
The ``--ignore-ipolicy`` let the command ignore instance policy
1592
violations if replace-disks changes groups and the instance would
1593
violate the new groups instance policy.
1594

    
1595
See **ganeti**\(7) for a description of ``--submit`` and other common
1596
options.
1597

    
1598
ACTIVATE-DISKS
1599
^^^^^^^^^^^^^^
1600

    
1601
| **activate-disks** [\--submit] [\--print-job-id] [\--ignore-size]
1602
| [\--wait-for-sync] {*instance*}
1603

    
1604
Activates the block devices of the given instance. If successful, the
1605
command will show the location and name of the block devices::
1606

    
1607
    node1.example.com:disk/0:/dev/drbd0
1608
    node1.example.com:disk/1:/dev/drbd1
1609

    
1610

    
1611
In this example, *node1.example.com* is the name of the node on which
1612
the devices have been activated. The *disk/0* and *disk/1* are the
1613
Ganeti-names of the instance disks; how they are visible inside the
1614
instance is hypervisor-specific. */dev/drbd0* and */dev/drbd1* are the
1615
actual block devices as visible on the node.
1616

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

    
1624
The ``--wait-for-sync`` option will ensure that the command returns only
1625
after the instance's disks are synchronised (mostly for DRBD); this can
1626
be useful to ensure consistency, as otherwise there are no commands that
1627
can wait until synchronisation is done. However when passing this
1628
option, the command will have additional output, making it harder to
1629
parse the disk information.
1630

    
1631
Note that it is safe to run this command while the instance is already
1632
running.
1633

    
1634
See **ganeti**\(7) for a description of ``--submit`` and other common
1635
options.
1636

    
1637
DEACTIVATE-DISKS
1638
^^^^^^^^^^^^^^^^
1639

    
1640
**deactivate-disks** [-f] [\--submit] [\--print-job-id] {*instance*}
1641

    
1642
De-activates the block devices of the given instance. Note that if you
1643
run this command for an instance with a drbd disk template, while it
1644
is running, it will not be able to shutdown the block devices on the
1645
primary node, but it will shutdown the block devices on the secondary
1646
nodes, thus breaking the replication.
1647

    
1648
The ``-f``/``--force`` option will skip checks that the instance is
1649
down; in case the hypervisor is confused and we can't talk to it,
1650
normally Ganeti will refuse to deactivate the disks, but with this
1651
option passed it will skip this check and directly try to deactivate
1652
the disks. This can still fail due to the instance actually running or
1653
other issues.
1654

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

    
1658
GROW-DISK
1659
^^^^^^^^^
1660

    
1661
| **grow-disk** [\--no-wait-for-sync] [\--submit] [\--print-job-id]
1662
| [\--absolute]
1663
| {*instance*} {*disk*} {*amount*}
1664

    
1665
Grows an instance's disk. This is only possible for instances having a
1666
plain, drbd, file, sharedfile, rbd or ext disk template. For the ext
1667
template to work, the ExtStorage provider should also support growing.
1668
This means having a ``grow`` script that actually grows the volume of
1669
the external shared storage.
1670

    
1671
Note that this command only change the block device size; it will not
1672
grow the actual filesystems, partitions, etc. that live on that
1673
disk. Usually, you will need to:
1674

    
1675
#. use **gnt-instance grow-disk**
1676

    
1677
#. reboot the instance (later, at a convenient time)
1678

    
1679
#. use a filesystem resizer, such as **ext2online**\(8) or
1680
   **xfs\_growfs**\(8) to resize the filesystem, or use **fdisk**\(8) to
1681
   change the partition table on the disk
1682

    
1683
The *disk* argument is the index of the instance disk to grow. The
1684
*amount* argument is given as a number which can have a suffix (like the
1685
disk size in instance create); if the suffix is missing, the value will
1686
be interpreted as mebibytes.
1687

    
1688
By default, the *amount* value represents the desired increase in the
1689
disk size (e.g. an amount of 1G will take a disk of size 3G to 4G). If
1690
the optional ``--absolute`` parameter is passed, then the *amount*
1691
argument doesn't represent the delta, but instead the desired final disk
1692
size (e.g. an amount of 8G will take a disk of size 4G to 8G).
1693

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

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

    
1702
See **ganeti**\(7) for a description of ``--submit`` and other common
1703
options.
1704

    
1705
Example (increase the first disk for instance1 by 16GiB)::
1706

    
1707
    # gnt-instance grow-disk instance1.example.com 0 16g
1708

    
1709
Example for increasing the disk size to a certain size::
1710

    
1711
   # gnt-instance grow-disk --absolute instance1.example.com 0 32g
1712

    
1713
Also note that disk shrinking is not supported; use **gnt-backup
1714
export** and then **gnt-backup import** to reduce the disk size of an
1715
instance.
1716

    
1717
RECREATE-DISKS
1718
^^^^^^^^^^^^^^
1719

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

    
1724
Recreates all or a subset of disks of the given instance.
1725

    
1726
Note that this functionality should only be used for missing disks; if
1727
any of the given disks already exists, the operation will fail.  While
1728
this is suboptimal, recreate-disks should hopefully not be needed in
1729
normal operation and as such the impact of this is low.
1730

    
1731
If only a subset should be recreated, any number of ``disk`` options can
1732
be specified. It expects a disk index and an optional list of disk
1733
parameters to change. Only ``size``, ``spindles``, and ``mode`` can be
1734
changed while recreating disks. To recreate all disks while changing
1735
parameters on a subset only, a ``--disk`` option must be given for every
1736
disk of the instance.
1737

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

    
1747
Another method of choosing which nodes to place the instance on is by
1748
using the specified iallocator, passing the ``--iallocator`` option.
1749
The primary and secondary nodes will be chosen by the specified
1750
iallocator plugin, or by the default allocator if ``.`` is specified.
1751

    
1752
See **ganeti**\(7) for a description of ``--submit`` and other common
1753
options.
1754

    
1755
Recovery/moving
1756
~~~~~~~~~~~~~~~
1757

    
1758
FAILOVER
1759
^^^^^^^^
1760

    
1761
| **failover** [-f] [\--ignore-consistency] [\--ignore-ipolicy]
1762
| [\--shutdown-timeout=*N*]
1763
| [{-n|\--target-node} *node* \| {-I|\--iallocator} *name*]
1764
| [\--cleanup]
1765
| [\--submit] [\--print-job-id]
1766
| {*instance*}
1767

    
1768
Failover will stop the instance (if running), change its primary node,
1769
and if it was originally running it will start it again (on the new
1770
primary). This works for instances with drbd template (in which case you
1771
can only fail to the secondary node) and for externally mirrored
1772
templates (sharedfile, blockdev, rbd and ext) (in which case you can
1773
fail to any other node).
1774

    
1775
If the instance's disk template is of type sharedfile, blockdev, rbd or
1776
ext, then you can explicitly specify the target node (which can be any
1777
node) using the ``-n`` or ``--target-node`` option, or specify an
1778
iallocator plugin using the ``-I`` or ``--iallocator`` option. If you
1779
omit both, the default iallocator will be used to specify the target
1780
node.
1781

    
1782
If the instance's disk template is of type drbd, the target node is
1783
automatically selected as the drbd's secondary node. Changing the
1784
secondary node is possible with a replace-disks operation.
1785

    
1786
Normally the failover will check the consistency of the disks before
1787
failing over the instance. If you are trying to migrate instances off
1788
a dead node, this will fail. Use the ``--ignore-consistency`` option
1789
for this purpose. Note that this option can be dangerous as errors in
1790
shutting down the instance will be ignored, resulting in possibly
1791
having the instance running on two machines in parallel (on
1792
disconnected DRBD drives).
1793

    
1794
The ``--shutdown-timeout`` is used to specify how much time to wait
1795
before forcing the shutdown (xm destroy in xen, killing the kvm
1796
process, for kvm). By default two minutes are given to each instance
1797
to stop.
1798

    
1799
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1800
during this operation are ignored.
1801

    
1802
If the ``--cleanup`` option is passed, the operation changes from
1803
performin a failover to attempting recovery from a failed previous failover.
1804
In this mode, Ganeti checks if the instance runs on the correct node (and
1805
updates its configuration if not) and ensures the instances' disks
1806
are configured correctly.
1807

    
1808
See **ganeti**\(7) for a description of ``--submit`` and other common
1809
options.
1810

    
1811
Example::
1812

    
1813
    # gnt-instance failover instance1.example.com
1814

    
1815
For externally mirrored templates also ``-n`` is available::
1816

    
1817
    # gnt-instance failover -n node3.example.com instance1.example.com
1818

    
1819

    
1820
MIGRATE
1821
^^^^^^^
1822

    
1823
| **migrate** [-f] [\--allow-failover] [\--non-live]
1824
| [\--migration-mode=live\|non-live] [\--ignore-ipolicy]
1825
| [\--no-runtime-changes] [\--submit] [\--print-job-id]
1826
| [{-n|\--target-node} *node* \| {-I|\--iallocator} *name*] {*instance*}
1827

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

    
1830
Migrate will move the instance to its secondary node without shutdown.
1831
As with failover, it works for instances having the drbd disk template
1832
or an externally mirrored disk template type such as sharedfile,
1833
blockdev, rbd or ext.
1834

    
1835
If the instance's disk template is of type sharedfile, blockdev, rbd or
1836
ext, then you can explicitly specify the target node (which can be any
1837
node) using the ``-n`` or ``--target-node`` option, or specify an
1838
iallocator plugin using the ``-I`` or ``--iallocator`` option. If you
1839
omit both, the default iallocator will be used to specify the target
1840
node.  Alternatively, the default iallocator can be requested by
1841
specifying ``.`` as the name of the plugin.
1842

    
1843
If the instance's disk template is of type drbd, the target node is
1844
automatically selected as the drbd's secondary node. Changing the
1845
secondary node is possible with a replace-disks operation.
1846

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

    
1851
The ``--non-live`` and ``--migration-mode=non-live`` options will
1852
switch (for the hypervisors that support it) between a "fully live"
1853
(i.e. the interruption is as minimal as possible) migration and one in
1854
which the instance is frozen, its state saved and transported to the
1855
remote node, and then resumed there. This all depends on the
1856
hypervisor support for two different methods. In any case, it is not
1857
an error to pass this parameter (it will just be ignored if the
1858
hypervisor doesn't support it). The option ``--migration-mode=live``
1859
option will request a fully-live migration. The default, when neither
1860
option is passed, depends on the hypervisor parameters (and can be
1861
viewed with the **gnt-cluster info** command).
1862

    
1863
If the ``--cleanup`` option is passed, the operation changes from
1864
migration to attempting recovery from a failed previous migration. In
1865
this mode, Ganeti checks if the instance runs on the correct node (and
1866
updates its configuration if not) and ensures the instances' disks
1867
are configured correctly. In this mode, the ``--non-live`` option is
1868
ignored.
1869

    
1870
The option ``-f`` will skip the prompting for confirmation.
1871

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

    
1877
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1878
during this operation are ignored.
1879

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

    
1884
If an instance has the backend parameter ``always_failover`` set to
1885
true, then the migration is automatically converted into a failover.
1886

    
1887
See **ganeti**\(7) for a description of ``--submit`` and other common
1888
options.
1889

    
1890
Example (and expected output)::
1891

    
1892
    # gnt-instance migrate instance1
1893
    Instance instance1 will be migrated. Note that migration
1894
    might impact the instance if anything goes wrong (e.g. due to bugs in
1895
    the hypervisor). Continue?
1896
    y/[n]/?: y
1897
    Migrating instance instance1.example.com
1898
    * checking disk consistency between source and target
1899
    * switching node node2.example.com to secondary mode
1900
    * changing into standalone mode
1901
    * changing disks into dual-master mode
1902
    * wait until resync is done
1903
    * preparing node2.example.com to accept the instance
1904
    * migrating instance to node2.example.com
1905
    * switching node node1.example.com to secondary mode
1906
    * wait until resync is done
1907
    * changing into standalone mode
1908
    * changing disks into single-master mode
1909
    * wait until resync is done
1910
    * done
1911
    #
1912

    
1913

    
1914
MOVE
1915
^^^^
1916

    
1917
| **move** [-f] [\--ignore-consistency]
1918
| [-n *node*] [\--compress=*compression-mode*] [\--shutdown-timeout=*N*]
1919
| [\--submit] [\--print-job-id] [\--ignore-ipolicy]
1920
| {*instance*}
1921

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

    
1925
Note that since this operation is done via data copy, it will take a
1926
long time for big disks (similar to replace-disks for a drbd
1927
instance).
1928

    
1929
The ``--compress`` option is used to specify which compression mode
1930
is used during the move. Valid values are 'none' (the default) and
1931
'gzip'.
1932

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

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

    
1942
If ``--ignore-ipolicy`` is given any instance policy violations occuring
1943
during this operation are ignored.
1944

    
1945
See **ganeti**\(7) for a description of ``--submit`` and other common
1946
options.
1947

    
1948
Example::
1949

    
1950
    # gnt-instance move -n node3.example.com instance1.example.com
1951

    
1952

    
1953
CHANGE-GROUP
1954
^^^^^^^^^^^^
1955

    
1956
| **change-group** [\--submit] [\--print-job-id]
1957
| [\--iallocator *NAME*] [\--to *GROUP*...] {*instance*}
1958

    
1959
This command moves an instance to another node group. The move is
1960
calculated by an iallocator, either given on the command line or as a
1961
cluster default. Note that the iallocator does only consider disk
1962
information of the default disk template, even if the instances'
1963
disk templates differ from that.
1964

    
1965
If no specific destination groups are specified using ``--to``, all
1966
groups except the one containing the instance are considered.
1967

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

    
1971
Example::
1972

    
1973
    # gnt-instance change-group -I hail --to rack2 inst1.example.com
1974

    
1975

    
1976
Tags
1977
~~~~
1978

    
1979
ADD-TAGS
1980
^^^^^^^^
1981

    
1982
**add-tags** [\--from *file*] {*instancename*} {*tag*...}
1983

    
1984
Add tags to the given instance. If any of the tags contains invalid
1985
characters, the entire operation will abort.
1986

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

    
1993
LIST-TAGS
1994
^^^^^^^^^
1995

    
1996
**list-tags** {*instancename*}
1997

    
1998
List the tags of the given instance.
1999

    
2000
REMOVE-TAGS
2001
^^^^^^^^^^^
2002

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

    
2005
Remove tags from the given instance. If any of the tags are not
2006
existing on the node, the entire operation will abort.
2007

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

    
2014
.. vim: set textwidth=72 :
2015
.. Local Variables:
2016
.. mode: rst
2017
.. fill-column: 72
2018
.. End: