Add new NIC parameter to man page of 'gnt-instance'
[ganeti-local] / man / gnt-instance.rst
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* \| adopt=*LV*}[,vg=*VG*][,metavg=*VG*][,mode=*ro\|rw*]
32 |  \| {-s|\--os-size} *SIZE*}
33 | [\--no-ip-check] [\--no-name-check] [\--no-start] [\--no-install]
34 | [\--net=*N* [:options...] \| \--no-nics]
35 | [{-B|\--backend-parameters} *BEPARAMS*]
36 | [{-H|\--hypervisor-parameters} *HYPERVISOR* [: option=*value*... ]]
37 | [{-O|\--os-parameters} *param*=*value*... ]
38 | [\--file-storage-dir *dir\_path*] [\--file-driver {loop \| blktap}]
39 | {{-n|\--node} *node[:secondary-node]* \| {-I|\--iallocator} *name*}
40 | {{-o|\--os-type} *os-type*}
41 | [\--submit]
42 | [\--ignore-ipolicy]
43 | {*instance*}
44
45 Creates a new instance on the specified host. The *instance* argument
46 must be in DNS, but depending on the bridge/routing setup, need not be
47 in the same network as the nodes in the cluster.
48
49 The ``disk`` option specifies the parameters for the disks of the
50 instance. The numbering of disks starts at zero, and at least one disk
51 needs to be passed. For each disk, either the size or the adoption
52 source needs to be given, and optionally the access mode (read-only or
53 the default of read-write) and the LVM volume group can also be
54 specified (via the ``vg`` key). For DRBD devices, a different VG can
55 be specified for the metadata device using the ``metavg`` key.  The
56 size is interpreted (when no unit is given) in mebibytes. You can also
57 use one of the suffixes *m*, *g* or *t* to specify the exact the units
58 used; these suffixes map to mebibytes, gibibytes and tebibytes.
59
60 When using the ``adopt`` key in the disk definition, Ganeti will
61 reuse those volumes (instead of creating new ones) as the
62 instance's disks. Ganeti will rename these volumes to the standard
63 format, and (without installing the OS) will use them as-is for the
64 instance. This allows migrating instances from non-managed mode
65 (e.g. plain KVM with LVM) to being managed via Ganeti. Please note that
66 this works only for the \`plain' disk template (see below for
67 template details).
68
69 Alternatively, a single-disk instance can be created via the ``-s``
70 option which takes a single argument, the size of the disk. This is
71 similar to the Ganeti 1.2 version (but will only create one disk).
72
73 The minimum disk specification is therefore ``--disk 0:size=20G`` (or
74 ``-s 20G`` when using the ``-s`` option), and a three-disk instance
75 can be specified as ``--disk 0:size=20G --disk 1:size=4G --disk
76 2:size=100G``.
77
78 The ``--no-ip-check`` skips the checks that are done to see if the
79 instance's IP is not already alive (i.e. reachable from the master
80 node).
81
82 The ``--no-name-check`` skips the check for the instance name via
83 the resolver (e.g. in DNS or /etc/hosts, depending on your setup).
84 Since the name check is used to compute the IP address, if you pass
85 this option you must also pass the ``--no-ip-check`` option.
86
87 If you don't want the instance to automatically start after
88 creation, this is possible via the ``--no-start`` option. This will
89 leave the instance down until a subsequent **gnt-instance start**
90 command.
91
92 The NICs of the instances can be specified via the ``--net``
93 option. By default, one NIC is created for the instance, with a
94 random MAC, and set up according the the cluster level nic
95 parameters. Each NIC can take these parameters (all optional):
96
97 mac
98     either a value or 'generate' to generate a new unique MAC
99
100 ip
101     specifies the IP address assigned to the instance from the Ganeti
102     side (this is not necessarily what the instance will use, but what
103     the node expects the instance to use)
104
105 mode
106     specifies the connection mode for this nic: routed, bridged or
107     openvswitch.
108
109 link
110     in bridged or openvswitch mode specifies the interface to attach
111     this NIC to, in routed mode it's intended to differentiate between
112     different routing tables/instance groups (but the meaning is
113     dependent on the network script, see **gnt-cluster**\(8) for more
114     details). Note that openvswitch support is also hypervisor
115     dependent.
116
117 network
118     derives the mode and the link from the settings of the network
119     which is identified by its name. If the network option is chosen,
120     link and mode must not be specified.
121
122
123 Of these "mode" and "link" are nic parameters, and inherit their
124 default at cluster level.  Alternatively, if no network is desired for
125 the instance, you can prevent the default of one NIC with the
126 ``--no-nics`` option.
127
128 The ``-o (--os-type)`` option specifies the operating system to be
129 installed.  The available operating systems can be listed with
130 **gnt-os list**.  Passing ``--no-install`` will however skip the OS
131 installation, allowing a manual import if so desired. Note that the
132 no-installation mode will automatically disable the start-up of the
133 instance (without an OS, it most likely won't be able to start-up
134 successfully).
135
136 The ``-B (--backend-parameters)`` option specifies the backend
137 parameters for the instance. If no such parameters are specified, the
138 values are inherited from the cluster. Possible parameters are:
139
140 maxmem
141     the maximum memory size of the instance; as usual, suffixes can be
142     used to denote the unit, otherwise the value is taken in mebibytes
143
144 minmem
145     the minimum memory size of the instance; as usual, suffixes can be
146     used to denote the unit, otherwise the value is taken in mebibytes
147
148 vcpus
149     the number of VCPUs to assign to the instance (if this value makes
150     sense for the hypervisor)
151
152 auto\_balance
153     whether the instance is considered in the N+1 cluster checks
154     (enough redundancy in the cluster to survive a node failure)
155
156 always\_failover
157     ``True`` or ``False``, whether the instance must be failed over
158     (shut down and rebooted) always or it may be migrated (briefly
159     suspended)
160
161 Note that before 2.6 Ganeti had a ``memory`` parameter, which was the
162 only value of memory an instance could have. With the
163 ``maxmem``/``minmem`` change Ganeti guarantees that at least the minimum
164 memory is always available for an instance, but allows more memory to be
165 used (up to the maximum memory) should it be free.
166
167 The ``-H (--hypervisor-parameters)`` option specified the hypervisor
168 to use for the instance (must be one of the enabled hypervisors on the
169 cluster) and optionally custom parameters for this instance. If not
170 other options are used (i.e. the invocation is just -H *NAME*) the
171 instance will inherit the cluster options. The defaults below show the
172 cluster defaults at cluster creation time.
173
174 The possible hypervisor options are as follows:
175
176 boot\_order
177     Valid for the Xen HVM and KVM hypervisors.
178
179     A string value denoting the boot order. This has different meaning
180     for the Xen HVM hypervisor and for the KVM one.
181
182     For Xen HVM, The boot order is a string of letters listing the boot
183     devices, with valid device letters being:
184
185     a
186         floppy drive
187
188     c
189         hard disk
190
191     d
192         CDROM drive
193
194     n
195         network boot (PXE)
196
197     The default is not to set an HVM boot order, which is interpreted
198     as 'dc'.
199
200     For KVM the boot order is either "floppy", "cdrom", "disk" or
201     "network".  Please note that older versions of KVM couldn't netboot
202     from virtio interfaces. This has been fixed in more recent versions
203     and is confirmed to work at least with qemu-kvm 0.11.1. Also note
204     that if you have set the ``kernel_path`` option, that will be used
205     for booting, and this setting will be silently ignored.
206
207 blockdev\_prefix
208     Valid for the Xen HVM and PVM hypervisors.
209
210     Relevant to non-pvops guest kernels, in which the disk device names
211     are given by the host.  Allows one to specify 'xvd', which helps run
212     Red Hat based installers, driven by anaconda.
213
214 floppy\_image\_path
215     Valid for the KVM hypervisor.
216
217     The path to a floppy disk image to attach to the instance.  This
218     is useful to install Windows operating systems on Virt/IO disks
219     because you can specify here the floppy for the drivers at
220     installation time.
221
222 cdrom\_image\_path
223     Valid for the Xen HVM and KVM hypervisors.
224
225     The path to a CDROM image to attach to the instance.
226
227 cdrom2\_image\_path
228     Valid for the KVM hypervisor.
229
230     The path to a second CDROM image to attach to the instance.
231     **NOTE**: This image can't be used to boot the system. To do that
232     you have to use the 'cdrom\_image\_path' option.
233
234 nic\_type
235     Valid for the Xen HVM and KVM hypervisors.
236
237     This parameter determines the way the network cards are presented
238     to the instance. The possible options are:
239
240     - rtl8139 (default for Xen HVM) (HVM & KVM)
241     - ne2k\_isa (HVM & KVM)
242     - ne2k\_pci (HVM & KVM)
243     - i82551 (KVM)
244     - i82557b (KVM)
245     - i82559er (KVM)
246     - pcnet (KVM)
247     - e1000 (KVM)
248     - paravirtual (default for KVM) (HVM & KVM)
249
250 disk\_type
251     Valid for the Xen HVM and KVM hypervisors.
252
253     This parameter determines the way the disks are presented to the
254     instance. The possible options are:
255
256     - ioemu [default] (HVM & KVM)
257     - ide (HVM & KVM)
258     - scsi (KVM)
259     - sd (KVM)
260     - mtd (KVM)
261     - pflash (KVM)
262
263
264 cdrom\_disk\_type
265     Valid for the KVM hypervisor.
266
267     This parameter determines the way the cdroms disks are presented
268     to the instance. The default behavior is to get the same value of
269     the earlier parameter (disk_type). The possible options are:
270
271     - paravirtual
272     - ide
273     - scsi
274     - sd
275     - mtd
276     - pflash
277
278
279 vnc\_bind\_address
280     Valid for the Xen HVM and KVM hypervisors.
281
282     Specifies the address that the VNC listener for this instance
283     should bind to. Valid values are IPv4 addresses. Use the address
284     0.0.0.0 to bind to all available interfaces (this is the default)
285     or specify the address of one of the interfaces on the node to
286     restrict listening to that interface.
287
288 vnc\_tls
289     Valid for the KVM hypervisor.
290
291     A boolean option that controls whether the VNC connection is
292     secured with TLS.
293
294 vnc\_x509\_path
295     Valid for the KVM hypervisor.
296
297     If ``vnc_tls`` is enabled, this options specifies the path to the
298     x509 certificate to use.
299
300 vnc\_x509\_verify
301     Valid for the KVM hypervisor.
302
303 spice\_bind
304     Valid for the KVM hypervisor.
305
306     Specifies the address or interface on which the SPICE server will
307     listen. Valid values are:
308
309     - IPv4 addresses, including 0.0.0.0 and 127.0.0.1
310     - IPv6 addresses, including :: and ::1
311     - names of network interfaces
312
313     If a network interface is specified, the SPICE server will be bound
314     to one of the addresses of that interface.
315
316 spice\_ip\_version
317     Valid for the KVM hypervisor.
318
319     Specifies which version of the IP protocol should be used by the
320     SPICE server.
321
322     It is mainly intended to be used for specifying what kind of IP
323     addresses should be used if a network interface with both IPv4 and
324     IPv6 addresses is specified via the ``spice_bind`` parameter. In
325     this case, if the ``spice_ip_version`` parameter is not used, the
326     default IP version of the cluster will be used.
327
328 spice\_password\_file
329     Valid for the KVM hypervisor.
330
331     Specifies a file containing the password that must be used when
332     connecting via the SPICE protocol. If the option is not specified,
333     passwordless connections are allowed.
334
335 spice\_image\_compression
336     Valid for the KVM hypervisor.
337
338     Configures the SPICE lossless image compression. Valid values are:
339
340     - auto_glz
341     - auto_lz
342     - quic
343     - glz
344     - lz
345     - off
346
347 spice\_jpeg\_wan\_compression
348     Valid for the KVM hypervisor.
349
350     Configures how SPICE should use the jpeg algorithm for lossy image
351     compression on slow links. Valid values are:
352
353     - auto
354     - never
355     - always
356
357 spice\_zlib\_glz\_wan\_compression
358     Valid for the KVM hypervisor.
359
360     Configures how SPICE should use the zlib-glz algorithm for lossy image
361     compression on slow links. Valid values are:
362
363     - auto
364     - never
365     - always
366
367 spice\_streaming\_video
368     Valid for the KVM hypervisor.
369
370     Configures how SPICE should detect video streams. Valid values are:
371
372     - off
373     - all
374     - filter
375
376 spice\_playback\_compression
377     Valid for the KVM hypervisor.
378
379     Configures whether SPICE should compress audio streams or not.
380
381 spice\_use\_tls
382     Valid for the KVM hypervisor.
383
384     Specifies that the SPICE server must use TLS to encrypt all the
385     traffic with the client.
386
387 spice\_tls\_ciphers
388     Valid for the KVM hypervisor.
389
390     Specifies a list of comma-separated ciphers that SPICE should use
391     for TLS connections. For the format, see man **cipher**\(1).
392
393 spice\_use\_vdagent
394     Valid for the KVM hypervisor.
395
396     Enables or disables passing mouse events via SPICE vdagent.
397
398 cpu\_type
399     Valid for the KVM hypervisor.
400
401     This parameter determines the emulated cpu for the instance. If this
402     parameter is empty (which is the default configuration), it will not
403     be passed to KVM.
404
405     Be aware of setting this parameter to ``"host"`` if you have nodes
406     with different CPUs from each other. Live migration may stop working
407     in this situation.
408
409     For more information please refer to the KVM manual.
410
411 acpi
412     Valid for the Xen HVM and KVM hypervisors.
413
414     A boolean option that specifies if the hypervisor should enable
415     ACPI support for this instance. By default, ACPI is disabled.
416
417 pae
418     Valid for the Xen HVM and KVM hypervisors.
419
420     A boolean option that specifies if the hypervisor should enabled
421     PAE support for this instance. The default is false, disabling PAE
422     support.
423
424 use\_localtime
425     Valid for the Xen HVM and KVM hypervisors.
426
427     A boolean option that specifies if the instance should be started
428     with its clock set to the localtime of the machine (when true) or
429     to the UTC (When false). The default is false, which is useful for
430     Linux/Unix machines; for Windows OSes, it is recommended to enable
431     this parameter.
432
433 kernel\_path
434     Valid for the Xen PVM and KVM hypervisors.
435
436     This option specifies the path (on the node) to the kernel to boot
437     the instance with. Xen PVM instances always require this, while for
438     KVM if this option is empty, it will cause the machine to load the
439     kernel from its disks (and the boot will be done accordingly to
440     ``boot_order``).
441
442 kernel\_args
443     Valid for the Xen PVM and KVM hypervisors.
444
445     This options specifies extra arguments to the kernel that will be
446     loaded. device. This is always used for Xen PVM, while for KVM it
447     is only used if the ``kernel_path`` option is also specified.
448
449     The default setting for this value is simply ``"ro"``, which
450     mounts the root disk (initially) in read-only one. For example,
451     setting this to single will cause the instance to start in
452     single-user mode.
453
454 initrd\_path
455     Valid for the Xen PVM and KVM hypervisors.
456
457     This option specifies the path (on the node) to the initrd to boot
458     the instance with. Xen PVM instances can use this always, while
459     for KVM if this option is only used if the ``kernel_path`` option
460     is also specified. You can pass here either an absolute filename
461     (the path to the initrd) if you want to use an initrd, or use the
462     format no\_initrd\_path for no initrd.
463
464 root\_path
465     Valid for the Xen PVM and KVM hypervisors.
466
467     This options specifies the name of the root device. This is always
468     needed for Xen PVM, while for KVM it is only used if the
469     ``kernel_path`` option is also specified.
470
471     Please note, that if this setting is an empty string and the
472     hypervisor is Xen it will not be written to the Xen configuration
473     file
474
475 serial\_console
476     Valid for the KVM hypervisor.
477
478     This boolean option specifies whether to emulate a serial console
479     for the instance.
480
481 serial\_speed
482     Valid for the KVM hypervisor.
483
484     This integer option specifies the speed of the serial console.
485     Common values are 9600, 19200, 38400, 57600 and 115200: choose the
486     one which works on your system. (The default is 38400 for historical
487     reasons, but newer versions of kvm/qemu work with 115200)
488
489 disk\_cache
490     Valid for the KVM hypervisor.
491
492     The disk cache mode. It can be either default to not pass any
493     cache option to KVM, or one of the KVM cache modes: none (for
494     direct I/O), writethrough (to use the host cache but report
495     completion to the guest only when the host has committed the
496     changes to disk) or writeback (to use the host cache and report
497     completion as soon as the data is in the host cache). Note that
498     there are special considerations for the cache mode depending on
499     version of KVM used and disk type (always raw file under Ganeti),
500     please refer to the KVM documentation for more details.
501
502 security\_model
503     Valid for the KVM hypervisor.
504
505     The security model for kvm. Currently one of *none*, *user* or
506     *pool*. Under *none*, the default, nothing is done and instances
507     are run as the Ganeti daemon user (normally root).
508
509     Under *user* kvm will drop privileges and become the user
510     specified by the security\_domain parameter.
511
512     Under *pool* a global cluster pool of users will be used, making
513     sure no two instances share the same user on the same node. (this
514     mode is not implemented yet)
515
516 security\_domain
517     Valid for the KVM hypervisor.
518
519     Under security model *user* the username to run the instance
520     under.  It must be a valid username existing on the host.
521
522     Cannot be set under security model *none* or *pool*.
523
524 kvm\_flag
525     Valid for the KVM hypervisor.
526
527     If *enabled* the -enable-kvm flag is passed to kvm. If *disabled*
528     -disable-kvm is passed. If unset no flag is passed, and the
529     default running mode for your kvm binary will be used.
530
531 mem\_path
532     Valid for the KVM hypervisor.
533
534     This option passes the -mem-path argument to kvm with the path (on
535     the node) to the mount point of the hugetlbfs file system, along
536     with the -mem-prealloc argument too.
537
538 use\_chroot
539     Valid for the KVM hypervisor.
540
541     This boolean option determines whether to run the KVM instance in a
542     chroot directory.
543
544     If it is set to ``true``, an empty directory is created before
545     starting the instance and its path is passed via the -chroot flag
546     to kvm. The directory is removed when the instance is stopped.
547
548     It is set to ``false`` by default.
549
550 migration\_downtime
551     Valid for the KVM hypervisor.
552
553     The maximum amount of time (in ms) a KVM instance is allowed to be
554     frozen during a live migration, in order to copy dirty memory
555     pages. Default value is 30ms, but you may need to increase this
556     value for busy instances.
557
558     This option is only effective with kvm versions >= 87 and qemu-kvm
559     versions >= 0.11.0.
560
561 cpu\_mask
562     Valid for the Xen, KVM and LXC hypervisors.
563
564     The processes belonging to the given instance are only scheduled
565     on the specified CPUs.
566
567     The format of the mask can be given in three forms. First, the word
568     "all", which signifies the common case where all VCPUs can live on
569     any CPU, based on the hypervisor's decisions.
570
571     Second, a comma-separated list of CPU IDs or CPU ID ranges. The
572     ranges are defined by a lower and higher boundary, separated by a
573     dash, and the boundaries are inclusive. In this form, all VCPUs of
574     the instance will be mapped on the selected list of CPUs. Example:
575     ``0-2,5``, mapping all VCPUs (no matter how many) onto physical CPUs
576     0, 1, 2 and 5.
577
578     The last form is used for explicit control of VCPU-CPU pinnings. In
579     this form, the list of VCPU mappings is given as a colon (:)
580     separated list, whose elements are the possible values for the
581     second or first form above. In this form, the number of elements in
582     the colon-separated list _must_ equal the number of VCPUs of the
583     instance.
584
585     Example:
586
587     .. code-block:: bash
588
589       # Map the entire instance to CPUs 0-2
590       gnt-instance modify -H cpu_mask=0-2 my-inst
591
592       # Map vCPU 0 to physical CPU 1 and vCPU 1 to CPU 3 (assuming 2 vCPUs)
593       gnt-instance modify -H cpu_mask=1:3 my-inst
594
595       # Pin vCPU 0 to CPUs 1 or 2, and vCPU 1 to any CPU
596       gnt-instance modify -H cpu_mask=1-2:all my-inst
597
598       # Pin vCPU 0 to any CPU, vCPU 1 to CPUs 1, 3, 4 or 5, and CPU 2 to
599       # CPU 0 (backslashes for escaping the comma)
600       gnt-instance modify -H cpu_mask=all:1\\,3-5:0 my-inst
601
602       # Pin entire VM to CPU 0
603       gnt-instance modify -H cpu_mask=0 my-inst
604
605       # Turn off CPU pinning (default setting)
606       gnt-instance modify -H cpu_mask=all my-inst
607
608 cpu\_cap
609     Valid for the Xen hypervisor.
610
611     Set the maximum amount of cpu usage by the VM. The value is a percentage
612     between 0 and (100 * number of VCPUs). Default cap is 0: unlimited.
613
614 cpu\_weight
615     Valid for the Xen hypervisor.
616
617     Set the cpu time ratio to be allocated to the VM. Valid values are
618     between 1 and 65535. Default weight is 256.
619
620 usb\_mouse
621     Valid for the KVM hypervisor.
622
623     This option specifies the usb mouse type to be used. It can be
624     "mouse" or "tablet". When using VNC it's recommended to set it to
625     "tablet".
626
627 keymap
628     Valid for the KVM hypervisor.
629
630     This option specifies the keyboard mapping to be used. It is only
631     needed when using the VNC console. For example: "fr" or "en-gb".
632
633 reboot\_behavior
634     Valid for Xen PVM, Xen HVM and KVM hypervisors.
635
636     Normally if an instance reboots, the hypervisor will restart it. If
637     this option is set to ``exit``, the hypervisor will treat a reboot
638     as a shutdown instead.
639
640     It is set to ``reboot`` by default.
641
642 cpu\_cores
643     Valid for the KVM hypervisor.
644
645     Number of emulated CPU cores.
646
647 cpu\_threads
648     Valid for the KVM hypervisor.
649
650     Number of emulated CPU threads.
651
652 cpu\_sockets
653     Valid for the KVM hypervisor.
654
655     Number of emulated CPU sockets.
656
657 soundhw
658     Valid for the KVM hypervisor.
659
660     Comma separated list of emulated sounds cards, or "all" to enable
661     all the available ones.
662
663 usb\_devices
664     Valid for the KVM hypervisor.
665
666     Comma separated list of usb devices. These can be emulated devices
667     or passthrough ones, and each one gets passed to kvm with its own
668     ``-usbdevice`` option. See the **qemu**\(1) manpage for the syntax
669     of the possible components.
670
671 vga
672     Valid for the KVM hypervisor.
673
674     Emulated vga mode, passed the the kvm -vga option.
675
676 kvm\_extra
677     Valid for the KVM hypervisor.
678
679     Any other option to the KVM hypervisor, useful tweaking anything
680     that Ganeti doesn't support.
681
682 machine\_version
683     Valid for the KVM hypervisor.
684
685     Use in case an instance must be booted with an exact type of
686     machine version (due to e.g. outdated drivers). In case it's not set
687     the default version supported by your version of kvm is used.
688
689 kvm\_path
690     Valid for the KVM hypervisor.
691
692     Path to the userspace KVM (or qemu) program.
693
694 The ``-O (--os-parameters)`` option allows customisation of the OS
695 parameters. The actual parameter names and values depends on the OS
696 being used, but the syntax is the same key=value. For example, setting
697 a hypothetical ``dhcp`` parameter to yes can be achieved by::
698
699     gnt-instance add -O dhcp=yes ...
700
701 The ``-I (--iallocator)`` option specifies the instance allocator plugin
702 to use (``.`` means the default allocator). If you pass in this option
703 the allocator will select nodes for this instance automatically, so you
704 don't need to pass them with the ``-n`` option. For more information
705 please refer to the instance allocator documentation.
706
707 The ``-t (--disk-template)`` options specifies the disk layout type
708 for the instance.  The available choices are:
709
710 diskless
711     This creates an instance with no disks. Its useful for testing only
712     (or other special cases).
713
714 file
715     Disk devices will be regular files.
716
717 plain
718     Disk devices will be logical volumes.
719
720 drbd
721     Disk devices will be drbd (version 8.x) on top of lvm volumes.
722
723 rbd
724     Disk devices will be rbd volumes residing inside a RADOS cluster.
725
726
727 The optional second value of the ``-n (--node)`` is used for the drbd
728 template type and specifies the remote node.
729
730 If you do not want gnt-instance to wait for the disk mirror to be
731 synced, use the ``--no-wait-for-sync`` option.
732
733 The ``--file-storage-dir`` specifies the relative path under the
734 cluster-wide file storage directory to store file-based disks. It is
735 useful for having different subdirectories for different
736 instances. The full path of the directory where the disk files are
737 stored will consist of cluster-wide file storage directory + optional
738 subdirectory + instance name. Example:
739 ``@RPL_FILE_STORAGE_DIR@/mysubdir/instance1.example.com``. This
740 option is only relevant for instances using the file storage backend.
741
742 The ``--file-driver`` specifies the driver to use for file-based
743 disks. Note that currently these drivers work with the xen hypervisor
744 only. This option is only relevant for instances using the file
745 storage backend. The available choices are:
746
747 loop
748     Kernel loopback driver. This driver uses loopback devices to
749     access the filesystem within the file. However, running I/O
750     intensive applications in your instance using the loop driver
751     might result in slowdowns. Furthermore, if you use the loopback
752     driver consider increasing the maximum amount of loopback devices
753     (on most systems it's 8) using the max\_loop param.
754
755 blktap
756     The blktap driver (for Xen hypervisors). In order to be able to
757     use the blktap driver you should check if the 'blktapctrl' user
758     space disk agent is running (usually automatically started via
759     xend).  This user-level disk I/O interface has the advantage of
760     better performance. Especially if you use a network file system
761     (e.g. NFS) to store your instances this is the recommended choice.
762
763 If ``--ignore-ipolicy`` is given any instance policy violations occuring
764 during this operation are ignored.
765
766 See **ganeti**\(7) for a description of ``--submit`` and other common
767 options.
768
769 Example::
770
771     # gnt-instance add -t file --disk 0:size=30g -B maxmem=512 -o debian-etch \
772       -n node1.example.com --file-storage-dir=mysubdir instance1.example.com
773     # gnt-instance add -t plain --disk 0:size=30g -B maxmem=1024,minmem=512 \
774       -o debian-etch -n node1.example.com instance1.example.com
775     # gnt-instance add -t plain --disk 0:size=30g --disk 1:size=100g,vg=san \
776       -B maxmem=512 -o debian-etch -n node1.example.com instance1.example.com
777     # gnt-instance add -t drbd --disk 0:size=30g -B maxmem=512 -o debian-etch \
778       -n node1.example.com:node2.example.com instance2.example.com
779
780
781 BATCH-CREATE
782 ^^^^^^^^^^^^
783
784 **batch-create** {instances\_file.json}
785
786 This command (similar to the Ganeti 1.2 **batcher** tool) submits
787 multiple instance creation jobs based on a definition file. The
788 instance configurations do not encompass all the possible options for
789 the **add** command, but only a subset.
790
791 The instance file should be a valid-formed JSON file, containing a
792 dictionary with instance name and instance parameters. The accepted
793 parameters are:
794
795 disk\_size
796     The size of the disks of the instance.
797
798 disk\_template
799     The disk template to use for the instance, the same as in the
800     **add** command.
801
802 backend
803     A dictionary of backend parameters.
804
805 hypervisor
806     A dictionary with a single key (the hypervisor name), and as value
807     the hypervisor options. If not passed, the default hypervisor and
808     hypervisor options will be inherited.
809
810 mac, ip, mode, link
811     Specifications for the one NIC that will be created for the
812     instance. 'bridge' is also accepted as a backwards compatible
813     key.
814
815 nics
816     List of nics that will be created for the instance. Each entry
817     should be a dict, with mac, ip, mode and link as possible keys.
818     Please don't provide the "mac, ip, mode, link" parent keys if you
819     use this method for specifying nics.
820
821 primary\_node, secondary\_node
822     The primary and optionally the secondary node to use for the
823     instance (in case an iallocator script is not used).
824
825 iallocator
826     Instead of specifying the nodes, an iallocator script can be used
827     to automatically compute them.
828
829 start
830     whether to start the instance
831
832 ip\_check
833     Skip the check for already-in-use instance; see the description in
834     the **add** command for details.
835
836 name\_check
837     Skip the name check for instances; see the description in the
838     **add** command for details.
839
840 file\_storage\_dir, file\_driver
841     Configuration for the file disk type, see the **add** command for
842     details.
843
844
845 A simple definition for one instance can be (with most of the
846 parameters taken from the cluster defaults)::
847
848     {
849       "instance3": {
850         "template": "drbd",
851         "os": "debootstrap",
852         "disk_size": ["25G"],
853         "iallocator": "dumb"
854       },
855       "instance5": {
856         "template": "drbd",
857         "os": "debootstrap",
858         "disk_size": ["25G"],
859         "iallocator": "dumb",
860         "hypervisor": "xen-hvm",
861         "hvparams": {"acpi": true},
862         "backend": {"maxmem": 512, "minmem": 256}
863       }
864     }
865
866 The command will display the job id for each submitted instance, as
867 follows::
868
869     # gnt-instance batch-create instances.json
870     instance3: 11224
871     instance5: 11225
872
873 REMOVE
874 ^^^^^^
875
876 **remove** [\--ignore-failures] [\--shutdown-timeout=*N*] [\--submit]
877 [\--force] {*instance*}
878
879 Remove an instance. This will remove all data from the instance and
880 there is *no way back*. If you are not sure if you use an instance
881 again, use **shutdown** first and leave it in the shutdown state for a
882 while.
883
884 The ``--ignore-failures`` option will cause the removal to proceed
885 even in the presence of errors during the removal of the instance
886 (e.g. during the shutdown or the disk removal). If this option is not
887 given, the command will stop at the first error.
888
889 The ``--shutdown-timeout`` is used to specify how much time to wait
890 before forcing the shutdown (e.g. ``xm destroy`` in Xen, killing the
891 kvm process for KVM, etc.). By default two minutes are given to each
892 instance to stop.
893
894 The ``--force`` option is used to skip the interactive confirmation.
895
896 See **ganeti**\(7) for a description of ``--submit`` and other common
897 options.
898
899 Example::
900
901     # gnt-instance remove instance1.example.com
902
903
904 LIST
905 ^^^^
906
907 | **list**
908 | [\--no-headers] [\--separator=*SEPARATOR*] [\--units=*UNITS*] [-v]
909 | [{-o|\--output} *[+]FIELD,...*] [\--filter] [instance...]
910
911 Shows the currently configured instances with memory usage, disk
912 usage, the node they are running on, and their run status.
913
914 The ``--no-headers`` option will skip the initial header line. The
915 ``--separator`` option takes an argument which denotes what will be
916 used between the output fields. Both these options are to help
917 scripting.
918
919 The units used to display the numeric values in the output varies,
920 depending on the options given. By default, the values will be
921 formatted in the most appropriate unit. If the ``--separator`` option
922 is given, then the values are shown in mebibytes to allow parsing by
923 scripts. In both cases, the ``--units`` option can be used to enforce
924 a given output unit.
925
926 The ``-v`` option activates verbose mode, which changes the display of
927 special field states (see **ganeti**\(7)).
928
929 The ``-o (--output)`` option takes a comma-separated list of output
930 fields. The available fields and their meaning are:
931
932 @QUERY_FIELDS_INSTANCE@
933
934 If the value of the option starts with the character ``+``, the new
935 field(s) will be added to the default list. This allows one to quickly
936 see the default list plus a few other fields, instead of retyping the
937 entire list of fields.
938
939 There is a subtle grouping about the available output fields: all
940 fields except for ``oper_state``, ``oper_ram``, ``oper_vcpus`` and
941 ``status`` are configuration value and not run-time values. So if you
942 don't select any of the these fields, the query will be satisfied
943 instantly from the cluster configuration, without having to ask the
944 remote nodes for the data. This can be helpful for big clusters when
945 you only want some data and it makes sense to specify a reduced set of
946 output fields.
947
948 If exactly one argument is given and it appears to be a query filter
949 (see **ganeti**\(7)), the query result is filtered accordingly. For
950 ambiguous cases (e.g. a single field name as a filter) the ``--filter``
951 (``-F``) option forces the argument to be treated as a filter (e.g.
952 ``gnt-instance list -F admin_state``).
953
954 The default output field list is: ``name``, ``os``, ``pnode``,
955 ``admin_state``, ``oper_state``, ``oper_ram``.
956
957
958 LIST-FIELDS
959 ^^^^^^^^^^^
960
961 **list-fields** [field...]
962
963 Lists available fields for instances.
964
965
966 INFO
967 ^^^^
968
969 **info** [-s \| \--static] [\--roman] {\--all \| *instance*}
970
971 Show detailed information about the given instance(s). This is
972 different from **list** as it shows detailed data about the instance's
973 disks (especially useful for the drbd disk template).
974
975 If the option ``-s`` is used, only information available in the
976 configuration file is returned, without querying nodes, making the
977 operation faster.
978
979 Use the ``--all`` to get info about all instances, rather than
980 explicitly passing the ones you're interested in.
981
982 The ``--roman`` option can be used to cause envy among people who like
983 ancient cultures, but are stuck with non-latin-friendly cluster
984 virtualization technologies.
985
986 MODIFY
987 ^^^^^^
988
989 | **modify**
990 | [{-H|\--hypervisor-parameters} *HYPERVISOR\_PARAMETERS*]
991 | [{-B|\--backend-parameters} *BACKEND\_PARAMETERS*]
992 | [{-m|\--runtime-memory} *SIZE*]
993 | [\--net add*[:options]* \| \--net [*N*:]remove \| \--net *N:options*]
994 | [\--disk add:size=*SIZE*[,vg=*VG*][,metavg=*VG*] \| \--disk [*N*:]remove \|
995 |  \--disk *N*:mode=*MODE*]
996 | [{-t|\--disk-template} plain | {-t|\--disk-template} drbd -n *new_secondary*] [\--no-wait-for-sync]
997 | [\--os-type=*OS* [\--force-variant]]
998 | [{-O|\--os-parameters} *param*=*value*... ]
999 | [\--offline \| \--online]
1000 | [\--submit]
1001 | [\--ignore-ipolicy]
1002 | {*instance*}
1003
1004 Modifies the memory size, number of vcpus, ip address, MAC address
1005 and/or nic parameters for an instance. It can also add and remove
1006 disks and NICs to/from the instance. Note that you need to give at
1007 least one of the arguments, otherwise the command complains.
1008
1009 The ``-H (--hypervisor-parameters)``, ``-B (--backend-parameters)``
1010 and ``-O (--os-parameters)`` options specifies hypervisor, backend and
1011 OS parameter options in the form of name=value[,...]. For details
1012 which options can be specified, see the **add** command.
1013
1014 The ``-t (--disk-template)`` option will change the disk template of
1015 the instance.  Currently only conversions between the plain and drbd
1016 disk templates are supported, and the instance must be stopped before
1017 attempting the conversion. When changing from the plain to the drbd
1018 disk template, a new secondary node must be specified via the ``-n``
1019 option. The option ``--no-wait-for-sync`` can be used when converting
1020 to the ``drbd`` template in order to make the instance available for
1021 startup before DRBD has finished resyncing.
1022
1023 The ``-m (--runtime-memory)`` option will change an instance's runtime
1024 memory to the given size (in MB if a different suffix is not specified),
1025 by ballooning it up or down to the new value.
1026
1027 The ``--disk add:size=``*SIZE* option adds a disk to the instance. The
1028 optional ``vg=``*VG* option specifies an LVM volume group other than
1029 the default volume group to create the disk on. For DRBD disks, the
1030 ``metavg=``*VG* option specifies the volume group for the metadata
1031 device. ``--disk`` *N*``:add,size=``**SIZE** can be used to add a
1032 disk at a specific index. The ``--disk remove`` option will remove the
1033 last disk of the instance. Use ``--disk `` *N*``:remove`` to remove a
1034 disk by its index. The ``--disk`` *N*``:mode=``*MODE* option will change
1035 the mode of the Nth disk of the instance between read-only (``ro``) and
1036 read-write (``rw``).
1037
1038 The ``--net add:``*options* and ``--net`` *N*``:add,``*options* option
1039 will add a new network interface to the instance. The available options
1040 are the same as in the **add** command (``mac``, ``ip``, ``link``,
1041 ``mode``, ``network``). The ``--net remove`` will remove the last network
1042 interface of the instance (``--net`` *N*``:remove`` for a specific index),
1043 while the ``--net`` *N*``:``*options* option will change the parameters of
1044 the Nth instance network interface.
1045
1046 The option ``-o (--os-type)`` will change the OS name for the instance
1047 (without reinstallation). In case an OS variant is specified that is
1048 not found, then by default the modification is refused, unless
1049 ``--force-variant`` is passed. An invalid OS will also be refused,
1050 unless the ``--force`` option is given.
1051
1052 The ``--online`` and ``--offline`` options are used to transition an
1053 instance into and out of the ``offline`` state. An instance can be
1054 turned offline only if it was previously down. The ``--online`` option
1055 fails if the instance was not in the ``offline`` state, otherwise it
1056 changes instance's state to ``down``. These modifications take effect
1057 immediately.
1058
1059 If ``--ignore-ipolicy`` is given any instance policy violations occuring
1060 during this operation are ignored.
1061
1062 See **ganeti**\(7) for a description of ``--submit`` and other common
1063 options.
1064
1065 Most of the changes take effect at the next restart. If the instance is
1066 running, there is no effect on the instance.
1067
1068 REINSTALL
1069 ^^^^^^^^^
1070
1071 | **reinstall** [{-o|\--os-type} *os-type*] [\--select-os] [-f *force*]
1072 | [\--force-multiple]
1073 | [\--instance \| \--node \| \--primary \| \--secondary \| \--all]
1074 | [{-O|\--os-parameters} *OS\_PARAMETERS*] [\--submit] {*instance*...}
1075
1076 Reinstalls the operating system on the given instance(s). The
1077 instance(s) must be stopped when running this command. If the ``-o
1078 (--os-type)`` is specified, the operating system is changed.
1079
1080 The ``--select-os`` option switches to an interactive OS reinstall.
1081 The user is prompted to select the OS template from the list of
1082 available OS templates. OS parameters can be overridden using ``-O
1083 (--os-parameters)`` (more documentation for this option under the
1084 **add** command).
1085
1086 Since this is a potentially dangerous command, the user will be
1087 required to confirm this action, unless the ``-f`` flag is passed.
1088 When multiple instances are selected (either by passing multiple
1089 arguments or by using the ``--node``, ``--primary``, ``--secondary``
1090 or ``--all`` options), the user must pass the ``--force-multiple``
1091 options to skip the interactive confirmation.
1092
1093 See **ganeti**\(7) for a description of ``--submit`` and other common
1094 options.
1095
1096 RENAME
1097 ^^^^^^
1098
1099 | **rename** [\--no-ip-check] [\--no-name-check] [\--submit]
1100 | {*instance*} {*new\_name*}
1101
1102 Renames the given instance. The instance must be stopped when running
1103 this command. The requirements for the new name are the same as for
1104 adding an instance: the new name must be resolvable and the IP it
1105 resolves to must not be reachable (in order to prevent duplicate IPs
1106 the next time the instance is started). The IP test can be skipped if
1107 the ``--no-ip-check`` option is passed.
1108
1109 Note that you can rename an instance to its same name, to force
1110 re-executing the os-specific rename script for that instance, if
1111 needed.
1112
1113 The ``--no-name-check`` skips the check for the new instance name via
1114 the resolver (e.g. in DNS or /etc/hosts, depending on your setup) and
1115 that the resolved name matches the provided name. Since the name check
1116 is used to compute the IP address, if you pass this option you must also
1117 pass the ``--no-ip-check`` option.
1118
1119 See **ganeti**\(7) for a description of ``--submit`` and other common
1120 options.
1121
1122 Starting/stopping/connecting to console
1123 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1124
1125 STARTUP
1126 ^^^^^^^
1127
1128 | **startup**
1129 | [\--force] [\--ignore-offline]
1130 | [\--force-multiple] [\--no-remember]
1131 | [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1132 | \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1133 | [{-H|\--hypervisor-parameters} ``key=value...``]
1134 | [{-B|\--backend-parameters} ``key=value...``]
1135 | [\--submit] [\--paused]
1136 | {*name*...}
1137
1138 Starts one or more instances, depending on the following options.  The
1139 four available modes are:
1140
1141 \--instance
1142     will start the instances given as arguments (at least one argument
1143     required); this is the default selection
1144
1145 \--node
1146     will start the instances who have the given node as either primary
1147     or secondary
1148
1149 \--primary
1150     will start all instances whose primary node is in the list of nodes
1151     passed as arguments (at least one node required)
1152
1153 \--secondary
1154     will start all instances whose secondary node is in the list of
1155     nodes passed as arguments (at least one node required)
1156
1157 \--all
1158     will start all instances in the cluster (no arguments accepted)
1159
1160 \--tags
1161     will start all instances in the cluster with the tags given as
1162     arguments
1163
1164 \--node-tags
1165     will start all instances in the cluster on nodes with the tags
1166     given as arguments
1167
1168 \--pri-node-tags
1169     will start all instances in the cluster on primary nodes with the
1170     tags given as arguments
1171
1172 \--sec-node-tags
1173     will start all instances in the cluster on secondary nodes with the
1174     tags given as arguments
1175
1176 Note that although you can pass more than one selection option, the
1177 last one wins, so in order to guarantee the desired result, don't pass
1178 more than one such option.
1179
1180 Use ``--force`` to start even if secondary disks are failing.
1181 ``--ignore-offline`` can be used to ignore offline primary nodes and
1182 mark the instance as started even if the primary is not available.
1183
1184 The ``--force-multiple`` will skip the interactive confirmation in the
1185 case the more than one instance will be affected.
1186
1187 The ``--no-remember`` option will perform the startup but not change
1188 the state of the instance in the configuration file (if it was stopped
1189 before, Ganeti will still think it needs to be stopped). This can be
1190 used for testing, or for a one shot-start where you don't want the
1191 watcher to restart the instance if it crashes.
1192
1193 The ``-H (--hypervisor-parameters)`` and ``-B (--backend-parameters)``
1194 options specify temporary hypervisor and backend parameters that can
1195 be used to start an instance with modified parameters. They can be
1196 useful for quick testing without having to modify an instance back and
1197 forth, e.g.::
1198
1199     # gnt-instance start -H kernel_args="single" instance1
1200     # gnt-instance start -B maxmem=2048 instance2
1201
1202
1203 The first form will start the instance instance1 in single-user mode,
1204 and the instance instance2 with 2GB of RAM (this time only, unless
1205 that is the actual instance memory size already). Note that the values
1206 override the instance parameters (and not extend them): an instance
1207 with "kernel\_args=ro" when started with -H kernel\_args=single will
1208 result in "single", not "ro single".
1209
1210 The ``--paused`` option is only valid for Xen and kvm hypervisors.  This
1211 pauses the instance at the start of bootup, awaiting ``gnt-instance
1212 console`` to unpause it, allowing the entire boot process to be
1213 monitored for debugging.
1214
1215 See **ganeti**\(7) for a description of ``--submit`` and other common
1216 options.
1217
1218 Example::
1219
1220     # gnt-instance start instance1.example.com
1221     # gnt-instance start --node node1.example.com node2.example.com
1222     # gnt-instance start --all
1223
1224
1225 SHUTDOWN
1226 ^^^^^^^^
1227
1228 | **shutdown**
1229 | [\--timeout=*N*]
1230 | [\--force] [\--force-multiple] [\--ignore-offline] [\--no-remember]
1231 | [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1232 | \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1233 | [\--submit]
1234 | {*name*...}
1235
1236 Stops one or more instances. If the instance cannot be cleanly stopped
1237 during a hardcoded interval (currently 2 minutes), it will forcibly
1238 stop the instance (equivalent to switching off the power on a physical
1239 machine).
1240
1241 The ``--timeout`` is used to specify how much time to wait before
1242 forcing the shutdown (e.g. ``xm destroy`` in Xen, killing the kvm
1243 process for KVM, etc.). By default two minutes are given to each
1244 instance to stop.
1245
1246 The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1247 ``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1248 ``--sec-node-tags`` options are similar as for the **startup** command
1249 and they influence the actual instances being shutdown.
1250
1251 ``--ignore-offline`` can be used to ignore offline primary nodes and
1252 force the instance to be marked as stopped. This option should be used
1253 with care as it can lead to an inconsistent cluster state.
1254
1255 Use ``--force`` to be able to shutdown an instance even when it's marked
1256 as offline. This is useful is an offline instance ends up in the
1257 ``ERROR_up`` state, for example.
1258
1259 The ``--no-remember`` option will perform the shutdown but not change
1260 the state of the instance in the configuration file (if it was running
1261 before, Ganeti will still thinks it needs to be running). This can be
1262 useful for a cluster-wide shutdown, where some instances are marked as
1263 up and some as down, and you don't want to change the running state:
1264 you just need to disable the watcher, shutdown all instances with
1265 ``--no-remember``, and when the watcher is activated again it will
1266 restore the correct runtime state for all instances.
1267
1268 See **ganeti**\(7) for a description of ``--submit`` and other common
1269 options.
1270
1271 Example::
1272
1273     # gnt-instance shutdown instance1.example.com
1274     # gnt-instance shutdown --all
1275
1276
1277 REBOOT
1278 ^^^^^^
1279
1280 | **reboot**
1281 | [{-t|\--type} *REBOOT-TYPE*]
1282 | [\--ignore-secondaries]
1283 | [\--shutdown-timeout=*N*]
1284 | [\--force-multiple]
1285 | [\--instance \| \--node \| \--primary \| \--secondary \| \--all \|
1286 | \--tags \| \--node-tags \| \--pri-node-tags \| \--sec-node-tags]
1287 | [\--submit]
1288 | [*name*...]
1289
1290 Reboots one or more instances. The type of reboot depends on the value
1291 of ``-t (--type)``. A soft reboot does a hypervisor reboot, a hard reboot
1292 does a instance stop, recreates the hypervisor config for the instance
1293 and starts the instance. A full reboot does the equivalent of
1294 **gnt-instance shutdown && gnt-instance startup**.  The default is
1295 hard reboot.
1296
1297 For the hard reboot the option ``--ignore-secondaries`` ignores errors
1298 for the secondary node while re-assembling the instance disks.
1299
1300 The ``--instance``, ``--node``, ``--primary``, ``--secondary``,
1301 ``--all``, ``--tags``, ``--node-tags``, ``--pri-node-tags`` and
1302 ``--sec-node-tags`` options are similar as for the **startup** command
1303 and they influence the actual instances being rebooted.
1304
1305 The ``--shutdown-timeout`` is used to specify how much time to wait
1306 before forcing the shutdown (xm destroy in xen, killing the kvm
1307 process, for kvm). By default two minutes are given to each instance
1308 to stop.
1309
1310 The ``--force-multiple`` will skip the interactive confirmation in the
1311 case the more than one instance will be affected.
1312
1313 See **ganeti**\(7) for a description of ``--submit`` and other common
1314 options.
1315
1316 Example::
1317
1318     # gnt-instance reboot instance1.example.com
1319     # gnt-instance reboot --type=full instance1.example.com
1320
1321
1322 CONSOLE
1323 ^^^^^^^
1324
1325 **console** [\--show-cmd] {*instance*}
1326
1327 Connects to the console of the given instance. If the instance is not
1328 up, an error is returned. Use the ``--show-cmd`` option to display the
1329 command instead of executing it.
1330
1331 For HVM instances, this will attempt to connect to the serial console
1332 of the instance. To connect to the virtualized "physical" console of a
1333 HVM instance, use a VNC client with the connection info from the
1334 **info** command.
1335
1336 For Xen/kvm instances, if the instance is paused, this attempts to
1337 unpause the instance after waiting a few seconds for the connection to
1338 the console to be made.
1339
1340 Example::
1341
1342     # gnt-instance console instance1.example.com
1343
1344
1345 Disk management
1346 ~~~~~~~~~~~~~~~
1347
1348 REPLACE-DISKS
1349 ^^^^^^^^^^^^^
1350
1351 **replace-disks** [\--submit] [\--early-release] [\--ignore-ipolicy] {-p}
1352 [\--disks *idx*] {*instance*}
1353
1354 **replace-disks** [\--submit] [\--early-release] [\--ignore-ipolicy] {-s}
1355 [\--disks *idx*] {*instance*}
1356
1357 **replace-disks** [\--submit] [\--early-release] [\--ignore-ipolicy]
1358 {{-I\|\--iallocator} *name* \| {{-n|\--new-secondary} *node* } {*instance*}
1359
1360 **replace-disks** [\--submit] [\--early-release] [\--ignore-ipolicy]
1361 {-a\|\--auto} {*instance*}
1362
1363 This command is a generalized form for replacing disks. It is
1364 currently only valid for the mirrored (DRBD) disk template.
1365
1366 The first form (when passing the ``-p`` option) will replace the disks
1367 on the primary, while the second form (when passing the ``-s`` option
1368 will replace the disks on the secondary node. For these two cases (as
1369 the node doesn't change), it is possible to only run the replace for a
1370 subset of the disks, using the option ``--disks`` which takes a list
1371 of comma-delimited disk indices (zero-based), e.g. 0,2 to replace only
1372 the first and third disks.
1373
1374 The third form (when passing either the ``--iallocator`` or the
1375 ``--new-secondary`` option) is designed to change secondary node of the
1376 instance. Specifying ``--iallocator`` makes the new secondary be
1377 selected automatically by the specified allocator plugin (use ``.`` to
1378 indicate the default allocator), otherwise the new secondary node will
1379 be the one chosen manually via the ``--new-secondary`` option.
1380
1381 Note that it is not possible to select an offline or drained node as a
1382 new secondary.
1383
1384 The fourth form (when using ``--auto``) will automatically determine
1385 which disks of an instance are faulty and replace them within the same
1386 node. The ``--auto`` option works only when an instance has only
1387 faulty disks on either the primary or secondary node; it doesn't work
1388 when both sides have faulty disks.
1389
1390 The ``--early-release`` changes the code so that the old storage on
1391 secondary node(s) is removed early (before the resync is completed)
1392 and the internal Ganeti locks for the current (and new, if any)
1393 secondary node are also released, thus allowing more parallelism in
1394 the cluster operation. This should be used only when recovering from a
1395 disk failure on the current secondary (thus the old storage is already
1396 broken) or when the storage on the primary node is known to be fine
1397 (thus we won't need the old storage for potential recovery).
1398
1399 The ``--ignore-ipolicy`` let the command ignore instance policy
1400 violations if replace-disks changes groups and the instance would
1401 violate the new groups instance policy.
1402
1403 See **ganeti**\(7) for a description of ``--submit`` and other common
1404 options.
1405
1406 ACTIVATE-DISKS
1407 ^^^^^^^^^^^^^^
1408
1409 **activate-disks** [\--submit] [\--ignore-size] [\--wait-for-sync] {*instance*}
1410
1411 Activates the block devices of the given instance. If successful, the
1412 command will show the location and name of the block devices::
1413
1414     node1.example.com:disk/0:/dev/drbd0
1415     node1.example.com:disk/1:/dev/drbd1
1416
1417
1418 In this example, *node1.example.com* is the name of the node on which
1419 the devices have been activated. The *disk/0* and *disk/1* are the
1420 Ganeti-names of the instance disks; how they are visible inside the
1421 instance is hypervisor-specific. */dev/drbd0* and */dev/drbd1* are the
1422 actual block devices as visible on the node.
1423
1424 The ``--ignore-size`` option can be used to activate disks ignoring
1425 the currently configured size in Ganeti. This can be used in cases
1426 where the configuration has gotten out of sync with the real-world
1427 (e.g. after a partially-failed grow-disk operation or due to rounding
1428 in LVM devices). This should not be used in normal cases, but only
1429 when activate-disks fails without it.
1430
1431 The ``--wait-for-sync`` option will ensure that the command returns only
1432 after the instance's disks are synchronised (mostly for DRBD); this can
1433 be useful to ensure consistency, as otherwise there are no commands that
1434 can wait until synchronisation is done. However when passing this
1435 option, the command will have additional output, making it harder to
1436 parse the disk information.
1437
1438 Note that it is safe to run this command while the instance is already
1439 running.
1440
1441 See **ganeti**\(7) for a description of ``--submit`` and other common
1442 options.
1443
1444 DEACTIVATE-DISKS
1445 ^^^^^^^^^^^^^^^^
1446
1447 **deactivate-disks** [-f] [\--submit] {*instance*}
1448
1449 De-activates the block devices of the given instance. Note that if you
1450 run this command for an instance with a drbd disk template, while it
1451 is running, it will not be able to shutdown the block devices on the
1452 primary node, but it will shutdown the block devices on the secondary
1453 nodes, thus breaking the replication.
1454
1455 The ``-f``/``--force`` option will skip checks that the instance is
1456 down; in case the hypervisor is confused and we can't talk to it,
1457 normally Ganeti will refuse to deactivate the disks, but with this
1458 option passed it will skip this check and directly try to deactivate
1459 the disks. This can still fail due to the instance actually running or
1460 other issues.
1461
1462 See **ganeti**\(7) for a description of ``--submit`` and other common
1463 options.
1464
1465 GROW-DISK
1466 ^^^^^^^^^
1467
1468 | **grow-disk** [\--no-wait-for-sync] [\--submit] [\--absolute]
1469 | {*instance*} {*disk*} {*amount*}
1470
1471 Grows an instance's disk. This is only possible for instances having a
1472 plain, drbd, file, sharedfile or rbd disk template.
1473
1474 Note that this command only change the block device size; it will not
1475 grow the actual filesystems, partitions, etc. that live on that
1476 disk. Usually, you will need to:
1477
1478 #. use **gnt-instance grow-disk**
1479
1480 #. reboot the instance (later, at a convenient time)
1481
1482 #. use a filesystem resizer, such as **ext2online**\(8) or
1483    **xfs\_growfs**\(8) to resize the filesystem, or use **fdisk**\(8) to
1484    change the partition table on the disk
1485
1486 The *disk* argument is the index of the instance disk to grow. The
1487 *amount* argument is given as a number which can have a suffix (like the
1488 disk size in instance create); if the suffix is missing, the value will
1489 be interpreted as mebibytes.
1490
1491 By default, the *amount* value represents the desired increase in the
1492 disk size (e.g. an amount of 1G will take a disk of size 3G to 4G). If
1493 the optional ``--absolute`` parameter is passed, then the *amount*
1494 argument doesn't represent the delta, but instead the desired final disk
1495 size (e.g. an amount of 8G will take a disk of size 4G to 8G).
1496
1497 For instances with a drbd template, note that the disk grow operation
1498 might complete on one node but fail on the other; this will leave the
1499 instance with different-sized LVs on the two nodes, but this will not
1500 create problems (except for unused space).
1501
1502 If you do not want gnt-instance to wait for the new disk region to be
1503 synced, use the ``--no-wait-for-sync`` option.
1504
1505 See **ganeti**\(7) for a description of ``--submit`` and other common
1506 options.
1507
1508 Example (increase the first disk for instance1 by 16GiB)::
1509
1510     # gnt-instance grow-disk instance1.example.com 0 16g
1511
1512 Example for increasing the disk size to a certain size::
1513
1514    # gnt-instance grow-disk --absolute instance1.example.com 0 32g
1515
1516 Also note that disk shrinking is not supported; use **gnt-backup
1517 export** and then **gnt-backup import** to reduce the disk size of an
1518 instance.
1519
1520 RECREATE-DISKS
1521 ^^^^^^^^^^^^^^
1522
1523 | **recreate-disks** [\--submit]
1524 | [{-n node1:[node2] \| {-I\|\--iallocator *name*}}]
1525 | [\--disk=*N*[:[size=*VAL*][,mode=*ro\|rw*]]] {*instance*}
1526
1527 Recreates all or a subset of disks of the given instance.
1528
1529 Note that this functionality should only be used for missing disks; if
1530 any of the given disks already exists, the operation will fail.  While
1531 this is suboptimal, recreate-disks should hopefully not be needed in
1532 normal operation and as such the impact of this is low.
1533
1534 If only a subset should be recreated, any number of ``disk`` options can
1535 be specified. It expects a disk index and an optional list of disk
1536 parameters to change. Only ``size`` and ``mode`` can be changed while
1537 recreating disks. To recreate all disks while changing parameters on
1538 a subset only, a ``--disk`` option must be given for every disk of the
1539 instance.
1540
1541 Optionally the instance's disks can be recreated on different
1542 nodes. This can be useful if, for example, the original nodes of the
1543 instance have gone down (and are marked offline), so we can't recreate
1544 on the same nodes. To do this, pass the new node(s) via ``-n`` option,
1545 with a syntax similar to the **add** command. The number of nodes
1546 passed must equal the number of nodes that the instance currently
1547 has. Note that changing nodes is only allowed when all disks are
1548 replaced, e.g. when no ``--disk`` option is passed.
1549
1550 Another method of choosing which nodes to place the instance on is by
1551 using the specified iallocator, passing the ``--iallocator`` option.
1552 The primary and secondary nodes will be chosen by the specified
1553 iallocator plugin, or by the default allocator if ``.`` is specified.
1554
1555 See **ganeti**\(7) for a description of ``--submit`` and other common
1556 options.
1557
1558 Recovery/moving
1559 ~~~~~~~~~~~~~~~
1560
1561 FAILOVER
1562 ^^^^^^^^
1563
1564 | **failover** [-f] [\--ignore-consistency] [\--ignore-ipolicy]
1565 | [\--shutdown-timeout=*N*]
1566 | [{-n|\--target-node} *node* \| {-I|\--iallocator} *name*]
1567 | [\--submit]
1568 | {*instance*}
1569
1570 Failover will stop the instance (if running), change its primary node,
1571 and if it was originally running it will start it again (on the new
1572 primary). This only works for instances with drbd template (in which
1573 case you can only fail to the secondary node) and for externally
1574 mirrored templates (blockdev and rbd) (which can change to any other
1575 node).
1576
1577 If the instance's disk template is of type blockdev or rbd, then you
1578 can explicitly specify the target node (which can be any node) using
1579 the ``-n`` or ``--target-node`` option, or specify an iallocator plugin
1580 using the ``-I`` or ``--iallocator`` option. If you omit both, the default
1581 iallocator will be used to specify the target node.
1582
1583 Normally the failover will check the consistency of the disks before
1584 failing over the instance. If you are trying to migrate instances off
1585 a dead node, this will fail. Use the ``--ignore-consistency`` option
1586 for this purpose. Note that this option can be dangerous as errors in
1587 shutting down the instance will be ignored, resulting in possibly
1588 having the instance running on two machines in parallel (on
1589 disconnected DRBD drives).
1590
1591 The ``--shutdown-timeout`` is used to specify how much time to wait
1592 before forcing the shutdown (xm destroy in xen, killing the kvm
1593 process, for kvm). By default two minutes are given to each instance
1594 to stop.
1595
1596 If ``--ignore-ipolicy`` is given any instance policy violations occuring
1597 during this operation are ignored.
1598
1599 See **ganeti**\(7) for a description of ``--submit`` and other common
1600 options.
1601
1602 Example::
1603
1604     # gnt-instance failover instance1.example.com
1605
1606
1607 MIGRATE
1608 ^^^^^^^
1609
1610 | **migrate** [-f] [\--allow-failover] [\--non-live]
1611 | [\--migration-mode=live\|non-live] [\--ignore-ipolicy]
1612 | [\--no-runtime-changes] [\--submit]
1613 | [{-n|\--target-node} *node* \| {-I|\--iallocator} *name*] {*instance*}
1614
1615 | **migrate** [-f] \--cleanup [\--submit] {*instance*}
1616
1617 Migrate will move the instance to its secondary node without shutdown.
1618 As with failover, it only works for instances having the drbd disk
1619 template or an externally mirrored disk template type such as blockdev
1620 or rbd.
1621
1622 If the instance's disk template is of type blockdev or rbd, then you can
1623 explicitly specify the target node (which can be any node) using the
1624 ``-n`` or ``--target-node`` option, or specify an iallocator plugin
1625 using the ``-I`` or ``--iallocator`` option. If you omit both, the
1626 default iallocator will be used to specify the target node.
1627 Alternatively, the default iallocator can be requested by specifying
1628 ``.`` as the name of the plugin.
1629
1630 The migration command needs a perfectly healthy instance, as we rely
1631 on the dual-master capability of drbd8 and the disks of the instance
1632 are not allowed to be degraded.
1633
1634 The ``--non-live`` and ``--migration-mode=non-live`` options will
1635 switch (for the hypervisors that support it) between a "fully live"
1636 (i.e. the interruption is as minimal as possible) migration and one in
1637 which the instance is frozen, its state saved and transported to the
1638 remote node, and then resumed there. This all depends on the
1639 hypervisor support for two different methods. In any case, it is not
1640 an error to pass this parameter (it will just be ignored if the
1641 hypervisor doesn't support it). The option ``--migration-mode=live``
1642 option will request a fully-live migration. The default, when neither
1643 option is passed, depends on the hypervisor parameters (and can be
1644 viewed with the **gnt-cluster info** command).
1645
1646 If the ``--cleanup`` option is passed, the operation changes from
1647 migration to attempting recovery from a failed previous migration.  In
1648 this mode, Ganeti checks if the instance runs on the correct node (and
1649 updates its configuration if not) and ensures the instances' disks
1650 are configured correctly. In this mode, the ``--non-live`` option is
1651 ignored.
1652
1653 The option ``-f`` will skip the prompting for confirmation.
1654
1655 If ``--allow-failover`` is specified it tries to fallback to failover if
1656 it already can determine that a migration won't work (e.g. if the
1657 instance is shut down). Please note that the fallback will not happen
1658 during execution. If a migration fails during execution it still fails.
1659
1660 If ``--ignore-ipolicy`` is given any instance policy violations occuring
1661 during this operation are ignored.
1662
1663 The ``--no-runtime-changes`` option forbids migrate to alter an
1664 instance's runtime before migrating it (eg. ballooning an instance
1665 down because the target node doesn't have enough available memory).
1666
1667 If an instance has the backend parameter ``always_failover`` set to
1668 true, then the migration is automatically converted into a failover.
1669
1670 See **ganeti**\(7) for a description of ``--submit`` and other common
1671 options.
1672
1673 Example (and expected output)::
1674
1675     # gnt-instance migrate instance1
1676     Instance instance1 will be migrated. Note that migration
1677     might impact the instance if anything goes wrong (e.g. due to bugs in
1678     the hypervisor). Continue?
1679     y/[n]/?: y
1680     Migrating instance instance1.example.com
1681     * checking disk consistency between source and target
1682     * switching node node2.example.com to secondary mode
1683     * changing into standalone mode
1684     * changing disks into dual-master mode
1685     * wait until resync is done
1686     * preparing node2.example.com to accept the instance
1687     * migrating instance to node2.example.com
1688     * switching node node1.example.com to secondary mode
1689     * wait until resync is done
1690     * changing into standalone mode
1691     * changing disks into single-master mode
1692     * wait until resync is done
1693     * done
1694     #
1695
1696
1697 MOVE
1698 ^^^^
1699
1700 | **move** [-f] [\--ignore-consistency]
1701 | [-n *node*] [\--shutdown-timeout=*N*] [\--submit] [\--ignore-ipolicy]
1702 | {*instance*}
1703
1704 Move will move the instance to an arbitrary node in the cluster.  This
1705 works only for instances having a plain or file disk template.
1706
1707 Note that since this operation is done via data copy, it will take a
1708 long time for big disks (similar to replace-disks for a drbd
1709 instance).
1710
1711 The ``--shutdown-timeout`` is used to specify how much time to wait
1712 before forcing the shutdown (e.g. ``xm destroy`` in XEN, killing the
1713 kvm process for KVM, etc.). By default two minutes are given to each
1714 instance to stop.
1715
1716 The ``--ignore-consistency`` option will make Ganeti ignore any errors
1717 in trying to shutdown the instance on its node; useful if the
1718 hypervisor is broken and you want to recover the data.
1719
1720 If ``--ignore-ipolicy`` is given any instance policy violations occuring
1721 during this operation are ignored.
1722
1723 See **ganeti**\(7) for a description of ``--submit`` and other common
1724 options.
1725
1726 Example::
1727
1728     # gnt-instance move -n node3.example.com instance1.example.com
1729
1730
1731 CHANGE-GROUP
1732 ^^^^^^^^^^^^
1733
1734 | **change-group** [\--submit]
1735 | [\--iallocator *NAME*] [\--to *GROUP*...] {*instance*}
1736
1737 This command moves an instance to another node group. The move is
1738 calculated by an iallocator, either given on the command line or as a
1739 cluster default.
1740
1741 If no specific destination groups are specified using ``--to``, all
1742 groups except the one containing the instance are considered.
1743
1744 See **ganeti**\(7) for a description of ``--submit`` and other common
1745 options.
1746
1747 Example::
1748
1749     # gnt-instance change-group -I hail --to rack2 inst1.example.com
1750
1751
1752 Tags
1753 ~~~~
1754
1755 ADD-TAGS
1756 ^^^^^^^^
1757
1758 **add-tags** [\--from *file*] {*instancename*} {*tag*...}
1759
1760 Add tags to the given instance. If any of the tags contains invalid
1761 characters, the entire operation will abort.
1762
1763 If the ``--from`` option is given, the list of tags will be extended
1764 with the contents of that file (each line becomes a tag).  In this
1765 case, there is not need to pass tags on the command line (if you do,
1766 both sources will be used). A file name of ``-`` will be interpreted
1767 as stdin.
1768
1769 LIST-TAGS
1770 ^^^^^^^^^
1771
1772 **list-tags** {*instancename*}
1773
1774 List the tags of the given instance.
1775
1776 REMOVE-TAGS
1777 ^^^^^^^^^^^
1778
1779 **remove-tags** [\--from *file*] {*instancename*} {*tag*...}
1780
1781 Remove tags from the given instance. If any of the tags are not
1782 existing on the node, the entire operation will abort.
1783
1784 If the ``--from`` option is given, the list of tags to be removed will
1785 be extended with the contents of that file (each line becomes a tag).
1786 In this case, there is not need to pass tags on the command line (if
1787 you do, tags from both sources will be removed). A file name of ``-``
1788 will be interpreted as stdin.
1789
1790 .. vim: set textwidth=72 :
1791 .. Local Variables:
1792 .. mode: rst
1793 .. fill-column: 72
1794 .. End: