Statistics
| Branch: | Tag: | Revision:

root / man / ganeti-os-interface.sgml @ 4d32feba

History | View | Annotate | Download (15.2 kB)

1 a8083063 Iustin Pop
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2 a8083063 Iustin Pop
3 a8083063 Iustin Pop
  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
4 a8083063 Iustin Pop
  <!-- Please adjust the date whenever revising the manpage. -->
5 bdfec6fd Guido Trotter
  <!ENTITY dhdate      "<date>October 02, 2009</date>">
6 a8083063 Iustin Pop
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
7 a8083063 Iustin Pop
       allowed: see man(7), man(1). -->
8 a8083063 Iustin Pop
  <!ENTITY dhsection   "<manvolnum>7</manvolnum>">
9 a8083063 Iustin Pop
  <!ENTITY dhucpackage "<refentrytitle>ganeti-os-interface</refentrytitle>">
10 a8083063 Iustin Pop
  <!ENTITY dhpackage   "ganeti">
11 a8083063 Iustin Pop
12 a8083063 Iustin Pop
  <!ENTITY debian      "<productname>Debian</productname>">
13 a8083063 Iustin Pop
  <!ENTITY gnu         "<acronym>GNU</acronym>">
14 a8083063 Iustin Pop
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
15 a8083063 Iustin Pop
  <!ENTITY footer SYSTEM "footer.sgml">
16 a8083063 Iustin Pop
]>
17 a8083063 Iustin Pop
18 a8083063 Iustin Pop
<refentry>
19 a8083063 Iustin Pop
  <refentryinfo>
20 a8083063 Iustin Pop
    <copyright>
21 a8083063 Iustin Pop
      <year>2006</year>
22 a8083063 Iustin Pop
      <year>2007</year>
23 216842d7 Iustin Pop
      <year>2008</year>
24 216842d7 Iustin Pop
      <year>2009</year>
25 a8083063 Iustin Pop
      <holder>Google Inc.</holder>
26 a8083063 Iustin Pop
    </copyright>
27 a8083063 Iustin Pop
    &dhdate;
28 a8083063 Iustin Pop
  </refentryinfo>
29 a8083063 Iustin Pop
  <refmeta>
30 a8083063 Iustin Pop
    &dhucpackage;
31 a8083063 Iustin Pop
32 a8083063 Iustin Pop
    &dhsection;
33 bdfec6fd Guido Trotter
    <refmiscinfo>ganeti 2.1</refmiscinfo>
34 a8083063 Iustin Pop
  </refmeta>
35 a8083063 Iustin Pop
  <refnamediv>
36 037da795 Guido Trotter
    <refname>ganeti-os-interface</refname>
37 a8083063 Iustin Pop
38 a8083063 Iustin Pop
    <refpurpose>specifications for guest OS types
39 a8083063 Iustin Pop
    </refpurpose>
40 a8083063 Iustin Pop
41 a8083063 Iustin Pop
  </refnamediv>
42 a8083063 Iustin Pop
43 a8083063 Iustin Pop
  <refsect1>
44 a8083063 Iustin Pop
    <title>DESCRIPTION</title>
45 a8083063 Iustin Pop
46 a8083063 Iustin Pop
    <para>
47 a8083063 Iustin Pop
      The method of supporting guest operating systems in Ganeti is to
48 a8083063 Iustin Pop
      have, for each guest OS type, a directory containing a number of
49 a8083063 Iustin Pop
      required files.
50 a8083063 Iustin Pop
    </para>
51 a8083063 Iustin Pop
52 a8083063 Iustin Pop
53 a8083063 Iustin Pop
  </refsect1>
54 a8083063 Iustin Pop
  <refsect1>
55 a8083063 Iustin Pop
    <title>REFERENCE</title>
56 a8083063 Iustin Pop
57 a8083063 Iustin Pop
    <para>
58 bdfec6fd Guido Trotter
      There are six required files: <filename>create</filename>,
59 386b57af Iustin Pop
      <filename>import</filename>, <filename>export</filename>,
60 bdfec6fd Guido Trotter
      <filename>rename</filename> (executables),
61 bdfec6fd Guido Trotter
      <filename>ganeti_api_version</filename> and
62 bdfec6fd Guido Trotter
      <filename>variants.list</filename> (text file).
63 a8083063 Iustin Pop
    </para>
64 a8083063 Iustin Pop
65 a8083063 Iustin Pop
    <refsect2>
66 216842d7 Iustin Pop
      <title>Common environment</title>
67 216842d7 Iustin Pop
      <para>
68 216842d7 Iustin Pop
        All commands will get their input via environment variables. A
69 216842d7 Iustin Pop
        common set of variables will be exported for all commands, and
70 216842d7 Iustin Pop
        some of them might have extra ones. Note that all counts are
71 216842d7 Iustin Pop
        zero-based.
72 216842d7 Iustin Pop
      </para>
73 216842d7 Iustin Pop
      <variablelist>
74 216842d7 Iustin Pop
        <varlistentry>
75 216842d7 Iustin Pop
          <term>OS_API_VERSION</term>
76 216842d7 Iustin Pop
          <listitem>
77 216842d7 Iustin Pop
            <simpara>The OS api version that the rest of the
78 216842d7 Iustin Pop
            environment conforms to.</simpara>
79 216842d7 Iustin Pop
          </listitem>
80 216842d7 Iustin Pop
        </varlistentry>
81 216842d7 Iustin Pop
        <varlistentry>
82 216842d7 Iustin Pop
          <term>INSTANCE_NAME</term>
83 216842d7 Iustin Pop
          <listitem>
84 216842d7 Iustin Pop
            <simpara>The instance name the script should operate
85 216842d7 Iustin Pop
            on.</simpara>
86 216842d7 Iustin Pop
          </listitem>
87 216842d7 Iustin Pop
        </varlistentry>
88 216842d7 Iustin Pop
        <varlistentry>
89 216842d7 Iustin Pop
          <term>INSTANCE_OS</term>
90 216842d7 Iustin Pop
          <listitem>
91 216842d7 Iustin Pop
            <simpara>The name os the instance's OS as Ganeti knows
92 216842d7 Iustin Pop
            it. This can simplify the OS scripts by providing the same
93 216842d7 Iustin Pop
            scripts under multiple names, and then the scripts can use
94 216842d7 Iustin Pop
            this name to alter their behaviour.</simpara>
95 bdfec6fd Guido Trotter
            <simpara>Under OS api 15 changing the script behavior based
96 bdfec6fd Guido Trotter
            on this variable is deprecated: OS_VARIANT should be used
97 bdfec6fd Guido Trotter
            instead (see below).</simpara>
98 bdfec6fd Guido Trotter
          </listitem>
99 bdfec6fd Guido Trotter
        </varlistentry>
100 bdfec6fd Guido Trotter
        <varlistentry>
101 bdfec6fd Guido Trotter
          <term>OS_VARIANT</term>
102 bdfec6fd Guido Trotter
          <listitem>
103 bdfec6fd Guido Trotter
            <simpara>The variant of the OS which should be installed. Each OS
104 bdfec6fd Guido Trotter
            must support all variants listed under its
105 bdfec6fd Guido Trotter
            <filename>variants.list</filename> file, and may support more.
106 bdfec6fd Guido Trotter
            Any more supported variants should be properly documented in the
107 bdfec6fd Guido Trotter
            per-os documentation.</simpara>
108 216842d7 Iustin Pop
          </listitem>
109 216842d7 Iustin Pop
        </varlistentry>
110 216842d7 Iustin Pop
        <varlistentry>
111 216842d7 Iustin Pop
          <term>HYPERVISOR</term>
112 216842d7 Iustin Pop
          <listitem>
113 216842d7 Iustin Pop
            <simpara>The hypervisor of this instance.</simpara>
114 216842d7 Iustin Pop
          </listitem>
115 216842d7 Iustin Pop
        </varlistentry>
116 216842d7 Iustin Pop
        <varlistentry>
117 216842d7 Iustin Pop
          <term>DISK_COUNT</term>
118 216842d7 Iustin Pop
          <listitem>
119 216842d7 Iustin Pop
            <simpara>The number of disks the instance has. The actual
120 216842d7 Iustin Pop
            disk defitions are in a set of additional variables. The
121 216842d7 Iustin Pop
            instance's disk will be numbered from 0 to this value
122 216842d7 Iustin Pop
            minus one.</simpara>
123 216842d7 Iustin Pop
          </listitem>
124 216842d7 Iustin Pop
        </varlistentry>
125 216842d7 Iustin Pop
        <varlistentry>
126 216842d7 Iustin Pop
          <term>DISK_%N_PATH</term>
127 216842d7 Iustin Pop
          <listitem>
