Navigation

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

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

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

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

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

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

virtual disks

network description

list of virtual hardware

operating system, if any

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

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

In case of importing to Ganeti OVF package generated in other software,
e.g. VirtualBox, some fields required for Ganeti to properly handle
import may be missing. Most often it will happen that such OVF package
will lack the gnt:GanetiSection.

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

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

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

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

Note

Manual change option is only recommended when you have exported your
instance with -format option other that raw or selected
--compress. It saves you the time of converting or compressing
the disk image.

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

There are no limitations regarding support for multiple files in
package or packing the OVF package into one OVA (Open Virtual
Appliance) file. As for certificates and licenses in the package,
their support will be under discussion after completion of the basic
features implementation.

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

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

We plan to support compression both for import and export - in tar.gz
format. There is also a possibility to provide virtual disk in chunks
of equal size.

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