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