128 216842d7 Iustin Pop
            <simpara>The path to the storage for disk N of the
129 216842d7 Iustin Pop
            instance. This might be either a block device or a regular
130 216842d7 Iustin Pop
            file, in which case the OS scripts should use
131 216842d7 Iustin Pop
            <emphasis>losetup</emphasis> (if they need to mount
132 216842d7 Iustin Pop
            it). E.g. the first disk of the instance might be exported
133 216842d7 Iustin Pop
            as <envar>DISK_0_PATH=/dev/drbd0</envar>.</simpara>
134 216842d7 Iustin Pop
          </listitem>
135 216842d7 Iustin Pop
        </varlistentry>
136 216842d7 Iustin Pop
        <varlistentry>
137 216842d7 Iustin Pop
          <term>DISK_%N_ACCESS</term>
138 216842d7 Iustin Pop
          <listitem>
139 216842d7 Iustin Pop
            <simpara>This is how the hypervisor will export the
140 216842d7 Iustin Pop
            instance disks: either read-write (<emphasis>rw</emphasis>) or
141 216842d7 Iustin Pop
            read-only (<emphasis>ro</emphasis>).</simpara>
142 216842d7 Iustin Pop
          </listitem>
143 216842d7 Iustin Pop
        </varlistentry>
144 216842d7 Iustin Pop
        <varlistentry>
145 216842d7 Iustin Pop
          <term>DISK_%N_FRONTEND_TYPE</term>
146 216842d7 Iustin Pop
          <listitem>
147 216842d7 Iustin Pop
            <simpara>(Optional) If applicable to the current
148 216842d7 Iustin Pop
            hypervisor type: the type of the device exported by the
149 216842d7 Iustin Pop
            hypervisor. For example, the Xen HVM hypervisor can export
150 216842d7 Iustin Pop
            disks as either <emphasis>paravirtual</emphasis> or
151 216842d7 Iustin Pop
            <emphasis>ioemu</emphasis>.</simpara>
152 216842d7 Iustin Pop
          </listitem>
153 216842d7 Iustin Pop
        </varlistentry>
154 216842d7 Iustin Pop
        <varlistentry>
155 216842d7 Iustin Pop
          <term>DISK_%N_BACKEND_TYPE</term>
156 216842d7 Iustin Pop
          <listitem>
157 216842d7 Iustin Pop
            <simpara>How files are visible on the node side. This can
158 216842d7 Iustin Pop
            be either <emphasis>block</emphasis> (when using block
159 216842d7 Iustin Pop
            devices) or <emphasis>file:type</emphasis>, where
160 216842d7 Iustin Pop
            <emphasis>type</emphasis> is either
161 216842d7 Iustin Pop
            <emphasis>loop</emphasis> <emphasis>blktap</emphasis>
162 216842d7 Iustin Pop
            depending on how the hypervisor will be configured. Note
163 216842d7 Iustin Pop
            that not all backend types apply to all
164 216842d7 Iustin Pop
            hypervisors.</simpara>
165 216842d7 Iustin Pop
          </listitem>
166 216842d7 Iustin Pop
        </varlistentry>
167 216842d7 Iustin Pop
        <varlistentry>
168 216842d7 Iustin Pop
          <term>NIC_COUNT</term>
169 216842d7 Iustin Pop
          <listitem>
170 216842d7 Iustin Pop
            <simpara>Similar to the <envar>DISK_COUNT</envar>, this
171 216842d7 Iustin Pop
            represents the number of NICs of the instance.</simpara>
172 216842d7 Iustin Pop
          </listitem>
173 216842d7 Iustin Pop
        </varlistentry>
174 216842d7 Iustin Pop
        <varlistentry>
175 216842d7 Iustin Pop
          <term>NIC_%N_MAC</term>
176 216842d7 Iustin Pop
          <listitem>
177 216842d7 Iustin Pop
            <simpara>The MAC address associated with this
178 216842d7 Iustin Pop
            interface.</simpara>
179 216842d7 Iustin Pop
          </listitem>
180 216842d7 Iustin Pop
        </varlistentry>
181 216842d7 Iustin Pop
        <varlistentry>
182 216842d7 Iustin Pop
          <term>NIC_%N_IP</term>
183 216842d7 Iustin Pop
          <listitem>
184 216842d7 Iustin Pop
            <simpara>The IP address, if any, associated with the N-th
185 216842d7 Iustin Pop
            NIC of the instance.</simpara>
186 216842d7 Iustin Pop
          </listitem>
187 216842d7 Iustin Pop
        </varlistentry>
188 216842d7 Iustin Pop
        <varlistentry>
189 216842d7 Iustin Pop
          <term>NIC_%N_BRIDGE</term>
190 216842d7 Iustin Pop
          <listitem>
191 216842d7 Iustin Pop
            <simpara>The bridge to which this NIC will be attached
192 216842d7 Iustin Pop
            to.</simpara>
193 216842d7 Iustin Pop
          </listitem>
194 216842d7 Iustin Pop
        </varlistentry>
195 216842d7 Iustin Pop
        <varlistentry>
196 216842d7 Iustin Pop
          <term>NIC_%N_FRONTEND_TYPE</term>
197 216842d7 Iustin Pop
          <listitem>
198 216842d7 Iustin Pop
            <para>(Optional) If applicable, the type of the exported
199 216842d7 Iustin Pop
            NIC to the instance, this can be one of of: <simplelist
200 216842d7 Iustin Pop
            type="inline"> <member>rtl8139</member>
201 216842d7 Iustin Pop
            <member>ne2k_pci</member> <member>ne2k_isa</member>
202 216842d7 Iustin Pop
            <member>paravirtual</member> </simplelist>.
203 216842d7 Iustin Pop
              </para>
204 216842d7 Iustin Pop
          </listitem>
205 216842d7 Iustin Pop
        </varlistentry>
206 216842d7 Iustin Pop
        <varlistentry>
207 216842d7 Iustin Pop
          <term>DEBUG_LEVEL</term>
208 216842d7 Iustin Pop
          <listitem>
209 216842d7 Iustin Pop
            <simpara>If non-zero, this should cause the OS script to
210 216842d7 Iustin Pop
            generate verbose logs of its execution, for
211 216842d7 Iustin Pop
            troubleshooting purposes. Currently only
212 216842d7 Iustin Pop
            <emphasis>0</emphasis> and <emphasis>1</emphasis> are
213 216842d7 Iustin Pop
            valid values.</simpara>
214 216842d7 Iustin Pop
          </listitem>
215 216842d7 Iustin Pop
        </varlistentry>
216 216842d7 Iustin Pop
      </variablelist>
217 216842d7 Iustin Pop
    </refsect2>
218 216842d7 Iustin Pop
219 216842d7 Iustin Pop
    <refsect2>
220 a8083063 Iustin Pop
      <title>create</title>
221 a8083063 Iustin Pop
222 a8083063 Iustin Pop
      <para>The <command>create</command> command is used for creating
223 216842d7 Iustin Pop
      a new instance from scratch. It has no additional environment
224 216842d7 Iustin Pop
      variables bside the common ones.</para>
225 a8083063 Iustin Pop
226 216842d7 Iustin Pop
      <para>The <envar>INSTANCE_NAME</envar> variable denotes the name
227 a8083063 Iustin Pop
      of the instance, which is guaranteed to resolve to an IP
228 a8083063 Iustin Pop
      address. The create script should configure the instance
229 a8083063 Iustin Pop
      according to this name. It can configure the IP statically or
230 a8083063 Iustin Pop
      not, depending on the deployment environment.</para>
231 a8083063 Iustin Pop
232 e557bae9 Guido Trotter
      <para>The <envar>INSTANCE_REINSTALL</envar> variable is set to '1' when
233 e557bae9 Guido Trotter
      this create request is reinstalling and existing instance, rather than
234 e557bae9 Guido Trotter
      creating one anew. This can be used, for example, to preserve some
235 e557bae9 Guido Trotter
      data in the old instance in an os-specific way.</para>
236 e557bae9 Guido Trotter
237 a8083063 Iustin Pop
    </refsect2>
238 a8083063 Iustin Pop
239 a8083063 Iustin Pop
    <refsect2>
240 216842d7 Iustin Pop
      <title>export</title>
241 a8083063 Iustin Pop
242 a8083063 Iustin Pop
      <para>
243 216842d7 Iustin Pop
        This command is used in order to make a backup of a given disk
244 216842d7 Iustin Pop
        of the instance. The command should write to stdout a dump of
245 216842d7 Iustin Pop
        the given block device. The output of this program will be
246 216842d7 Iustin Pop
        passed during restore to the <command>import</command>
247 216842d7 Iustin Pop
        command.
248 216842d7 Iustin Pop
      </para>
249 216842d7 Iustin Pop
250 216842d7 Iustin Pop
      <para>
251 216842d7 Iustin Pop
        The specific disk to backup is denoted by two additional
252 216842d7 Iustin Pop
        environment variables: <envar>EXPORT_INDEX</envar> which
253 216842d7 Iustin Pop
        denotes the index in the instance disks structure (and could
254 216842d7 Iustin Pop
        be used for example to skip the second disk if not needed for
255 216842d7 Iustin Pop
        backup) and <envar>EXPORT_PATH</envar> which has the same
256 216842d7 Iustin Pop
        value as <emphasis>DISK_N_PATH</emphasis> but is duplicate
257 216842d7 Iustin Pop
        here for easier usage by shell scripts (rather than parse the
258 216842d7 Iustin Pop
        DISK_... variables).
259 a8083063 Iustin Pop
      </para>
260 a8083063 Iustin Pop
261 a8083063 Iustin Pop
    </refsect2>
262 a8083063 Iustin Pop
263 a8083063 Iustin Pop
    <refsect2>
264 216842d7 Iustin Pop
      <title>import</title>
265 a8083063 Iustin Pop
266 a8083063 Iustin Pop
      <para>
267 216842d7 Iustin Pop
        The <command>import</command> command is used for restoring an
268 216842d7 Iustin Pop
        instance from a backup as done by
269 216842d7 Iustin Pop
        <command>export</command>. The arguments are the similar to
270 216842d7 Iustin Pop
        those passed to <command>export</command>, whose output will
271 216842d7 Iustin Pop
        be provided on <acronym>stdin</acronym>.
272 a8083063 Iustin Pop
      </para>
273 a8083063 Iustin Pop
274 a8083063 Iustin Pop
      <para>
275 216842d7 Iustin Pop
        The difference in variables is that the current disk is called
276 216842d7 Iustin Pop
        by <envar>IMPORT_DEVICE</envar> and <envar>IMPORT_IDX</envar>
277 216842d7 Iustin Pop
        (instead of <emphasis>EXPORT_</emphasis>).
278 a8083063 Iustin Pop
      </para>
279 a8083063 Iustin Pop
280 a8083063 Iustin Pop
    </refsect2>
281 a8083063 Iustin Pop
282 a8083063 Iustin Pop
    <refsect2>
283 386b57af Iustin Pop
      <title>rename</title>
284 386b57af Iustin Pop
285 386b57af Iustin Pop
      <para>
286 386b57af Iustin Pop
        This command is used in order to perform a rename at the
287 386b57af Iustin Pop
        instance OS level, after the instance has been renamed in
288 386b57af Iustin Pop
        Ganeti. The command should do whatever steps are required to
289 386b57af Iustin Pop
        ensure that the instance is updated to use the new name, if
290 386b57af Iustin Pop
        the operating system supports it.
291 386b57af Iustin Pop
      </para>
292 386b57af Iustin Pop
293 386b57af Iustin Pop
      <para>
294 386b57af Iustin Pop
        Note that it is acceptable for the rename script to do nothing
295 386b57af Iustin Pop
        at all, however be warned that in this case, there will be a
296 386b57af Iustin Pop
        desynchronization between what <computeroutput>gnt-instance
297 386b57af Iustin Pop
        list</computeroutput> shows you and the actual hostname of the
298 386b57af Iustin Pop
        instance.
299 386b57af Iustin Pop
      </para>
300 386b57af Iustin Pop
301 216842d7 Iustin Pop
      <para>The script will be passed one additional environment
302 216842d7 Iustin Pop
      variable called <envar>OLD_INSTANCE_NAME</envar> which holds the
303 216842d7 Iustin Pop
      old instance name. The <envar>INSTANCE_NAME</envar> variable
304 216842d7 Iustin Pop
      holds the new instance name.</para>
305 216842d7 Iustin Pop
306 386b57af Iustin Pop
      <para>
307 386b57af Iustin Pop
        A very simple rename script should at least change the
308 386b57af Iustin Pop
        hostname and IP address of the instance, leaving the
309 386b57af Iustin Pop
        administrator to update the other services.
310 386b57af Iustin Pop
      </para>
311 386b57af Iustin Pop
    </refsect2>
312 386b57af Iustin Pop
313 386b57af Iustin Pop
    <refsect2>
314 a8083063 Iustin Pop
      <title>ganeti_api_version</title>
