Revision 75932bcf

b/doc/design-ovf-support.rst
44 44
there is no guarantee that every virtualization software will support
45 45
all types of hardware.
46 46

  
47
OVF package should contain one file with .ovf extension, which is an
47
OVF package should contain one file with ``.ovf`` extension, which is an
48 48
XML file specifying the following (per virtual machine):
49 49

  
50 50
- virtual disks
......
52 52
- list of virtual hardware
53 53
- operating system, if any
54 54

  
55
Each of the elements in .ovf file may, if desired, contain a
55
Each of the elements in ``.ovf`` file may, if desired, contain a
56 56
human-readable description to every piece of information given.
57 57

  
58 58
Additionally, the package may have some disk image files and other
......
92 92
qemu-img, which transforms, among other, raw disk images to monolithic
93 93
sparse vmdk images.
94 94

  
95
Import and export - the closer look
96
===================================
97

  
98
This section contains an overview of how different parts of
99
Ganeti's export info are included in ``.ovf`` configuration file.
100
It also explains how import is designed to work with incomplete
101
information.
102

  
103
Ganeti's backup format vs OVF
104
-----------------------------
105
.. highlight:: xml
106

  
107
The basic structure of Ganeti ``.ovf`` file is the following::
108

  
109
    <Envelope>
110
        <References></References>
111
        <DiskSection></DiskSection>
112
        <NetworkSection></NetworkSection>
113
        <VirtualSystem>
114
            <Name></Name>
115
            <OperatingSystemSection></OperatingSystemSection>
116
            <VirtualHardwareSection><VirtualHardwareSection>
117
        </VirtualSystem>
118
        <gnt:GanetiSection>
119
            <gnt:VersionId/>
120
            <gnt:AutoBalance/>
121
            <gnt:Tags></gnt:Tags>
122
            <gnt:OSParameters></gnt:OSParameters>
123
            <gnt:Hypervisor>
124
                <gnt:HypervisorParameters>
125
                </gnt:HypervisorParameters>
126
            </gnt:Hypervisor>
127
        </gnt:GanetiSection>
128
    </Envelope>
129

  
130
.. note ::
131
    Tags with ``gnt:`` prefix are Ganeti-specific and are not a part of
132
    OVF standard.
133

  
134
.. highlight:: text
135

  
136
Whereas Ganeti's export info is of the following form, ``=>`` showing
137
where will the data be in OVF format::
138

  
139
  [instance]
140
      disk0_dump = filename     => References
141
      disk0_ivname = name       => ignored
142
      disk0_size = size_in_mb   => DiskSection
143
      disk_count = number       => ignored
144
      disk_template = disk_type => References
145
      hypervisor = hyp-name     => gnt:HypervisorSection
146
      name = inst-name          => Name in VirtualSystem
147
      nic0_ip = ip              => Item in VirtualHardwareSection
148
      nic0_link = link          => Item in VirtualHardwareSection
149
      nic0_mac = mac            => Item in VirtualHardwareSection
150
      nic0_mode = mode          => Network in NetworkSection
151
      nic_count = number        => ignored
152
      tags                      => gnt:Tags
153

  
154
  [backend]
155
      auto_balanced             => gnt:AutoBalance
156
      memory = mem_in_mb        => Item in VirtualHardwareSection
157
      vcpus = number            => Item in VirtualHardwareSection
158

  
159
  [export]
160
      compression               => DiskSection
161
      os                        => OperatingSystemSection
162
      source                    => ignored
163
      timestamp                 => ignored
164
      version                   => gnt:VersionId
165

  
166
  [os]                          => gnt:OSParameters
167

  
168
  [hypervisor]                  => gnt:HypervisorParameters
169

  
170
In case of multiple networks/disks used by an instance, they will
171
all be saved in appropriate sections as specified above for the first
172
network/disk.
173

  
174
Import from other virtualization software
175
-----------------------------------------
176
In case of importing to Ganeti OVF package generated in other software,
177
e.g. VirtualBox, some fields required for Ganeti to properly handle
178
import may be missing. Most often it will happen that such OVF package
179
will lack the ``gnt:GanetiSection``.
180

  
181
If this happens, the tool will simply ask for all the necessary
182
information or otherwise you can specify all the missing parameters in
183
the command line. For the latter, please refer to [TODO: reference to
184
command line options]
185

  
186
Export to other virtualization software
187
---------------------------------------
188
When exporting to other virtualization software, you may notice that
189
there is a section ``gnt:GanetiSection``, containing Ganeti-specific
190
information. This may on **rare** cases cause trouble in importing your
191
instance. If that is the case please do one of the two:
192

  
193
1. Export from Ganeti to OVF with ``--external`` option - this will
194
cause to skip the non-standard information.
195

  
196
2. Manually remove the gnt:GanetiSection from the ``.ovf`` file. You
197
will also have to recompute sha1 sum (``sha1sum`` command) and update
198
your ``.mf`` file with new value.
199

  
200
.. note::
201
    Manual change option is only recommended when you have exported your
202
    instance with ``-format`` option other that ``raw`` or selected
203
    ``--compress``. It saves you the time of converting or compressing
204
    the disk image.
95 205

  
96 206
Planned limitations
97 207
===================
......
107 217
-------
108 218

  
109 219
There are no limitations regarding support for multiple files in
110
package or packing the ovf package into one OVA (Open Virtual
111
Appliance) file.  As for certificates and licenses in the package,
220
package or packing the OVF package into one OVA (Open Virtual
221
Appliance) file. As for certificates and licenses in the package,
112 222
their support will be under discussion after completion of the basic
113 223
features implementation.
114 224

  
......
129 239
``raw``, ``cow``, ``qcow``, ``qcow2``, ``vmdk`` and ``cloop``.  We do
130 240
not plan for now to support ``vdi`` or ``vhd``.
131 241

  
132
We support compression both for import and export - for export this
133
will use ovftools with chosen level of compression. There is also a
134
possibility to provide virtual disk in chunks of equal size.
242
We plan to support compression both for import and export - in tar.gz
243
format. There is also a possibility to provide virtual disk in chunks
244
of equal size.
135 245

  
136 246
When no ``ovf:format`` tag is provided during import, we assume that
137 247
the disk is to be created on import and proceed accordingly.
......
154 264
Other
155 265
-----
156 266

  
267

  
157 268
Implementation details
158 269
======================
159 270

  

Also available in: Unified diff