Statistics
| Branch: | Tag: | Revision:

root / doc / design-ovf-support.rst @ b3e3813e

History | View | Annotate | Download (5.7 kB)

1 b3e3813e Agata Murawska
==============================================================
2 b3e3813e Agata Murawska
Ganeti Instance Import/Export using Open Virtualization Format
3 b3e3813e Agata Murawska
==============================================================
4 b3e3813e Agata Murawska
5 b3e3813e Agata Murawska
Background
6 b3e3813e Agata Murawska
==========
7 b3e3813e Agata Murawska
8 b3e3813e Agata Murawska
Open Virtualization Format is an open standard for packaging
9 b3e3813e Agata Murawska
information regarding virtual machines. It is used, among other, by
10 b3e3813e Agata Murawska
VMWare, VirtualBox and XenServer. OVF allows users to migrate between
11 b3e3813e Agata Murawska
virtualization software without the need of reconfiguring hardware,
12 b3e3813e Agata Murawska
network or operating system.
13 b3e3813e Agata Murawska
14 b3e3813e Agata Murawska
Currently, exporting instance in Ganeti results with a configuration
15 b3e3813e Agata Murawska
file that is readable only for Ganeti. It disallows the users to
16 b3e3813e Agata Murawska
change the platform they use without loosing all the machine's
17 b3e3813e Agata Murawska
configuration.  Import function in Ganeti is also currently limited to
18 b3e3813e Agata Murawska
the previously prepared instances.
19 b3e3813e Agata Murawska
20 b3e3813e Agata Murawska
Implementation of OVF support allows users to migrate to Ganeti from
21 b3e3813e Agata Murawska
other platforms, thus potentially increasing the usage. It also
22 b3e3813e Agata Murawska
enables virtual machine end-users to create their own machines
23 b3e3813e Agata Murawska
(e.g. in VirtualBox or SUSE Studio) and then add them to Ganeti
24 b3e3813e Agata Murawska
cluster, thus providing better personalization.
25 b3e3813e Agata Murawska
26 b3e3813e Agata Murawska
Overview
27 b3e3813e Agata Murawska
========
28 b3e3813e Agata Murawska
29 b3e3813e Agata Murawska
Open Virtualization Format description
30 b3e3813e Agata Murawska
--------------------------------------
31 b3e3813e Agata Murawska
32 b3e3813e Agata Murawska
According to the DMTF document introducing the standard: "The Open
33 b3e3813e Agata Murawska
Virtualization Format (OVF) Specification describes an open, secure,
34 b3e3813e Agata Murawska
portable, efficient and extensible format for the packaging and
35 b3e3813e Agata Murawska
distribution of software to be run in virtual machines."  OVF supports
36 b3e3813e Agata Murawska
both single and multiple- configurations of VMs in one package, is
37 b3e3813e Agata Murawska
host- and virtualization platform-independent and optimized for
38 b3e3813e Agata Murawska
distribution (e.g. by allowing usage of public key infrastructure and
39 b3e3813e Agata Murawska
providing tools for management of basic software licensing).
40 b3e3813e Agata Murawska
41 b3e3813e Agata Murawska
There are no limitations regarding hard drive images used, as long as
42 b3e3813e Agata Murawska
the description is provided. Any hardware described in a proper
43 b3e3813e Agata Murawska
i.e. CIM - Common Information Model) format is accepted, although
44 b3e3813e Agata Murawska
there is no guarantee that every virtualization software will support
45 b3e3813e Agata Murawska
all types of hardware.
46 b3e3813e Agata Murawska
47 b3e3813e Agata Murawska
OVF package should contain one file with .ovf extension, which is an
48 b3e3813e Agata Murawska
XML file specifying the following (per virtual machine):
49 b3e3813e Agata Murawska
50 b3e3813e Agata Murawska
- virtual disks
51 b3e3813e Agata Murawska
- network description
52 b3e3813e Agata Murawska
- list of virtual hardware
53 b3e3813e Agata Murawska
- operating system, if any
54 b3e3813e Agata Murawska
55 b3e3813e Agata Murawska
Each of the elements in .ovf file may, if desired, contain a
56 b3e3813e Agata Murawska
human-readable description to every piece of information given.
57 b3e3813e Agata Murawska
58 b3e3813e Agata Murawska
Additionally, the package may have some disk image files and other
59 b3e3813e Agata Murawska
additional resources (e.g. ISO images).
60 b3e3813e Agata Murawska
61 b3e3813e Agata Murawska
Supported disk formats
62 b3e3813e Agata Murawska
----------------------
63 b3e3813e Agata Murawska
64 b3e3813e Agata Murawska
Although OVF is claimed to support 'any disk format', what we are
65 b3e3813e Agata Murawska
interested in is which of the formats are supported by VM managers
66 b3e3813e Agata Murawska
that currently use OVF.
67 b3e3813e Agata Murawska
68 b3e3813e Agata Murawska
- VMWare: ``.vmdk`` (which comes in at least 3 different flavours:
69 b3e3813e Agata Murawska
  ``sparse``, ``compressed`` and ``streamOptimized``)