315 a8083063 Iustin Pop
      <para>
316 a8083063 Iustin Pop
        The <filename>ganeti_api_version</filename> file is a plain
317 216842d7 Iustin Pop
        text file containing the version(s) of the guest OS api that
318 216842d7 Iustin Pop
        this OS definition complies with, one per line. The version
319 bdfec6fd Guido Trotter
        documented by this man page is 15, so this file must contain
320 bdfec6fd Guido Trotter
        the number 15 followed by a newline if only this version is
321 bdfec6fd Guido Trotter
        supported. A script compatible more than one ganeti version
322 bdfec6fd Guido Trotter
        should contain the most recent version first (i.e. 15),
323 bdfec6fd Guido Trotter
        followed by the old version(s) (in this case 10 and/or 5).
324 bdfec6fd Guido Trotter
      </para>
325 bdfec6fd Guido Trotter
    </refsect2>
326 bdfec6fd Guido Trotter
327 bdfec6fd Guido Trotter
    <refsect2>
328 bdfec6fd Guido Trotter
      <title>variants.list</title>
329 bdfec6fd Guido Trotter
      <para>
330 bdfec6fd Guido Trotter
        <filename>variants.list</filename> is a plain text file
331 bdfec6fd Guido Trotter
        containing all the declared supported variants for this
332 bdfec6fd Guido Trotter
        OS, one per line. At least one variant must be supported.
333 a8083063 Iustin Pop
      </para>
334 a8083063 Iustin Pop
    </refsect2>
335 a8083063 Iustin Pop
336 a8083063 Iustin Pop
  </refsect1>
337 a8083063 Iustin Pop
338 a8083063 Iustin Pop
  <refsect1>
339 a8083063 Iustin Pop
    <title>NOTES</title>
340 a8083063 Iustin Pop
341 a8083063 Iustin Pop
    <refsect2>
342 bdfec6fd Guido Trotter
      <title>Retrocompatibility</title>
343 bdfec6fd Guido Trotter
344 bdfec6fd Guido Trotter
      <para>
345 bdfec6fd Guido Trotter
        Ganeti 2.1 is compatible with both api version 10, and 15.
346 bdfec6fd Guido Trotter
        In api version 10 the <filename>variants.list</filename>
347 bdfec6fd Guido Trotter
        file is ignored and no OS_VARIANT environment variable is
348 bdfec6fd Guido Trotter
        passed.
349 bdfec6fd Guido Trotter
      </para>
350 bdfec6fd Guido Trotter
    </refsect2>
351 bdfec6fd Guido Trotter
352 bdfec6fd Guido Trotter
    <refsect2>
353 a8083063 Iustin Pop
      <title>Common behaviour</title>
354 a8083063 Iustin Pop
355 216842d7 Iustin Pop
      <para>All the scripts should display an usage message when
356 216842d7 Iustin Pop
      called with a wrong number of arguments or when the first
357 216842d7 Iustin Pop
      argument is <option>-h</option> or
358 216842d7 Iustin Pop
      <option>--help</option>.</para>
359 a8083063 Iustin Pop
360 a8083063 Iustin Pop
    </refsect2>
361 a8083063 Iustin Pop
362 386b57af Iustin Pop
    <refsect2>
363 386b57af Iustin Pop
      <title>Upgrading from old versions</title>
364 386b57af Iustin Pop
      <refsect3>
365 bdfec6fd Guido Trotter
366 bdfec6fd Guido Trotter
        <title>Version 10 to 15</title>
367 bdfec6fd Guido Trotter
368 bdfec6fd Guido Trotter
        <para>
369 bdfec6fd Guido Trotter
          The <filename>variants.list</filename> file has been
370 bdfec6fd Guido Trotter
          added, so OSes should support at least one variant,
371 bdfec6fd Guido Trotter
          declaring it in that file and must be prepared to parse
372 bdfec6fd Guido Trotter
          the OS_VARIANT environment variable. OSes are free to
373 bdfec6fd Guido Trotter
          support more variants than just the declared ones.
374 bdfec6fd Guido Trotter
        </para>
375 bdfec6fd Guido Trotter
376 bdfec6fd Guido Trotter
      </refsect3>
377 bdfec6fd Guido Trotter
378 bdfec6fd Guido Trotter
      <refsect3>
379 bdfec6fd Guido Trotter
380 216842d7 Iustin Pop
        <title>Version 5 to 10</title>
