Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (5.7 kB)

1
==============================================================
2
Ganeti Instance Import/Export using Open Virtualization Format
3
==============================================================
4

    
5
Background
6
==========
7

    
8
Open Virtualization Format is an open standard for packaging
9
information regarding virtual machines. It is used, among other, by
10
VMWare, VirtualBox and XenServer. OVF allows users to migrate between
11
virtualization software without the need of reconfiguring hardware,
12
network or operating system.
13

    
14
Currently, exporting instance in Ganeti results with a configuration
15
file that is readable only for Ganeti. It disallows the users to
16
change the platform they use without loosing all the machine's
17
configuration.  Import function in Ganeti is also currently limited to
18
the previously prepared instances.
19

    
20
Implementation of OVF support allows users to migrate to Ganeti from
21
other platforms, thus potentially increasing the usage. It also
22
enables virtual machine end-users to create their own machines
23
(e.g. in VirtualBox or SUSE Studio) and then add them to Ganeti
24
cluster, thus providing better personalization.
25

    
26
Overview
27
========
28

    
29
Open Virtualization Format description
30
--------------------------------------
31

    
32
According to the DMTF document introducing the standard: "The Open
33
Virtualization Format (OVF) Specification describes an open, secure,
34
portable, efficient and extensible format for the packaging and
35
distribution of software to be run in virtual machines."  OVF supports
36
both single and multiple- configurations of VMs in one package, is
37
host- and virtualization platform-independent and optimized for
38
distribution (e.g. by allowing usage of public key infrastructure and
39
providing tools for management of basic software licensing).
40

    
41
There are no limitations regarding hard drive images used, as long as
42
the description is provided. Any hardware described in a proper
43
i.e. CIM - Common Information Model) format is accepted, although
44
there is no guarantee that every virtualization software will support
45
all types of hardware.
46

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

    
50
- virtual disks
51
- network description
52
- list of virtual hardware
53
- operating system, if any
54

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

    
58
Additionally, the package may have some disk image files and other
59
additional resources (e.g. ISO images).
60

    
61
Supported disk formats
62
----------------------
63

    
64
Although OVF is claimed to support 'any disk format', what we are
65
interested in is which of the formats are supported by VM managers
66
that currently use OVF.
67

    
68
- VMWare: ``.vmdk`` (which comes in at least 3 different flavours:
69
  ``sparse``, ``compressed`` and ``streamOptimized``)
70
- VirtualBox: ``.vdi`` (VirtualBox's format), ``.vmdk``, ``.vhd``
71
  (Microsoft and XenServer); export disk format is always ``.vmdk``
72
- XenServer: ``.vmdk``, ``.vhd``; export disk format is always
73
  ``.vhd``
74
- Red Hat Enterprise Virtualization: ``.raw`` (raw disk format),
75
  ``.cow`` (qemu's ``QCOW2``)
76
- other: AbiCloud, OpenNode Cloud, SUSE Studio, Morfeo Claudia,
77
  OpenStack
78

    
79
In our implementation of the OVF we plan to allow a choice between
80
raw, cow and vmdk disk formats for both import and export. The
81
justification is the following:
82

    
83
- Raw format is supported as it is the main format of disk images used
84
  in Ganeti, thus it is effortless to provide support for this format
85
- Cow is used in Qemu, [TODO: ..why do we support it, again? That is,
86
  if we do?]
87
- Vmdk is most commonly supported in virtualization software, it also
88
  has the advantage of producing relatively small disk images, which
89
  is extremely important advantage when moving instances.
90

    
91
The conversion between RAW and the other formats will be done using
92
qemu-img, which transforms, among other, raw disk images to monolithic
93
sparse vmdk images.
94

    
95

    
96
Planned limitations
97
===================
98

    
99
The limitations regarding import of the OVF instances generated
100
outside Ganeti will be (in general) the same, as limitations for
101
Ganeti itself.  The desired behavior in case of encountering
102
unsupported element will be to ignore this element's tag and inform
103
the user on console output, if possible - without interruption of the
104
import process.
105

    
106
Package
107
-------
108

    
109
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,
112
their support will be under discussion after completion of the basic
113
features implementation.
114

    
115
Multiple Virtual Systems
116
------------------------
117

    
118
At first only singular instances (i.e. VirtualSystem, not
119
VirtualSystemCollection) will be supported. In the future multi-tiered
120
appliances containing whole nodes (or even clusters) are considered an
121
option.
122

    
123
Disks
124
-----
125

    
126
As mentioned, Ganeti will allow exporting only ``raw``, ``cow`` and
127
``vmdk`` formats.  As for import, we will support all that
128
``qemu-img`` can convert to raw format. At this point this means
129
``raw``, ``cow``, ``qcow``, ``qcow2``, ``vmdk`` and ``cloop``.  We do
130
not plan for now to support ``vdi`` or ``vhd``.
131

    
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.
135

    
136
When no ``ovf:format`` tag is provided during import, we assume that
137
the disk is to be created on import and proceed accordingly.
138

    
139
Network
140
-------
141

    
142
There are no known limitations regarding network support.
143

    
144
Hardware
145
--------
146

    
147
TODO
148

    
149
Operating Systems
150
-----------------
151

    
152
TODO
153

    
154
Other
155
-----
156

    
157
Implementation details
158
======================
159

    
160
TODO
161

    
162
.. vim: set textwidth=72 :
163
.. Local Variables:
164
.. mode: rst
165
.. fill-column: 72
166
.. End: