1 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
3 <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4 <!-- Please adjust the date whenever revising the manpage. -->
5 <!ENTITY dhdate "<date>May 16, 2007</date>">
6 <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7 allowed: see man(7), man(1). -->
8 <!ENTITY dhsection "<manvolnum>8</manvolnum>">
9 <!ENTITY dhucpackage "<refentrytitle>gnt-instance</refentrytitle>">
10 <!ENTITY dhpackage "gnt-instance">
12 <!ENTITY debian "<productname>Debian</productname>">
13 <!ENTITY gnu "<acronym>GNU</acronym>">
14 <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
15 <!ENTITY footer SYSTEM "footer.sgml">
23 <holder>Google Inc.</holder>
31 <refmiscinfo>ganeti 1.2</refmiscinfo>
34 <refname>&dhpackage;</refname>
36 <refpurpose>ganeti instance administration</refpurpose>
40 <command>&dhpackage; </command>
42 <arg choice="req">command</arg>
43 <arg>arguments...</arg>
47 <title>DESCRIPTION</title>
50 The <command>&dhpackage;</command> is used for instance
51 administration in the ganeti system.
56 <title>COMMANDS</title>
59 <title>Creation/removal/querying</title>
64 <command>add</command>
65 <arg>-s <replaceable>disksize</replaceable></arg>
66 <arg>--swap-size <replaceable>disksize</replaceable></arg>
67 <arg>-m <replaceable>memsize</replaceable></arg>
70 <arg>-b <replaceable>bridge</replaceable></arg>
71 <arg>--mac <replaceable>MAC-address</replaceable></arg>
74 <arg>--hvm-boot-order <replaceable>boot-order</replaceable></arg>
75 <arg>--hvm-acpi <replaceable>ACPI-support</replaceable></arg>
78 <arg>--hvm-pae <replaceable>PAE-support</replaceable></arg>
81 <arg>--hvm-cdrom-image-path
82 <replaceable>cdrom-image-path</replaceable></arg>
85 <arg>--vnc-bind-address
86 <replaceable>vnc-bind-address</replaceable></arg>
89 <arg>--kernel<group choice="req">
91 <arg><replaceable>kernel_path</replaceable></arg>
95 <arg>--initrd<group choice="req">
98 <arg><replaceable>initrd_path</replaceable></arg>
102 <arg>--file-storage-dir <replaceable>dir_path</replaceable></arg>
103 <arg>--file-driver<group choice="req">
109 <arg choice="req">-t<group choice="req">
117 <arg choice="req">-n <replaceable>node<optional>:secondary-node</optional></replaceable></arg>
118 <arg choice="req">-o <replaceable>os-type</replaceable></arg>
121 <arg choice="req"><replaceable>instance</replaceable></arg>
125 Creates a new instance on the specified
126 host. <replaceable>instance</replaceable> must be in DNS and
127 resolve to a IP in the same network as the nodes in the
132 The <option>-s</option> option specifies the disk size for
133 the instance, in mebibytes (defaults to
134 <constant>20480MiB</constant> =
135 <constant>20GiB</constant>). You can also use one of the
136 suffixes <literal>m</literal>, <literal>g</literal> or
137 <literal>t</literal> to specificy the exact the units used;
138 these suffixes map to mebibytes, gibibytes and tebibytes.
142 The <option>--swap-size</option> option specifies the swap
143 disk size (in mebibytes) for the instance (the one presented
144 as <filename class="devicefile">/dev/sdb</filename>). The
145 default is <constant>4096MiB</constant>. As for the disk
146 size, you can specify other suffixes.
150 The <option>-m</option> option specifies the memory size for
151 the instance, in mebibytes (defaults to 128 MiB). Again, you
152 can use other suffixes (e.g. <userinput>2g</userinput>).
156 The <option>-o</option> options specifies the operating
157 system to be installed. The available operating systems can
158 be listed with <command>gnt-os list</command>.
162 The <option>-b</option> option specifies the bridge to which the
163 instance will be connected. (defaults to the cluster-wide default
164 bridge specified at cluster initialization time).
168 The <option>--mac</option> option specifies the MAC address
169 of the ethernet interface for the instance. If this option
170 is not specified, a new MAC address is generated randomly with
171 the configured MAC prefix. The randomly generated MAC
172 address is guaranteed to be unique among the instances of
177 The <option>--hvm-boot-order</option> option specifies the
178 boot device order for Xen HVM instances. The boot order is a
179 string of letters listing the boot devices, with valid
180 device letters being:
221 The option is only relevant for Xen HVM instances and
222 ignored by all other instances types.
226 The <option>--hvm-acpi</option> option specifies if Xen
227 should enable ACPI support for this HVM instance. Valid
228 values are true or false.
232 The <option>--hvm-pae</option> option specifies if Xen
233 should enabled PAE support for this HVM instance. Valid
234 values are true or false.
238 The <option>--hvm-cdrom-image-path</option> specifies the
239 path to the file xen uses to emulate a virtual CDROM drive
240 for this HVM instance. Valid values are either an
241 absolute path to an existing file or None, which disables
242 virtual CDROM support for this instance.
246 The <option>--vnc-bind-address</option> specifies the
247 address that the VNC listener for this instance should bind
248 to. Valid values are IPv4 addresses. Use the address 0.0.0.0
249 to bind to all available interfaces.
253 The <option>--kernel</option> options allows the instance to
254 use a custom kernel (if a filename is passed) or to use the
255 default kernel (<filename>@CUSTOM_XEN_KERNEL@</filename>), if the
256 string <constant>default</constant> is passed.
260 The <option>--initrd</option> option is similar: it allows
261 the instance to use a custom initrd (if a filename is
262 passed) or to use the default initrd
263 (<filename>@CUSTOM_XEN_INITRD@</filename>), if the string
264 <constant>default</constant> is passed, or to disable the
265 use of an initrd, if the string <constant>none</constant> is
266 passed. Note that in the case the instance is set to use the
267 default initrd and it doesn't exist, it will be silently
268 ignored; if the instance is set to use a custom initrd and
269 it doesn't exist, this will be treated as an error and will
270 prevent the startup of the instance.
274 The <option>-t</option> options specifies the disk layout type for
275 the instance. The available choices are:
278 <term>diskless</term>
281 This creates an instance with no disks. Its useful for
282 testing only (or other special cases).
289 <para>Disk devices will be regular files.</para>
295 <para>Disk devices will be logical volumes.</para>
302 Disk devices will be drbd (version 8.x) on top of
311 The optional second value of the <option>--node</option> is used for
312 the drbd template type and specifies the remote node.
316 If you do not want gnt-instance to wait for the disk mirror
317 to be synced, use the <option>--no-wait-for-sync</option>
322 The <option>--file-storage-dir</option> specifies the relative path
323 under the cluster-wide file storage directory to store file-based
324 disks. It is useful for having different subdirectories for
325 different instances. The full path of the directory where the disk
326 files are stored will consist of cluster-wide file storage directory
327 + optional subdirectory + instance name. Example:
328 /srv/ganeti/file-storage/mysubdir/instance1.example.com. This option
329 is only relevant for instances using the file storage backend.
333 The <option>--file-driver</option> specifies the driver to use for
334 file-based disks. Note that currently these drivers work with the
335 xen hypervisor only. This option is only relevant for instances using
336 the file storage backend. The available choices are:
341 <para>Kernel loopback driver.</para>
347 <para>blktap driver.</para>
354 The loop driver uses loopback devices to access the filesystem
355 within the file. However, running I/O intensive applications
356 in your instance using the loop driver might result in slowdowns.
357 Furthermore, if you use the loopback driver consider increasing
358 the maximum amount of loopback devices (on most systems it's 8)
359 using the max_loop param.
363 In order to be able to use the blktap driver you should check
364 if the 'blktapctrl' user space disk agent is running (usually
365 automatically started via xend). This user-level disk I/O
366 interface has the advantage of better performance. Especially
367 if you use a network file system (e.g. NFS) to store your instances
368 this is the recommended choice.
374 # gnt-instance add -t file -s 30g -m 512 -o debian-etch \
375 -n node1.example.com --file-storage-dir=mysubdir instance1.example.com
376 # gnt-instance add -t plain -s 30g -m 512 -o debian-etch \
377 -n node1.example.com instance1.example.com
378 # gnt-instance add -t drbd -s 30g -m 512 -o debian-etch \
379 -n node1.example.com:node2.example.com instance2.example.com
385 <title>REMOVE</title>
388 <command>remove</command>
389 <arg>--ignore-failures</arg>
390 <arg choice="req"><replaceable>instance</replaceable></arg>
394 Remove an instance. This will remove all data from the
395 instance and there is <emphasis>no way back</emphasis>. If
396 you are not sure if you use an instance again, use
397 <command>shutdown</command> first and leave it in the
398 shutdown state for a while.
403 The <option>--ignore-failures</option> option will cause the
404 removal to proceed even in the presence of errors during the
405 removal of the instance (e.g. during the shutdown or the
406 disk removal). If this option is not given, the command will
407 stop at the first error.
413 # gnt-instance remove instance1.example.com
422 <command>list</command>
423 <arg>--no-headers</arg>
424 <arg>--separator=<replaceable>SEPARATOR</replaceable></arg>
425 <arg>-o <replaceable>[+]FIELD,...</replaceable></arg>
429 Shows the currently configured instances with memory usage,
430 disk usage, the node they are running on, and the CPU time,
431 counted in seconds, used by each instance since its latest
436 The <option>--no-headers</option> option will skip the
437 initial header line. The <option>--separator</option> option
438 takes an argument which denotes what will be used between
439 the output fields. Both these options are to help scripting.
443 The <option>-o</option> option takes a comma-separated list
444 of output fields. The available fields and their meaning
450 <simpara>the instance name</simpara>
456 <simpara>the OS of the instance</simpara>
462 <simpara>the primary node of the instance</simpara>
468 <simpara>comma-separated list of secondary nodes for the
469 instance; usually this will be just one node</simpara>
473 <term>admin_state</term>
475 <simpara>the desired state of the instance (either "yes"
476 or "no" denoting the instance should run or
481 <term>admin_ram</term>
483 <simpara>the desired memory for the instance</simpara>
487 <term>disk_template</term>
489 <simpara>the disk template of the instance</simpara>
493 <term>oper_state</term>
495 <simpara>the actual state of the instance; can be
496 one of the values "running", "stopped", "(node
503 <simpara>combined form of admin_state and oper_stat;
505 <computeroutput>ERROR_nodedown</computeroutput> if the
506 node of the instance is down,
507 <computeroutput>ERROR_down</computeroutput> if the
508 instance should run but is down,
509 <computeroutput>ERROR_up</computeroutput> if the
510 instance should be stopped but is actually running,
511 <computeroutput>ADMIN_down</computeroutput> if the
512 instance has been stopped (and is stopped) and
513 <computeroutput>running</computeroutput> if the
514 instance is set to be running (and is
519 <term>oper_ram</term>
521 <simpara>the actual memory usage of the instance as seen
522 by the hypervisor</simpara>
528 <simpara>the ip address ganeti recognizes as associated with
529 the instance interface</simpara>
535 <simpara>the instance interface MAC address</simpara>
541 <simpara>bridge the instance is connected to
546 <term>sda_size</term>
548 <simpara>the size of the instance's first disk</simpara>
552 <term>sdb_size</term>
554 <simpara>the size of the instance's second disk</simpara>
560 <simpara>the number of VCPUs allocated to the
568 If the value of the option starts with the character
569 <constant>+</constant>, the new fields will be added to the
570 default list. This allows to quickly see the default list
571 plus a few other fields, instead of retyping the entire list
576 There is a subtle grouping about the available output
577 fields: all fields except for <option>oper_state</option>,
578 <option>oper_ram</option> and <option>status</option> are
579 configuration value and not run-time values. So if you don't
580 select any of the these fields, the query will be satisfied
581 instantly from the cluster configuration, without having to
582 ask the remote nodes for the data. This can be helpful for
583 big clusters when you only want some data and it makes sense
584 to specify a reduced set of output fields.
587 <para>The default output field list is:
588 <simplelist type="inline">
589 <member>name</member>
591 <member>pnode</member>
592 <member>admin_state</member>
593 <member>oper_state</member>
594 <member>oper_ram</member>
603 <command>info</command>
604 <arg rep="repeat"><replaceable>instance</replaceable></arg>
608 Show detailed information about the (given) instances. This
609 is different from <command>list</command> as it shows
610 detailed data about the instance's disks (especially useful
611 for drbd disk template).
616 <title>MODIFY</title>
619 <command>modify</command>
620 <arg choice="opt">-m <replaceable>memsize</replaceable></arg>
621 <arg choice="opt">-p <replaceable>vcpus</replaceable></arg>
622 <arg choice="opt">-i <replaceable>ip</replaceable></arg>
623 <arg choice="opt">-b <replaceable>bridge</replaceable></arg>
624 <arg choice="opt">--mac <replaceable>MAC-address</replaceable></arg>
625 <arg>--hvm-boot-order <replaceable>boot-order</replaceable></arg>
626 <arg>--hvm-acpi <replaceable>ACPI-support</replaceable></arg>
627 <arg>--hvm-pae <replaceable>PAE-support</replaceable></arg>
628 <arg>--hvm-cdrom-image-path
629 <replaceable>cdrom-image-path</replaceable></arg>
630 <arg>--vnc-bind-address
631 <replaceable>vnc-bind-address</replaceable></arg>
634 <arg>--kernel <group choice="req">
636 <arg><replaceable>kernel_path</replaceable></arg>
639 <arg>--initrd <group choice="req">
642 <arg><replaceable>initrd_path</replaceable></arg>
645 <arg choice="req"><replaceable>instance</replaceable></arg>
649 Modify the memory size, number of vcpus, ip address, MAC
650 address and/or bridge for an instance.
654 The memory size is given in MiB. Note that you need to give
655 at least one of the arguments, otherwise the command
660 The <option>--kernel</option>, <option>--initrd</option>
661 and <option>--hvm-boot-order</option>
662 options are described in the <command>add</command> command.
666 Additionally, the HVM boot order can be reset to the default
667 values by using <option>--hvm-boot-order=default</option>.
671 The <option>--hvm-acpi</option> option specifies if Xen
672 should enable ACPI support for this HVM instance. Valid
673 values are true or false.
677 The <option>--hvm-pae</option> option specifies if Xen
678 should enabled PAE support for this HVM instance. Valid
679 values are true or false.
683 The <option>--hvm-cdrom-image-path</option> specifies the
684 path to the file xen uses to emulate a virtual CDROM drive
685 for this HVM instance. Valid values are either an
686 absolute path to an existing file or None, which disables
687 virtual CDROM support for this instance.
691 The <option>--vnc-bind-address</option> specifies the
692 address that the VNC listener for this instance should bind
693 to. Valid values are IPv4 addresses. Use the address 0.0.0.0
694 to bind to all available interfaces.
698 All the changes take effect at the next restart. If the
699 instance is running, there is no effect on the instance.
704 <title>REINSTALL</title>
707 <command>reinstall</command>
708 <arg choice="opt">-o <replaceable>os-type</replaceable></arg>
709 <arg choice="opt">-f <replaceable>force</replaceable></arg>
710 <arg choice="req"><replaceable>instance</replaceable></arg>
714 Reinstalls the operating system on the given instance. The instance
715 must be stopped when running this command. If the
716 <option>--os-type</option> is specified, the operating system is
722 <title>RENAME</title>
725 <command>rename</command>
726 <arg>--no-ip-check</arg>
727 <arg choice="req"><replaceable>instance</replaceable></arg>
728 <arg choice="req"><replaceable>new_name</replaceable></arg>
732 Renames the given instance. The instance must be stopped
733 when running this command. The requirements for the new name
734 are the same as for adding an instance: the new name must be
735 resolvable and the IP it resolves to must not be reachable
736 (in order to prevent duplicate IPs the next time the
737 instance is started). The IP test can be skipped if the
738 <option>--no-ip-check</option> option is passed.
745 <title>Starting/stopping/connecting to console</title>
748 <title>STARTUP</title>
751 <command>startup</command>
752 <arg>--extra=<replaceable>PARAMS</replaceable></arg>
756 <arg>--instance</arg>
759 <arg>--secondary</arg>
764 rep="repeat"><replaceable>name</replaceable></arg>
768 Starts one or more instances, depending on the following
769 options. The four available modes are:
772 <term><option>--instance</option></term>
774 <simpara>will start the instances given as arguments
775 (at least one argument required); this is the default
782 <simpara>will start the instances who have the given
783 node as either primary or secondary</simpara>
787 <term><option>--primary</option></term>
789 <simpara>will start all instances whose primary node
790 is in the list of nodes passed as arguments (at least
791 one node required)</simpara>
795 <term><option>--secondary</option></term>
797 <simpara>will start all instances whose secondary node
798 is in the list of nodes passed as arguments (at least
799 one node required)</simpara>
805 <simpara>will start all instances in the cluster (no
806 arguments accepted)</simpara>
813 Note that although you can pass more than one selection
814 option, the last one wins, so in order to guarantee the
815 desired result, don't pass more than one such option.
819 The <option>--extra</option> option is used to pass
820 additional argument to the instance's kernel for this start
821 only. Currently there is no way to specify a persistent set
822 of arguments (beside the one hardcoded). Note that this may
823 not apply to all virtualization types.
827 Use <option>--force</option> to start even if secondary disks are
834 # gnt-instance start instance1.example.com
835 # gnt-instance start --extra single test1.example.com
836 # gnt-instance start --node node1.example.com node2.example.com
837 # gnt-instance start --all
843 <title>SHUTDOWN</title>
846 <command>shutdown</command>
849 <arg>--instance</arg>
852 <arg>--secondary</arg>
858 rep="repeat"><replaceable>name</replaceable></arg>
862 Stops one or more instances. If the instance cannot be
863 cleanly stopped during a hardcoded interval (currently 2
864 minutes), it will forcibly stop the instance (equivalent to
865 switching off the power on a physical machine).
869 The <option>--instance</option>, <option>--node</option>,
870 <option>--primary</option>, <option>--secondary</option> and
871 <option>--all</option> options are similar as for the
872 <command>startup</command> command and they influence the
873 actual instances being shutdown.
879 # gnt-instance shutdown instance1.example.com
880 # gnt-instance shutdown --all
886 <title>REBOOT</title>
889 <command>reboot</command>
891 <arg>--extra=<replaceable>PARAMS</replaceable></arg>
893 <arg>--type=<replaceable>REBOOT-TYPE</replaceable></arg>
895 <arg>--ignore-secondaries</arg>
897 <arg>--force-multiple</arg>
900 <arg>--instance</arg>
903 <arg>--secondary</arg>
909 rep="repeat"><replaceable>name</replaceable></arg>
913 Reboots one or more instances. The type of reboot depends on
914 the value of <option>--type</option>. A soft reboot does a
915 hypervisor reboot, a hard reboot does a instance stop,
916 recreates the hypervisor config for the instance and
917 starts the instance. A full reboot does the equivalent
918 of <command>gnt-instance shutdown && gnt-instance
919 startup</command>. The default is soft reboot.
923 For the hard reboot the option
924 <option>--ignore-secondaries</option> ignores errors for the
925 secondary node while re-assembling the instance disks.
929 The <option>--instance</option>, <option>--node</option>,
930 <option>--primary</option>, <option>--secondary</option> and
931 <option>--all</option> options are similar as for the
932 <command>startup</command> command and they influence the
933 actual instances being rebooted.
937 Use the <option>--force-multiple</option> option to keep
938 gnt-instance from asking for confirmation when more than one
939 instance is affected.
945 # gnt-instance reboot instance1.example.com
946 # gnt-instance reboot --type=full instance1.example.com
952 <title>CONSOLE</title>
954 <command>console</command>
955 <arg choice="opt">--show-cmd</arg>
956 <arg choice="req"><replaceable>instance</replaceable></arg>
960 Connects to the console of the given instance. If the instance
961 is not up, an error is returned. Use the <option>--show-cmd</option>
962 option to display the command instead of executing it.
968 # gnt-instance console instance1.example.com
976 <title>Disk management</title>
979 <title>REPLACE-DISKS</title>
982 <command>replace-disks</command>
983 <arg choice="opt">-s</arg>
984 <arg choice="req">--new-secondary <replaceable>NODE</replaceable></arg>
985 <arg choice="req"><replaceable>instance</replaceable></arg>
989 <command>replace-disks</command>
991 <arg choice="req">-s</arg>
992 <arg choice="req">-p</arg>
994 <arg choice="req"><replaceable>instance</replaceable></arg>
998 This command is a generalized form for adding and replacing
999 disks. It is currently only valid for the mirrored (DRBD)
1004 The first form will do a secondary node change, while the
1005 second form will replace the disks on either the primary
1006 (<option>-p</option>) or the secondary (<option>-s</option>)
1007 node of the instance only, without changing the node.
1013 <title>ACTIVATE-DISKS</title>
1016 <command>activate-disks</command>
1017 <arg choice="req"><replaceable>instance</replaceable></arg>
1020 Activates the block devices of the given instance. If
1021 successful, the command will show the location and name of
1024 node1.example.com:sda:/dev/drbd0
1025 node1.example.com:sdb:/dev/drbd1
1028 In this example, <emphasis>node1.example.com</emphasis> is
1029 the name of the node on which the devices have been
1030 activated. The <emphasis>sda</emphasis> and
1031 <emphasis>sdb</emphasis> are the names of the block devices
1032 inside the instance. <emphasis>/dev/drbd0</emphasis> and
1033 <emphasis>/dev/drbd1</emphasis> are the names of the block
1034 devices as visible on the node.
1038 Note that it is safe to run this command while the instance
1044 <title>DEACTIVATE-DISKS</title>
1047 <command>deactivate-disks</command>
1048 <arg choice="req"><replaceable>instance</replaceable></arg>
1051 De-activates the block devices of the given instance. Note
1052 that if you run this command for an instance with a drbd
1053 disk template, while it is running, it will not be able to
1054 shutdown the block devices on the primary node, but it will
1055 shutdown the block devices on the secondary nodes, thus
1056 breaking the replication.
1064 <title>Recovery</title>
1067 <title>FAILOVER</title>
1070 <command>failover</command>
1072 <arg>--ignore-consistency</arg>
1073 <arg choice="req"><replaceable>instance</replaceable></arg>
1077 Failover will fail the instance over its secondary
1078 node. This works only for instances having a drbd disk
1083 Normally the failover will check the consistency of the
1084 disks before failing over the instance. If you are trying to
1085 migrate instances off a dead node, this will fail. Use the
1086 <option>--ignore-consistency</option> option for this
1087 purpose. Note that this option can be dangerous as errors in
1088 shutting down the instance will be ignored, resulting in
1089 possibly having the instance running on two machines in
1090 parallel (on disconnected DRBD drives).
1096 # gnt-instance failover instance1.example.com
1107 <title>ADD-TAGS</title>
1110 <command>add-tags</command>
1111 <arg choice="opt">--from <replaceable>file</replaceable></arg>
1112 <arg choice="req"><replaceable>instancename</replaceable></arg>
1114 rep="repeat"><replaceable>tag</replaceable></arg>
1118 Add tags to the given instance. If any of the tags contains
1119 invalid characters, the entire operation will abort.
1122 If the <option>--from</option> option is given, the list of
1123 tags will be extended with the contents of that file (each
1124 line becomes a tag). In this case, there is not need to pass
1125 tags on the command line (if you do, both sources will be
1126 used). A file name of - will be interpreted as stdin.
1131 <title>LIST-TAGS</title>
1134 <command>list-tags</command>
1135 <arg choice="req"><replaceable>instancename</replaceable></arg>
1138 <para>List the tags of the given instance.</para>
1142 <title>REMOVE-TAGS</title>
1144 <command>remove-tags</command>
1145 <arg choice="opt">--from <replaceable>file</replaceable></arg>
1146 <arg choice="req"><replaceable>instancename</replaceable></arg>
1148 rep="repeat"><replaceable>tag</replaceable></arg>
1152 Remove tags from the given instance. If any of the tags are
1153 not existing on the node, the entire operation will abort.
1157 If the <option>--from</option> option is given, the list of
1158 tags will be extended with the contents of that file (each
1159 line becomes a tag). In this case, there is not need to pass
1160 tags on the command line (if you do, both sources will be
1161 used). A file name of - will be interpreted as stdin.
1173 <!-- Keep this comment at the end of the file
1178 sgml-minimize-attributes:nil
1179 sgml-always-quote-attributes:t
1182 sgml-parent-document:nil
1183 sgml-default-dtd-file:nil
1184 sgml-exposed-tags:nil
1185 sgml-local-catalogs:nil
1186 sgml-local-ecat-files:nil