Document the configuration for vdevmap.
[util-vserver.git] / doc / configuration.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE database SYSTEM "configuration.dtd" []>
3 <!-- $Id$ -->
4
5 <database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6           xsi:noNamespaceSchemaLocation="file:configuration.xsd">
7
8   <!-- Global configuration -->
9   <collection name=".defaults" use="optional">
10     <collection name="init" type="fixed">
11       <data name="mtab">
12         <description>Default mtab file</description>
13       </data>
14     </collection>
15
16     <link name="vdirbase">
17       <default>/vservers</default>
18       <description>A link to the default vserver rootdirectory.</description>
19     </link>
20
21     <link name="cachebase">
22       <default>/var/cache/vservers</default>
23       <description>
24 A link to the directory which will hold cached information about
25 vservers.
26       </description>
27     </link>
28
29     <boolean id="global-nonamespace" name="nonamespace">
30       <description>
31 Disable namespace usage globally. It can be overridden for a single vserver
32 by setting the <optionref ref="global-namespace">namespace</optionref> flag
33 there.
34
35 In this mode the <directory>/vservers</directory> directory must have
36 the 'barrier' attribute. Else, common chroot(2) exploits are possible.
37       </description>
38     </boolean>
39
40     <boolean id="global-nonamespace-cleanup" name="nonamespace-cleanup">
41       <description>
42 Disable namespace cleanup globally. It can be overridden for a single vserver
43 by setting the <optionref ref="namespace-cleanup">namespace-cleanup</optionref> flag
44 there.
45       </description>
46     </boolean>
47
48     <list id="global-namespace-cleanup-skip" name="namespace-cleanup-skip">
49       <description>
50 List of paths to skip during namespace cleanup.
51       </description>
52     </list>
53
54     <link name="run.rev">
55       <description>
56 Path of the vserver run reverse directory. This directory contains
57 symlinks named with XID numbers which point back to the configuration
58 directory of vservers. Under kernel 2.4 this is required for the XID
59 to VSERVER mapping; Under kernel 2.6 it is unused.
60
61 NOTE: this link exists in 0.30.202+ only; in previous versions it was
62 a vserver specific setting.
63       </description>
64     </link>
65     
66     <collection name="apps">
67       <collection name="pkgmgmt">
68         <link name="base">
69           <default>/vservers/.pkg</default>
70         </link>
71         <data name="apt.conf">
72           <description>The default apt.conf which is going to be used. It is overridden by
73 distribution specific configuration file.
74           </description>
75         </data>
76       </collection>
77       
78       <collection name="debootstrap">
79         <scalar name="mirror">
80           <description>
81 The Debian mirror to use with the <tool>debootstrap</tool> program
82           </description>
83         </scalar>
84         <scalar name="uri">
85           <description>
86 When the <tool>debootstrap</tool> package is not installed; fetch it
87 from this uri and install it at a temporary place.
88           </description>
89         </scalar>
90       </collection>
91
92       <collection name="vdevmap">
93         <collection name="x" type="sybmolic">
94           <description>'x' is an arbitrary name, replace it with e.g. device names</description>
95           <boolean name="open">
96             <description>When this file exists, the device can be opened</description>
97           </boolean>
98           <boolean name="create">
99             <description>When this file exists, the device can be created (if the guest has <optionref ref="bcapabilities">CAP_MKNOD</optionref>)</description>
100           </boolean>
101           <boolean id="vdevmap-remap" name="remap">
102             <description>
103 When this file exists, <optionref ref="vdevmap-target">target</optionref> will
104 have to exist as well and opening the device will in fact open the target device
105             </description>
106           </boolean>
107           <scalar name="flags">
108             <description>This file will let you specify unimplemented flags manually</description>
109           </scalar>
110           <scalar name="device">
111             <description>Contains the name of a device node</description>
112           </scalar>
113           <scalar id="vdevmap-target" name="target">
114             <description>Contains the device node of the target node to open instead of the device when <optionref ref="vdevmap-remap">remap</optionref> is set</description>
115           </scalar>
116         </collection>
117       </collection>
118
119       <collection name="vshelper">
120         <link name="logfile">
121           <description>
122 The file where output will be logged to when <tool>vshelper</tool>
123 is invoked from the kernel. This should point somewhere e.g. into
124 <directory>/var/log</directory>.
125           </description>
126         </link>
127
128         <collection name="vshelper-methods">
129           <program name="handler" type="symbolic">
130             <description>
131 See vshelper/action.
132             </description>
133           </program>
134         </collection>
135
136         <boolean name="disabled">
137           <description>
138 When existing, the vshelper functionality will be disabled for all
139 vservers.
140           </description>
141         </boolean>
142
143         <boolean name="debug">
144           <description>
145 When existing, the vshelper execution will be traced.
146           </description>
147         </boolean>
148         
149         <boolean name="warning-disabled">
150           <description>
151 When existing, sanity checks for the vshelper functionality will be
152 skipped.
153           </description>
154         </boolean>
155
156       </collection>
157       
158       <collection name="vprocunhide">
159         <list name="files">
160           <description>
161 A list of files which will be made visible by vprocunhide. Wildcards are
162 allowed and anything ending in '/' will be processed recursively. When this file exists,
163 it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be
164 absolute filenames inclusive the leading '/proc'.
165           </description>
166         </list>
167       </collection>
168       
169       <collection name="init">
170         <link name="tty">
171           <description>
172 A symlink to the TTY device where input/output will be redirected from/to
173 at startup via initscript.
174           </description>
175         </link>
176
177         <hash id="global-environment" name="environment" since="0.30.211">
178           <description>
179 The environment to set when starting guests. Contains one VAR=VAL
180 pair per line.
181           </description>
182         </hash>
183       </collection>
184       
185       <collection name="vunify">
186         <list name="exclude">
187           <description>Static list of excluded files.</description>
188         </list>
189
190         <collection name="hash" since="0.30.205">
191           <description>
192 A directory which will be used as the storage place for the
193 <tool>vhashify</tool> command.
194           </description>
195           <link name="id" type="symbolic">
196             <description>
197 Points to a directory within the filesystems which are used for the
198 vservers. There must be not more than one of such a directory per
199 filesystem.
200             </description>
201           </link>
202
203           <scalar name="method" since="0.30.299">
204             <default>SHA1</default>
205             <description>The used hash method.</description>
206           </scalar>
207         </collection>
208
209         <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
210           <description>
211 When existing, information from packagemanagement will not be used to
212 create dynamic exclude-lists.
213           </description>
214         </boolean>
215
216         <boolean name="pgkmgmt-force" default="off" since="0.30.205">
217           <description>
218 When existing, information from packagemanagement will be used to
219 create dynamic exclude-lists. This option requires that (a known)
220 packagemanagement is configured for the vserver; else the requested
221 operation will fail. Most tools assume 'on' as the default value.
222           </description>
223         </boolean>
224
225       </collection>
226
227       <collection name="vlogin">
228         <boolean id="vlogin-disable" name="disable" since="0.30.212">
229           <description>
230 When this file exists, vlogin isn't used on vserver &lt;guest&gt; enter.
231           </description>
232         </boolean>
233       </collection>
234     </collection>
235
236     <collection name="interfaces" use="optional">
237       <boolean id="global-vlandev" name="vlandev" since="0.30.211">
238         <description>
239 When this file exists, the steps which setup and destroy a VLAN
240 interface will be executed.
241         </description>
242       </boolean>
243     </collection>
244   </collection>
245     
246   <collection name=".distributions" use="optional">
247     <collection name="dist" type="symbolic">
248       <scalar name="dev">
249         <description></description>
250       </scalar>
251       <collection name="yum">
252         <description>
253 The default, yum-related content of the <directory>/etc</directory>
254 directory.
255         </description>
256         <scalar name="yum.conf">
257           <description>
258 The master yum configuration file. It supports the @YUMETCDIR@,
259 @YUMCACHEDIR@ and @YUMLOGDIR@ placeholder which will be replaced at
260 <command>vserver ... build</command> time.
261           </description>
262         </scalar>
263       </collection>
264       <collection name="yum.repos.d">
265         <description>A directory with yum repositories.</description>
266       </collection>
267       <data name="apt.conf">
268         <description>
269 The default apt.conf which is going to be used. It overrides the
270 apt.conf from CONFDIR/.defaults/apps/pkgmgmt.
271         </description>
272       </data>
273       <program name="initpre">
274         <description>
275 Script which will be executed before packages will be installed.
276           </description>
277         <parameterList>
278           <parameter name="confdir">
279             <description>
280 The configuration directory of the vserver which is going to be set up.
281             </description>
282           </parameter>
283           <parameter name="util-vserver-vars">
284             <description>
285 The pathname of the util-vserver-vars file.
286             </description>
287           </parameter>
288         </parameterList>
289       </program>
290       <program name="initpost">
291         <description>
292 Script which will be executed after packages are installed.
293           </description>
294         <parameterList>
295           <parameter name="confdir">
296             <description>
297 The configuration directory of the vserver which is going to be set up.
298             </description>
299           </parameter>
300           <parameter name="vserver">
301             <description>
302 The pathname of the util-vserver-vars file.
303             </description>
304           </parameter>
305         </parameterList>
306       </program>
307       
308       <collection name="pkgs">
309         <description>
310 Contains files with packagenames.
311         </description>
312         <list name="list">
313           <description>
314 File which contains the name of packages. On top of file the special
315 keywords '--reinstall' and '--can-fail' are possible.
316           </description>
317         </list>
318       </collection>
319       
320       <collection name="pubkeys">
321         <description>
322 Directory with GPG pubkeys which are used to sign the packages of this
323 distribution.
324         </description>
325       </collection>
326       
327       <collection name="apt">
328         <description>
329 Default content of the <directory>/etc/apt/</directory> directory.
330         </description>
331       </collection>
332       
333       <collection name="rpm">
334         <description>
335 Default content of the <directory>/etc/rpm</directory> directory.
336         </description>
337       </collection>
338       
339       <link name="rpmlib">
340         <description>
341 Directory which overrides <directory>/usr/lib/rpm</directory>.
342         </description>
343       </link>
344       <link name="execdir">
345         <description>
346 Directory with all executables and libraries which are required for
347 this distribution.
348         </description>
349       </link>
350     </collection>
351   </collection>
352   
353   <!-- Vserver configuration -->
354   <collection name="vserver-name" type="symbolic">
355     <description>
356 The configuration directory for the vserver vserver-name.
357     </description>
358
359     <link name="cache">
360       <default>../.defaults/cachebase/VSERVERNAME</default>
361       <description>
362 Path of the storage area for cached information about this vserver.
363       </description>
364     </link>
365     
366     <link name="vdir">
367       <default>../.defaults/vdirbase/VSERVERNAME</default>
368       <description>
369 Path of the vserver root directory.
370       </description>
371     </link>
372
373     <link name="run">
374       <description>
375 Points to a file which will contain the XID of the running vserver. When
376 the vserver is stopped, this can be a dangling symlink.
377       </description>
378     </link>
379
380     <list id="bcapabilities" name="bcapabilities">
381       <description>
382 Contains the system capabilities. See
383 <ulink url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/bcaps-v13.c">lib/bcaps-v13.c</ulink>
384 for possible values.
385       </description>
386     </list>
387     <list name="ccapabilities">
388       <description>
389 Contains the context capabilities. See <ulink
390 url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/ccaps-v13.c">lib/ccaps-v13.c</ulink>
391 for possible values.
392       </description>
393     </list>
394     <list name="ncapabilities" since="0.30.212">
395       <description>
396 Contains the network capabilities. See <ulink
397 url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/ncaps-net.c">lib/ncaps-net.c</ulink>
398 for possible values.
399       </description>
400     </list>
401
402     <boolean id="global-namespace" name="namespace">
403       <description>
404 Overrides the global <optionref ref="global-nonamespace">nonamespace</optionref> flag and enables
405 namespace usage for the current vserver.
406       </description>
407     </boolean>
408
409     <boolean name="nonamespace">
410       <description>
411 Disables namespace usage for the current vserver.
412
413 In this mode the <directory>/vservers</directory> directory must have
414 the 'barrier' attribute. Else, common chroot(2) exploits are possible.
415       </description>
416     </boolean>
417
418     <boolean id="namespace-cleanup" name="namespace-cleanup">
419       <description>
420 Overrides the global <optionref ref="global-nonamespace-cleanup">nonamespace-cleanup</optionref> flag and enables
421 namespace cleanup for the current vserver.
422       </description>
423     </boolean>
424
425     <list name="namespace-cleanup-skip">
426       <description>
427 List of paths to skip during namespace cleanup. This overrides the global
428 <optionref ref="global-namespace-cleanup-skip">namespace-cleanup-skip</optionref>
429 file.
430       </description>
431     </list>
432
433     <hash name="schedule">
434       <description>
435 [deprecated; use <optionref ref="sched">sched</optionref> instead] Contains the
436 scheduler parameters, one per line.
437
438 The Hard CPU limit uses a mechanism called a Token Bucket.  the
439 concept is simple: you have a bucket of a certain size which is
440 filled with a specified amount R of tokens each interval T until the
441 maximum is reached (excess tokens are spilled). At each timer tick,
442 a running process consumes one token from the bucket, unless the
443 bucket is empty. If the bucket is empty the process is put in the
444 hold queue. When the bucket has been refilled to at least M tokens,
445 all on hold processes are rescheduled.
446
447 See the <ulink url="http://linux-vserver.org/Scheduler+Parameters">Linux
448 VServer Wiki</ulink> for more information about this file.
449       </description>
450       <keys>
451         <key id="fill_rate" name="fill-rate">
452           <description>
453 Amount of tokens append to the bucket each interval.
454             </description>
455         </key>
456         <key name="interval">
457           <description>
458 The intervall between refills of amount <optionref>fill_rate</optionref>. This
459 value is express in ticks.
460           </description>
461         </key>
462         <key name="tokens">
463           <description>
464 Initial bucket contents.
465           </description>
466         </key>
467         <key name="tokens-min">
468           <description>
469 The minimum amount of tokens required to unhold processes
470           </description>
471         </key>
472         <key name="tokens-max">
473           <description>
474 The bucket size.
475           </description>
476         </key>
477         <key name="priority-bias">
478           <description>
479 ???
480           </description>
481         </key>
482       </keys>
483     </hash>
484     <scalar name="name">
485       <description>
486 Contains the name of the vserver. When not given, the basename of the directory
487 will be assumed as this name.
488       </description>
489     </scalar>
490     <scalar name="nice">
491       <description>
492 The nice-level on which the vserver will be started.
493       </description>
494     </scalar>
495     <list name="capabilities">
496       <description>
497 Contains per line a capability. This file is used for the 2.4 kernel
498 only; for 2.6 use <optionref>bcapabilities</optionref>.
499       </description>
500     </list>
501     <scalar name="shell">
502       <description>
503 Contains the pathname of the shell which will be used by the "vserver
504 ... enter" command.
505       </description>
506     </scalar>
507     <list name="personality">
508       <description>
509 Used to set the personality of the vserver. First line in the file
510 is the personality-type followed by flags (one item per line). See
511 <filename>/usr/include/linux/personality.h</filename> for possible
512 values.
513       </description>
514     </list>
515     <list name="flags">
516       <description>
517 Contains per line a flag. See <ulink
518 url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/cflags-v13.c">lib/cflags-v13.c</ulink>
519 for possible values.
520       </description>
521       <!--
522       <elements>
523         <element name="fakeinit">
524           <description>
525 The new process will believe it is process number 1. Useful to run a
526 real /sbin/init in a vserver. Warning: this flag should not be used
527 unless you know what you are doing. Often, it is better to use the
528 'plain' initstyle.
529           </description>
530         </element>
531         <element name="lock">
532           <description>
533 The new process is trapped and can't use chcontext anymore.
534           </description>
535         </element>
536         <element name="sched">
537           <description>
538 The new process and its children will share a common
539           </description>
540         </element>
541         <element name="nproc">
542           <description>
543 Limit the number of process in the vserver according to
544 ulimit setting. Normally, ulimit is a per user thing.
545 With this flag, it becomes a per vserver thing.
546           </description>
547         </element>
548         <element name="private">
549           <description>
550 No one can join this security context once created.
551           </description>
552         </element>
553         <element name="ulimit">
554           <description>
555 Apply the current ulimit to the whole context
556           </description>
557         </element>
558       </elements>
559       -->
560     </list>
561     <list name="nflags" since="0.30.212">
562       <description>
563 Contains a network flag per line. See <ulink
564 url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/nflags-net.c">lib/nflags-net.c</ulink>
565 for possible values.
566       </description>
567     </list>
568     <scalar name="context">
569       <description>
570 Contains the context which shall be used for the vserver.
571         </description>
572     </scalar>
573     <data id="fstab" name="fstab">
574       <description>
575 The fstab file for the vserver. Entries in this file will be mounted
576 within the network context of the host. Use the
577 <optionref>fstab.remote</optionref> file when you want that the
578 mounting happens in the network context of the vserver. In most cases
579 the 'fstab' file should be used.
580       </description>
581     </data>
582     <data id="fstab.remote" name="fstab.remote">
583       <description>
584 The fstab file for the vserver. Entries in this file will be mounted
585 within the network context of the host; this means that mount will be
586 called as <command>chbind &lt;options&gt; mount ...</command>. See
587 <optionref>fstab</optionref> also.
588       </description>
589     </data>
590     
591     <collection name="apps">
592       <collection name="init">
593         <data name="mtab">
594           <description>
595 The initial-mtab which will be used for the vserver.
596           </description>
597         </data>
598         
599         <scalar name="style">
600           <description>
601 Contains the init-style.
602           </description>
603           <restriction>
604             <enumeration value="sysv"/>
605             <enumeration value="plain"/>
606             <enumeration value="minit"/>
607           </restriction>
608         </scalar>
609         
610         <scalar name="runlevel">
611           <description>The start runlevel.</description>
612         </scalar>
613         
614         <scalar name="runlevel.start">
615           <description>The start runlevel.</description>
616         </scalar>
617         
618         <scalar name="runlevel.stop">
619           <description>The stop runlevel.</description>
620         </scalar>
621         
622         <scalar name="killseq">
623           <description>
624 Contains the 'signal [wait signal]*' sequence which is used to stop
625 the vserver.
626           </description>
627         </scalar>
628         
629         <list name="cmd.start">
630           <description>
631 The command which is used to start the vserver. Each option must be on
632 a separate line.
633           </description>
634         </list>
635         
636         <list name="cmd.start-sync">
637           <description>
638 The command which is used to wait on the vserver after it has been
639 started. Each option must be on a separate line. This file will be
640 ignored when the <optionref>sync</optionref> flag does not exist and the
641 '--sync' option was not used.
642           </description>
643         </list>
644         
645         <list name="cmd.stop">
646           <description>
647 The command which is used to stop the vserver. Each option must be on
648 a separate line.
649           </description>
650         </list>
651         
652         <list name="cmd.stop-sync">
653           <description>
654 The command which is used to wait on the vserver after it has been
655 stopped. Each option must be on a separate line. This file will be
656 ignored when the <optionref>sync</optionref> flag does not exist and the
657 '--sync' option was not used.
658           </description>
659         </list>
660         
661         <list name="cmd.prepare">
662           <description>
663 The command which is used to setup the init-system (e.g. to set the
664 runlevel in the utmp-file). Each option must be on a separate line.
665           </description>
666         </list>
667         
668         <boolean id="sync" name="sync">
669           <description>
670 If this file is not present, all 'cmd.*-sync files will be ignored.
671             </description>
672         </boolean>
673         
674         <link name="tty">
675           <description>
676 A symlink to the TTY device where input/output will be redirected
677 from/to at startup via initscript.
678           </description>
679         </link>
680         
681         <scalar name="mark">
682           <description>
683 This file is used to mark group of vservers which shall be started/stopped
684 together by the initscript. Content is a simple string like 'default'.
685           </description>
686         </scalar>
687         
688         <list name="depends">
689           <description>
690 This file is used to configure vservers which must be running before
691 the current vserver can be started. At shutdown, the current vserver
692 will be stopped before its dependencies. Content of this file are
693 vserver ids (one name per line).
694           </description>
695         </list>
696
697         <hash name="environment" since="0.30.211">
698           <description>
699 The environment to set when starting the guest. Contains one VAR=VAL
700 pair per line.
701           </description>
702         </hash>
703       </collection>
704       
705       <collection name="vshelper">
706         <scalar name="sync-timeout">
707           <default>30</default>
708           <description>
709 The timeout in seconds which is used when synchronising vserver
710 startup/shutdown with the vshelper. When not set, 30 seconds will be
711 assumed.
712           </description>
713         </scalar>
714         
715         <scalar name="action">
716           <default>restart</default>
717           <description>
718 The action which is going to be executed when a vshelper event
719 occurs. The default value is 'restart', but there can be defined own
720 methods by placing scripts into the
721 <optionref>vshelper-methods</optionref> directories. These scripts are
722 fed with the same arguments as the <tool>vshelper</tool> script.
723           </description>
724         </scalar>
725         
726         <program name="event" type="symbolic">
727           <description>
728 When existing, these scripts will be executed *instead* of the default
729 handler defined in 'action'. Their name must match the event which caused
730 the execution of <tool>vshelper</tool>; e.g. 'restart' or 'poweroff'. See
731 the vs_reboot() function in the kernel for more details.
732           </description>
733           <parameterList>
734             <parameter name="xid">
735               <description>
736 The xid of the context calling the vshelper
737               </description>
738             </parameter>
739             <parameter name="event">
740               <description>
741 The reboot-event.
742               </description>
743             </parameter>
744           </parameterList>
745         </program>
746         
747         <boolean name="disabled">
748           <description>
749 When existing, the vshelper functionality will be disabled for this
750 vserver.
751           </description>
752         </boolean>
753
754         <boolean name="debug">
755           <description>
756 When existing, the vshelper execution will be traced for this vserver.
757           </description>
758         </boolean>
759         
760         <boolean name="warning-disabled">
761           <description>
762 When existing, sanity checks for the vshelper functionality will be
763 skipped.
764           </description>
765         </boolean>
766         
767       </collection>
768       
769       <collection id="vshelper-methods" name="vshelper-methods">
770         <program name="handler" type="symbolic">
771           <description>
772 See vshelper/action.
773           </description>
774         </program>
775       </collection>
776       
777       <collection name="vunify">
778         <description>
779 This directory contains configuration data required for vserver
780 unification.
781         </description>
782         
783         <list name="exclude">
784           <description>
785 <p>Static list of files which are excluded for unification. This list
786 supports an rsync-like syntax: when a file is prefixed by '+', it is a
787 candidate for unification; when there is no prefix or a '-' or a '~' it
788 will be excluded. Shell-wildcards are allowed for the filenames.</p>
789 <p>When used with <tool>vcopy</tool>, the '~' prefix prevents copying
790 of the file entirely (e.g. for keyfiles). With this tool, the file will
791 be copied instead of hardlinked when the '-' prefix is used.</p>
792           </description>
793         </list>
794         
795         <link name="refserver.X" type="symbolic">
796           <description>
797 These are symlinks to the configuration directory
798 (e.g. CONFDIR/vservers/&lt;id&gt;) of a refserver. There may be
799 multiple such symlinks but they must be prefixed by 'refserver.' and
800 will be processed in alphanumerical order.
801           </description>
802         </link>
803
804         <collection name="hash" since="0.30.205">
805           <description>
806 A directory which will be used as the storage place for the
807 <tool>vhashify</tool> command.
808           </description>
809           <link name="id" type="symbolic">
810             <description>
811 Points to a directory within the filesystems which are used for the
812 vservers. There must be not more than one of such a directory per
813 filesystem.
814             </description>
815           </link>
816
817           <scalar name="method"  since="0.30.299">
818             <default>SHA1</default>
819             <description>The used hash method.</description>
820           </scalar>
821         </collection>
822
823         <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
824           <description>
825 When existing, information from packagemanagement will not be used to
826 create dynamic exclude-lists.
827           </description>
828         </boolean>
829
830         <boolean name="pgkmgmt-force" default="off" since="0.30.205">
831           <description>
832 When existing, information from packagemanagement will be used to
833 create dynamic exclude-lists. This option requires that (a known)
834 packagemanagement is configured for the vserver; else the requested
835 operation will fail. Most tools assume 'on' as the default value.
836           </description>
837         </boolean>
838         
839       </collection>
840     </collection>
841     
842     <collection name="scripts">
843       <description>
844 A directory for scripts. By default, when one of these scripts will be
845 executed, the execution of defaultscripts (within .../.defaults/scripts)
846 will be skipped. To execute them nevertheless, the $DONT_SKIP_DEFAULTS
847 environment variable must be set by one of the in-shellcontext scripts
848 (the non-executable ones).
849       </description>
850       
851       <program name="initialize" since="0.30.211">
852         <description>
853 The scriptlet which will be executed before the root filesystem is mounted and
854 the configuration has been loaded. Before executing the script, the
855 configuration directory will be made the working directory.
856         </description>
857         <parameterList>
858           <parameter name="action">
859             <description>
860 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
861             </description>
862           </parameter>
863           <parameter name="vserver-name">
864             <description>
865 The name of the current vserver.
866             </description>
867           </parameter>
868         </parameterList>
869       </program>
870       <collection name="initialize.d" since="0.30.211">
871         <description>
872 Repository of initialize like scripts.  Before executing the script,
873 the configuration directory will be made the working directory.
874         </description>
875         <program name="script" type="symbolic">
876           <description>See initialize.</description>
877           <parameterList>
878             <parameter name="action">
879               <description>
880 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
881               </description>
882             </parameter>
883             <parameter name="vserver-name">
884               <description>
885 The name of the current vserver.
886               </description>
887             </parameter>
888           </parameterList>
889         </program>
890       </collection>
891       
892       <program name="prepre-start">
893         <description>
894 The scriptlet which will be executed before the network-interfaces are
895 enabled and the directories are mounted. Before executing the script,
896 the configuration directory will be made the working directory.
897         </description>
898         <parameterList>
899           <parameter name="action">
900             <description>
901 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
902             </description>
903           </parameter>
904           <parameter name="vserver-name">
905             <description>
906 The name of the current vserver.
907             </description>
908           </parameter>
909         </parameterList>
910       </program>
911       <collection name="prepre-start.d">
912         <description>
913 Repository of prepre-start like scripts.  Before executing the script,
914 the configuration directory will be made the working directory.
915         </description>
916         <program name="script" type="symbolic">
917           <description>See prepre-start.</description>
918           <parameterList>
919             <parameter name="action">
920               <description>
921 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
922               </description>
923             </parameter>
924             <parameter name="vserver-name">
925               <description>
926 The name of the current vserver.
927               </description>
928             </parameter>
929           </parameterList>
930         </program>
931       </collection>
932       
933       <program name="pre-start">
934         <description>
935 The scriptlet which will be executed after network-interfaces were
936 enabled and the directories mounted, but before the vserver itself has
937 been started.  Before executing the script, the vserver root directory
938 will be made the working directory.
939         </description>
940         <parameterList>
941           <parameter name="action">
942             <description>
943 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
944             </description>
945           </parameter>
946           <parameter name="vserver-name">
947             <description>
948 The name of the current vserver.
949             </description>
950           </parameter>
951         </parameterList>
952       </program>
953       <collection name="pre-start.d">
954         <description>
955 Repository of pre-start like scripts. Before executing these scripts,
956 the vserver root directory will be made the working directory.
957         </description>
958         <program name="script" type="symbolic">
959           <description>See pre-start.</description>
960           <parameterList>
961             <parameter name="action">
962               <description>
963 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
964               </description>
965             </parameter>
966             <parameter name="vserver-name">
967               <description>
968 The name of the current vserver.
969               </description>
970             </parameter>
971           </parameterList>
972         </program>
973       </collection>
974       
975
976       <program name="post-start">
977         <description>
978 The scriptlet which will be executed after the vserver has been
979 started. Before executing the script, the vserver root directory
980 will be made the working directory.
981         </description>
982         <parameterList>
983           <parameter name="action">
984             <description>
985 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
986             </description>
987           </parameter>
988           <parameter name="vserver-name">
989             <description>
990 The name of the current vserver.
991             </description>
992           </parameter>
993         </parameterList>
994       </program>
995       <collection name="post-start.d">
996         <description>
997 Repository of post-start like scripts. Before executing these scripts,
998 the vserver root directory will be made the working directory.
999         </description>
1000         <program name="script" type="symbolic">
1001           <description>See post-start.</description>
1002           <parameterList>
1003             <parameter name="action">
1004               <description>
1005 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1006               </description>
1007             </parameter>
1008             <parameter name="vserver-name">
1009               <description>
1010 The name of the current vserver.
1011               </description>
1012             </parameter>
1013           </parameterList>
1014         </program>
1015       </collection>
1016
1017
1018       <program name="pre-stop">
1019         <description>
1020 The scriptlet which will be executed before the vserver will be
1021 stopped. Before executing the script, the vserver root directory
1022 will be made the working directory.
1023         </description>
1024         <parameterList>
1025           <parameter name="action">
1026             <description>
1027 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1028             </description>
1029           </parameter>
1030           <parameter name="vserver-name">
1031             <description>
1032 The name of the current vserver.
1033             </description>
1034           </parameter>
1035         </parameterList>
1036       </program>
1037       <collection name="pre-stop.d">
1038         <description>
1039 Repository of pre-stop like scripts. Before executing the script, the
1040 vserver root directory will be made the working directory.
1041         </description>
1042         <program name="script" type="symbolic">
1043           <description>See pre-stop.</description>
1044           <parameterList>
1045             <parameter name="action">
1046               <description>
1047 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1048               </description>
1049             </parameter>
1050             <parameter name="vserver-name">
1051               <description>
1052 The name of the current vserver.
1053               </description>
1054             </parameter>
1055           </parameterList>
1056         </program>
1057       </collection>
1058
1059       <program name="post-stop">
1060         <description>
1061 The scriptlet which will be executed after the vserver has been
1062 stopped, but before the directories will be umounted and the the
1063 interfaces disabled. Before executing the script, the vserver root
1064 directory will be made the working directory.
1065         </description>
1066         <parameterList>
1067           <parameter name="action">
1068             <description>
1069 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1070             </description>
1071           </parameter>
1072           <parameter name="vserver-name">
1073             <description>
1074 The name of the current vserver.
1075             </description>
1076           </parameter>
1077         </parameterList>
1078       </program>
1079       <collection name="post-stop.d">
1080         <description>
1081 Repository of post-stop like scripts. Before executing the script, the
1082 vserver root directory will be made the working directory.
1083         </description>
1084         <program name="script" type="symbolic">
1085           <description>See post-stop.</description>
1086           <parameterList>
1087             <parameter name="action">
1088               <description>
1089 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1090               </description>
1091             </parameter>
1092             <parameter name="vserver-name">
1093               <description>
1094 The name of the current vserver.
1095               </description>
1096             </parameter>
1097           </parameterList>
1098         </program>
1099       </collection>
1100       
1101       <program name="postpost-stop">
1102         <description>
1103 The scriptlet which will be executed after the vserver has been stopped
1104 completely. Before executing the script, the vserver root directory
1105 will be made the working directory.
1106         </description>
1107         <parameterList>
1108           <parameter name="action">
1109             <description>
1110 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1111             </description>
1112           </parameter>
1113           <parameter name="vserver-name">
1114             <description>
1115 The name of the current vserver.
1116             </description>
1117           </parameter>
1118         </parameterList>
1119       </program>
1120       <collection name="postpost-stop.d">
1121         <description>
1122 Repository of postpost-stop like scripts. Before executing the script,
1123 the vserver root directory will be made the working directory.
1124         </description>
1125         <program name="script" type="symbolic">
1126           <description>See postpost-stop.</description>
1127           <parameterList>
1128             <parameter name="action">
1129               <description>
1130 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1131               </description>
1132             </parameter>
1133             <parameter name="vserver-name">
1134               <description>
1135 The name of the current vserver.
1136               </description>
1137             </parameter>
1138           </parameterList>
1139         </program>
1140       </collection>
1141     </collection>
1142     
1143     <collection name="interfaces">
1144       <scalar name="bcast">
1145         <description>The default broadcast address.</description>
1146       </scalar>
1147       <scalar name="dev">
1148         <description>The default network device.</description>
1149       </scalar>
1150       <scalar name="prefix">
1151         <description>The default network prefix-length.</description>
1152       </scalar>
1153       <scalar name="mask">
1154         <description>The default network mask.</description>
1155       </scalar>
1156       <scalar name="scope">
1157         <description>The default scope of the network interfaces.</description>
1158       </scalar>
1159       <boolean id="local-vlandev" name="vlandev" since="0.30.211">
1160         <description>
1161 When this file exists, the steps which setup and destroy a VLAN
1162 interface will be executed for all interfaces of this vserver.
1163         </description>
1164       </boolean>
1165       <boolean id="local-novlandev" name="novlandev">
1166         <description>
1167 When this file exists, the steps which setup and destroy a VLAN
1168 interface will be skipped. This overrides the global
1169 <optionref ref="global-vlandev">vlandev</optionref> setting for
1170 this vserver.
1171         </description>
1172       </boolean>
1173       
1174       <collection name="iface" type="symbolic">
1175         <description>
1176 'iface' is an arbitrary name for the interface; the value itself is
1177 not important but may be interesting regarding interface-creation and
1178 usage with <tool>chbind</tool>. Both happens in alphabetical order and
1179 numbers like '00' are good names for these directories.
1180         </description>
1181         
1182         <boolean name="disabled">
1183           <description>When this file exists, this interface will be ignored.</description>
1184         </boolean>
1185         
1186         <scalar name="ip">
1187           <description>The ip which will be assigned to this interface.</description>
1188         </scalar>
1189         <scalar name="bcast">
1190           <description>The broadcast address.</description>
1191         </scalar>
1192         <scalar name="dev">
1193           <description>The network device.</description>
1194         </scalar>
1195         <scalar name="prefix">
1196           <description>The network prefix-length.</description>
1197         </scalar>
1198         <scalar name="mask">
1199           <description>The network mask.</description>
1200         </scalar>
1201         <scalar name="scope">
1202           <description>The scope of the network interface.</description>
1203         </scalar>
1204         <scalar name="name">
1205           <description>
1206 When this file exists, the interface will be named with the text in
1207 this file. Without such an entry, the IP will not be shown by
1208 <tool>ifconfig</tool> but by <command>ip addr ls</command> only.  Such
1209 a labeled interface is known as an "alias" also (e.g. 'eth0:foo').
1210           </description>
1211         </scalar>
1212         <boolean name="nodev">
1213           <description>
1214 When this file exists, the interface will be assumed to exist
1215 already. This can be used to assign primary interfaces which are
1216 created by the host or another vserver.
1217           </description>
1218         </boolean>
1219         <boolean name="novlandev">
1220           <description>
1221 When this file exists, the steps which setup and destroy a VLAN
1222 interface will be skipped. This will override the global
1223 <optionref ref="global-vlandev">vlandev</optionref> and the per-guest
1224 <optionref ref="local-vlandev">vlandev</optionref>.
1225           </description>
1226         </boolean>
1227         <boolean name="vlandev" since="0.30.211">
1228           <description>
1229 When this file exists, the steps which setup and destroy a VLAN
1230 interface will be executed.
1231           </description>
1232         </boolean>
1233       </collection>
1234     </collection>
1235     
1236     <collection name="ulimits">
1237       <description>
1238 A directory with ulimits. Possible resources are cpu, data, fsize,
1239 locks, memlock, nofile, nproc, rss and/or stack.
1240       </description>
1241       <scalar name="resource" type="symbolic">
1242         <description>
1243 A file which contains the hard- and soft-limit of the given resource
1244 in the first line. The special keyword 'inf' is recognized.
1245         </description>
1246       </scalar>
1247       <scalar name="resource.hard" type="symbolic">
1248         <description>
1249 A file which contains the hard-limit of the given resource in the first
1250 line. The special keyword 'inf' is recognized.
1251         </description>
1252       </scalar>
1253       <scalar name="resource.soft" type="symbolic">
1254         <description>
1255 A file which contains the soft-limit of the given resource in the first
1256 line. The special keyword 'inf' is recognized.
1257         </description>
1258       </scalar>
1259     </collection>
1260     
1261     <collection name="rlimits">
1262       <description>
1263 A directory with resource limits. Possible resources are cpu, fsize,
1264 data, stack, core, rss, nproc, nofile, memlock, as, locks, msgqueue,
1265 nsock, openfd, anon, shmem, semary, nsems and dentry. This
1266 configuration will be honored for kernel 2.6 only.
1267       </description>
1268       <scalar name="resource" type="symbolic">
1269         <description>
1270 A file which contains the hard- and soft-limit of the given resource
1271 in the first line. The special keyword 'inf' is recognized.
1272         </description>
1273       </scalar>
1274       <scalar name="resource.hard" type="symbolic">
1275         <description>
1276 A file which contains the hard-limit of the given resource in the first
1277 line. The special keyword 'inf' is recognized.
1278         </description>
1279       </scalar>
1280       <scalar name="resource.soft" type="symbolic">
1281         <description>
1282 A file which contains the soft-limit of the given resource in the first
1283 line. The special keyword 'inf' is recognized.
1284         </description>
1285       </scalar>
1286       <scalar name="resource.min" type="symbolic">
1287         <description>
1288 A file which contains the guaranteed minimum of the given resource in
1289 the first line. The special keyword 'inf' is recognized.
1290         </description>
1291       </scalar>
1292     </collection>
1293     
1294     <collection name="uts">
1295       <scalar name="context">
1296         <description>
1297 The context-name of the vserver. This file is listed for completeness
1298 only; the 'context' name is used and set internally by the util-vserver
1299 tools and can *not* be modified.
1300         </description>
1301       </scalar>
1302       <scalar name="sysname">
1303         <description>The sysname of the vserver</description>
1304       </scalar>
1305       <scalar name="nodename">
1306         <description>The node-/hostname of the vserver</description>
1307       </scalar>
1308       <scalar name="release">
1309         <description>The OS-release of the vserver</description>
1310       </scalar>
1311       <scalar name="version">
1312         <description>The OS-version of the vserver</description>
1313       </scalar>
1314       <scalar name="machine">
1315         <description>The machine-type of the vserver</description>
1316       </scalar>
1317       <scalar name="domainname">
1318         <description>The NIS domainname of the vserver</description>
1319       </scalar>
1320     </collection>
1321
1322     <collection name="dlimits" since="0.30.210">
1323       <collection name="dlimit" type="symbolic">
1324         <scalar name="directory">
1325           <description>The directory to which the limit should be applied</description>
1326         </scalar>
1327         <scalar name="inodes_total">
1328           <description>The amount of inodes this vserver should be limited to</description>
1329         </scalar>
1330         <scalar name="space_total">
1331           <description>The amount of space this vserver should be limited to (measured in blocks of 1024 bytes)</description>
1332         </scalar>
1333         <scalar name="reserved">
1334           <description>How much space (percentage-wise) should be reserved for the root user</description>
1335         </scalar>
1336       </collection>
1337     </collection>
1338
1339     <collection name="sysctl" since="0.30.213">
1340       <collection name="x" type="symbolic">
1341         <description>'x' is an arbitrary name, replace it with e.g. integers</description>
1342         <scalar name="setting">
1343           <description>The sysctl setting</description>
1344         </scalar>
1345         <scalar name="value">
1346           <description>The value</description>
1347         </scalar>
1348       </collection>
1349     </collection>
1350
1351     <collection name="cpuset" since="0.30.211">
1352       <scalar name="name">
1353         <description>The name of the cpuset for this vserver</description>
1354       </scalar>
1355       <scalar name="cpus">
1356         <description>The list of CPUs in this cpuset</description>
1357       </scalar>
1358       <scalar name="mems">
1359         <description>The list of Memory Nodes in this cpuset</description>
1360       </scalar>
1361       <scalar name="cpu_exclusive">
1362         <description>Is the CPU assignment exclusive?</description>
1363       </scalar>
1364       <scalar name="mems_exclusive">
1365         <description>Is the memory node assignment exclusive?</description>
1366       </scalar>
1367       <scalar name="nocreate">
1368         <description>When this file exists, the cpuset will be assumed to exist already</description>
1369       </scalar>
1370     </collection>
1371
1372     <collection id="sched" name="sched" since="0.30.212">
1373       <scalar id="global-tokens" name="tokens">
1374         <description>The initial amount of tokens to put in the bucket</description>
1375       </scalar>
1376       <scalar id="global-tokens-min" name="tokens-min">
1377         <description>The minimum amount of tokens required to unhold the context</description>
1378       </scalar>
1379       <scalar id="global-tokens-max" name="tokens-max">
1380         <description>The bucket's size</description>
1381       </scalar>
1382       <scalar id="global-fill-rate" name="fill-rate">
1383         <description>Amount of tokens to add each <optionref ref="global-interval">interval</optionref></description>
1384       </scalar>
1385       <scalar id="global-interval" name="interval">
1386         <description>The interval between refills of the bucket</description>
1387       </scalar>
1388       <scalar id="global-priority-bias" name="priority-bias">
1389         <description>Bias added to priorities calculated within the guest (result is clamped to -20/+19)</description>
1390       </scalar>
1391       <scalar id="global-fill-rate2" name="fill-rate2">
1392         <description>Amount of tokens to add each <optionref ref="global-interval2">interval2</optionref> when advancing idle time</description>
1393       </scalar>
1394       <scalar id="global-interval2" name="interval2">
1395         <description>The interval between refills of the bucket when advancing idle time</description>
1396       </scalar>
1397       <boolean id="global-idle-time" name="idle-time">
1398         <description>When this file exists, advancing idle time is activated</description>
1399       </boolean>
1400       <collection name="cpu-id" type="symbolic">
1401         <description>This directory contains per-CPU and/or per-bucket specific settings. Remember to set the <optionref ref="cpu-id">cpu-id</optionref> file. All CPUs inherit the global settings.</description>
1402         <scalar name="tokens">
1403           <description>The initial amount of tokens to put in the bucket</description>
1404         </scalar>
1405         <scalar name="tokens-min">
1406           <description>The minimum amount of tokens required to unhold the context</description>
1407         </scalar>
1408         <scalar name="tokens-max">
1409           <description>The bucket's size</description>
1410         </scalar>
1411         <scalar name="fill-rate">
1412           <description>Amount of tokens to add each <optionref ref="local-interval">interval</optionref></description>
1413         </scalar>
1414         <scalar id="local-interval" name="interval">
1415           <description>The interval between refills of the bucket</description>
1416         </scalar>
1417         <scalar name="priority-bias">
1418           <description>Bias added to priorities calculated within the guest (result is clamped to -20/+19)</description>
1419         </scalar>
1420         <scalar name="fill-rate2">
1421           <description>Amount of tokens to add each <optionref ref="local-interval2">interval2</optionref> when advancing idle time</description>
1422         </scalar>
1423         <scalar id="local-interval2" name="interval2">
1424           <description>The interval between refills of the bucket when advancing idle time</description>
1425         </scalar>
1426         <boolean name="idle-time">
1427           <description>When this file exists, advancing idle time is activated</description>
1428         </boolean>
1429         <scalar id="cpu-id" name="cpu-id">
1430           <description>The CPU to apply these settings to</description>
1431         </scalar>
1432         <scalar name="bucket-id">
1433           <description>The bucket to apply these settings to</description>
1434         </scalar>
1435       </collection>
1436     </collection>
1437   </collection>
1438   </database>