381 216842d7 Iustin Pop
382 216842d7 Iustin Pop
        <para>
383 216842d7 Iustin Pop
          The method os passing data has changed from command line
384 216842d7 Iustin Pop
          options to environment variables, so scripts should be
385 216842d7 Iustin Pop
          modified to use these. For an example of how this can be
386 216842d7 Iustin Pop
          done in a way compatible with both versions, feel free to
387 216842d7 Iustin Pop
          look at the debootstrap instance's
388 216842d7 Iustin Pop
          <filename>common.sh</filename> auxiliary script.
389 216842d7 Iustin Pop
        </para>
390 216842d7 Iustin Pop
391 216842d7 Iustin Pop
        <para>
392 216842d7 Iustin Pop
          Also, instances can have now a variable number of disks, not
393 216842d7 Iustin Pop
          only two, and a variable number of NICs (instead of fixed
394 216842d7 Iustin Pop
          one), so the scripts should deal with this. The biggest
395 216842d7 Iustin Pop
          change is in the import/export, which are called once per
396 216842d7 Iustin Pop
          disk, instead of once per instance.
397 216842d7 Iustin Pop
        </para>
398 216842d7 Iustin Pop
399 216842d7 Iustin Pop
      </refsect3>
400 216842d7 Iustin Pop
401 216842d7 Iustin Pop
      <refsect3>
402 386b57af Iustin Pop
        <title>Version 4 to 5</title>
403 386b57af Iustin Pop
        <para>
404 386b57af Iustin Pop
          The <filename>rename</filename> script has been added. If
405 386b57af Iustin Pop
          you don't want to do any changes on the instances after a
406 386b57af Iustin Pop
          rename, you can migrate the OS definition to version 5 by
407 386b57af Iustin Pop
          creating the <filename>rename</filename> script simply as:
408 386b57af Iustin Pop
          <screen>
409 386b57af Iustin Pop
#!/bin/sh
410 386b57af Iustin Pop
411 386b57af Iustin Pop
exit 0
412 386b57af Iustin Pop
          </screen>
413 386b57af Iustin Pop
        </para>
414 386b57af Iustin Pop
415 386b57af Iustin Pop
        <para>Note that the script must be executable.</para>
416 386b57af Iustin Pop
      </refsect3>
417 386b57af Iustin Pop
    </refsect2>
418 386b57af Iustin Pop
419 a8083063 Iustin Pop
    <!--
420 a8083063 Iustin Pop
    <refsect2>
421 a8083063 Iustin Pop
422 a8083063 Iustin Pop
      <title>Export/import format</title>
423 a8083063 Iustin Pop
424 386b57af Iustin Pop
      <para>
425 386b57af Iustin Pop
        It is up to the export and import scripts to define the format
426 386b57af Iustin Pop
        they use. It is only required for these two to work
427 386b57af Iustin Pop
        together. It is not recommended that
428 386b57af Iustin Pop
      </para>
429 a8083063 Iustin Pop
430 a8083063 Iustin Pop
    </refsect2>
431 a8083063 Iustin Pop
    -->
432 a8083063 Iustin Pop
433 a8083063 Iustin Pop
  </refsect1>
434 a8083063 Iustin Pop
435 a8083063 Iustin Pop
  &footer;
436 a8083063 Iustin Pop
437 a8083063 Iustin Pop
</refentry>
438 a8083063 Iustin Pop
439 a8083063 Iustin Pop
<!-- Keep this comment at the end of the file
440 a8083063 Iustin Pop
Local variables:
441 a8083063 Iustin Pop
mode: sgml
442 a8083063 Iustin Pop
sgml-omittag:t
443 a8083063 Iustin Pop
sgml-shorttag:t
444 a8083063 Iustin Pop
sgml-minimize-attributes:nil
445 a8083063 Iustin Pop
sgml-always-quote-attributes:t
446 a8083063 Iustin Pop
sgml-indent-step:2
447 a8083063 Iustin Pop
sgml-indent-data:t
448 a8083063 Iustin Pop
sgml-parent-document:nil
449 a8083063 Iustin Pop
sgml-default-dtd-file:nil
450 a8083063 Iustin Pop
sgml-exposed-tags:nil
451 a8083063 Iustin Pop
sgml-local-catalogs:nil
452 a8083063 Iustin Pop
sgml-local-ecat-files:nil
453 a8083063 Iustin Pop
End:
454 a8083063 Iustin Pop
-->