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: |