70 b3e3813e Agata Murawska
- VirtualBox: ``.vdi`` (VirtualBox's format), ``.vmdk``, ``.vhd``
71 b3e3813e Agata Murawska
  (Microsoft and XenServer); export disk format is always ``.vmdk``
72 b3e3813e Agata Murawska
- XenServer: ``.vmdk``, ``.vhd``; export disk format is always
73 b3e3813e Agata Murawska
  ``.vhd``
74 b3e3813e Agata Murawska
- Red Hat Enterprise Virtualization: ``.raw`` (raw disk format),
75 b3e3813e Agata Murawska
  ``.cow`` (qemu's ``QCOW2``)
76 b3e3813e Agata Murawska
- other: AbiCloud, OpenNode Cloud, SUSE Studio, Morfeo Claudia,
77 b3e3813e Agata Murawska
  OpenStack
78 b3e3813e Agata Murawska
79 b3e3813e Agata Murawska
In our implementation of the OVF we plan to allow a choice between
80 b3e3813e Agata Murawska
raw, cow and vmdk disk formats for both import and export. The
81 b3e3813e Agata Murawska
justification is the following:
82 b3e3813e Agata Murawska
83 b3e3813e Agata Murawska
- Raw format is supported as it is the main format of disk images used
84 b3e3813e Agata Murawska
  in Ganeti, thus it is effortless to provide support for this format
85 b3e3813e Agata Murawska
- Cow is used in Qemu, [TODO: ..why do we support it, again? That is,
86 b3e3813e Agata Murawska
  if we do?]
87 b3e3813e Agata Murawska
- Vmdk is most commonly supported in virtualization software, it also
88 b3e3813e Agata Murawska
  has the advantage of producing relatively small disk images, which
89 b3e3813e Agata Murawska
  is extremely important advantage when moving instances.
90 b3e3813e Agata Murawska
91 b3e3813e Agata Murawska
The conversion between RAW and the other formats will be done using
92 b3e3813e Agata Murawska
qemu-img, which transforms, among other, raw disk images to monolithic
93 b3e3813e Agata Murawska
sparse vmdk images.
94 b3e3813e Agata Murawska
95 b3e3813e Agata Murawska
96 b3e3813e Agata Murawska
Planned limitations
97 b3e3813e Agata Murawska
===================
98 b3e3813e Agata Murawska
99 b3e3813e Agata Murawska
The limitations regarding import of the OVF instances generated
100 b3e3813e Agata Murawska
outside Ganeti will be (in general) the same, as limitations for
101 b3e3813e Agata Murawska
Ganeti itself.  The desired behavior in case of encountering
102 b3e3813e Agata Murawska
unsupported element will be to ignore this element's tag and inform
103 b3e3813e Agata Murawska
the user on console output, if possible - without interruption of the
104 b3e3813e Agata Murawska
import process.
105 b3e3813e Agata Murawska
106 b3e3813e Agata Murawska
Package
107 b3e3813e Agata Murawska
-------
108 b3e3813e Agata Murawska
109 b3e3813e Agata Murawska
There are no limitations regarding support for multiple files in
110 b3e3813e Agata Murawska
package or packing the ovf package into one OVA (Open Virtual
111 b3e3813e Agata Murawska
Appliance) file.  As for certificates and licenses in the package,
112 b3e3813e Agata Murawska
their support will be under discussion after completion of the basic
113 b3e3813e Agata Murawska
features implementation.
114 b3e3813e Agata Murawska
115 b3e3813e Agata Murawska
Multiple Virtual Systems
116 b3e3813e Agata Murawska
------------------------
117 b3e3813e Agata Murawska
118 b3e3813e Agata Murawska
At first only singular instances (i.e. VirtualSystem, not
119 b3e3813e Agata Murawska
VirtualSystemCollection) will be supported. In the future multi-tiered
120 b3e3813e Agata Murawska
appliances containing whole nodes (or even clusters) are considered an
121 b3e3813e Agata Murawska
option.
122 b3e3813e Agata Murawska
123 b3e3813e Agata Murawska
Disks
124 b3e3813e Agata Murawska
-----
125 b3e3813e Agata Murawska
126 b3e3813e Agata Murawska
As mentioned, Ganeti will allow exporting only ``raw``, ``cow`` and
127 b3e3813e Agata Murawska
``vmdk`` formats.  As for import, we will support all that
128 b3e3813e Agata Murawska
``qemu-img`` can convert to raw format. At this point this means
129 b3e3813e Agata Murawska
``raw``, ``cow``, ``qcow``, ``qcow2``, ``vmdk`` and ``cloop``.  We do
130 b3e3813e Agata Murawska
not plan for now to support ``vdi`` or ``vhd``.
131 b3e3813e Agata Murawska
132 b3e3813e Agata Murawska
We support compression both for import and export - for export this
133 b3e3813e Agata Murawska
will use ovftools with chosen level of compression. There is also a
134 b3e3813e Agata Murawska
possibility to provide virtual disk in chunks of equal size.
135 b3e3813e Agata Murawska
136 b3e3813e Agata Murawska
When no ``ovf:format`` tag is provided during import, we assume that
137 b3e3813e Agata Murawska
the disk is to be created on import and proceed accordingly.
138 b3e3813e Agata Murawska
139 b3e3813e Agata Murawska
Network
140 b3e3813e Agata Murawska
-------
141 b3e3813e Agata Murawska
142 b3e3813e Agata Murawska
There are no known limitations regarding network support.
143 b3e3813e Agata Murawska
144 b3e3813e Agata Murawska
Hardware
145 b3e3813e Agata Murawska
--------
146 b3e3813e Agata Murawska
147 b3e3813e Agata Murawska
TODO
148 b3e3813e Agata Murawska
149 b3e3813e Agata Murawska
Operating Systems
150 b3e3813e Agata Murawska
-----------------
151 b3e3813e Agata Murawska
152 b3e3813e Agata Murawska
TODO
153 b3e3813e Agata Murawska
154 b3e3813e Agata Murawska
Other
155 b3e3813e Agata Murawska
-----
156 b3e3813e Agata Murawska
157 b3e3813e Agata Murawska
Implementation details
158 b3e3813e Agata Murawska
======================
159 b3e3813e Agata Murawska
160 b3e3813e Agata Murawska
TODO
161 b3e3813e Agata Murawska
162 b3e3813e Agata Murawska
.. vim: set textwidth=72 :
163 b3e3813e Agata Murawska
.. Local Variables:
164 b3e3813e Agata Murawska
.. mode: rst
165 b3e3813e Agata Murawska
.. fill-column: 72
166 b3e3813e Agata Murawska
.. End: